summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsijanec <sijanecantonluka@gmail.com>2020-12-14 00:32:20 +0100
committersijanec <sijanecantonluka@gmail.com>2020-12-14 00:32:20 +0100
commitf3a042f53a4c0b81041a9b031ab059f342f4261b (patch)
treeadca17760d88ecdeb2ec2c64af4318caa483a2d2
parentrazličica 0.0.2 sedaj prenese samo najboljši videoposnetek (diff)
downloadrtv4d-dl-f3a042f53a4c0b81041a9b031ab059f342f4261b.tar
rtv4d-dl-f3a042f53a4c0b81041a9b031ab059f342f4261b.tar.gz
rtv4d-dl-f3a042f53a4c0b81041a9b031ab059f342f4261b.tar.bz2
rtv4d-dl-f3a042f53a4c0b81041a9b031ab059f342f4261b.tar.lz
rtv4d-dl-f3a042f53a4c0b81041a9b031ab059f342f4261b.tar.xz
rtv4d-dl-f3a042f53a4c0b81041a9b031ab059f342f4261b.tar.zst
rtv4d-dl-f3a042f53a4c0b81041a9b031ab059f342f4261b.zip
-rw-r--r--README.md35
-rw-r--r--rtv4d-dl.c2
2 files changed, 34 insertions, 3 deletions
diff --git a/README.md b/README.md
index 35e762f..5595ff3 100644
--- a/README.md
+++ b/README.md
@@ -6,11 +6,15 @@ z uporabo programa se strinjate z naslednjimi stavki:
* program uporabljate na lastno odgovornost.
* če ni kje drugje avtor napisal drugače ali če to ni zakonsko drugače:
- ne smete distribuirati programa in izdelovali kopij.
+ - razlog: da lahko RTV v teoriji zahteva izbris programa iz Interneta
- smete ga uporabljati samo za zasebno nekomercialno uporabo.
+ - ne smete spreminjate izvorne kode
+ - razlog: da lahko RTV kadarkoli blokira program prek user-agent niza.
## funkcije
* prenašanje videoposnetkov iz arhiva kot odklenjene videodatoteke
-* [**novo!**] z različico 0.0.1 tudi prenašanje avdioposnetkov!
+* z različico 0.0.1 tudi prenašanje avdioposnetkov!
+* [**novo**]: z različico 0.0.3 tudi prenašanje televizijskih prenosov v živo
## možnosti uporabe programa
* prenos oddaje: `rtv4d-dl oddaja <URL/ID oddaje> [izhodna datoteka]`
@@ -21,15 +25,18 @@ z uporabo programa se strinjate z naslednjimi stavki:
- opomba: nekateri metapodatki veljajo omejeno časa (video URL)
* prenos sličice oddaje: `rtv4d-dl slicica-oddaja <URL> [datoteka]`
- primer: `rtv4d-dl slicica-oddaja 89614963 89614963.jpg`
+* prenos zadnjih dveh ur prenosa v živo: `rtv4d-dl zivo <prog.> [dolž.] [dato.]`
+ - primer: `rtv4d-dl zivo tv.slo1 9999999 tv.slo1.ts` (prenese vse)
# dodatne informacije:
* pisanje v STDOUT: kot pot datoteke napišite `/dev/stdout`
* program se poveže na \*.rtvslo.si, spremenite izvorno kodo za drugo
infrastrukturo
+* **živo**: za možne programe in razlago dolžine glej *dodatno o prenosu v živo*
# trenutna izdaja programa:
* program je bil nazadnje ročno testiran 13. decembra 2020 in takrat je DELOVAL.
-* različica: 0.0.2
+* različica: 0.0.3
## dnevnik sprememb:
* 0.0.2 - 13. december 2020: sedaj pravilno naloži samo največjo kvaliteto, pred
@@ -70,3 +77,27 @@ z uporabo programa se strinjate z naslednjimi stavki:
* RTV za avdio/radio v živo že ponuja možnost poslušanja brez javascripta, imajo
namreč icecast2 strežnik na [mp3.rtvslo.si](mp3.rtvslo.si), tako da tega po
mojem ni potrebno izdelati še v rtv4d-dl.
+* RTV4D arhiv ponuja samo videokvalitete do 720p (1280x720 pikslov). Pri
+ prenosu v živo pa je maksimalna velikost 1080p (1920x1080 pisklov). Če torej hočemo dobiti kvalitetno vsebino, jo moramo posneti preden gre v arhiv.
+
+### dodatno o prenosu v živo
+* prenos v živo ima zblojene timestampe. vsaka TS datoteka je ali 4 sekunde ali
+ 5 sekund. sicer bi bilo vse v redu, če bi chunklist datoteka vsebovala več
+ kot dve uri posnetkov. Kljub temu, da streaming strežnik takoj ne zbriše
+ datotek in da imajo datoteke imena po vrsti, je nemogoče predvideti, katera
+ datoteka je potrebna ob določenem času.
+* za avtomatsko pridobitev vseh videoprogramov, ki so na voljo kot prenosi v
+ živo, bi bilo potrebno narediti podporo za HTTPS. zato so na voljo samo
+ naslednji programi: `tv.slo1`, tv.slo2`, `tv.slo3`, `tv.kp1`, `tv.mb1`,
+ `tv.mmctv`. programe lahko dodajate samo s spremembo izvorne kode.
+* argument dolžina je število sekund od trenutnega časa do največjega zamika.
+ nastavitev 4 bo torej prenesla najmanj zadnje štiri sekunde. Ker TS datoteke
+ nimajo enake dolžine, bo pač preneseno toliko podatkov, da bo shranjeno enako
+ ali več sekund, kot je bilo navedenih. Če je specificiranih več kot za dve
+ uri sekund, oziroma več, kolikor jih ima chunklist z dolžinami, bo program
+ predvidel, da je vsaka datoteka dolga štiri sekunde. Ko na CDN strežniku ni
+ toliko sekund, kot jih uporabnik želi, bo to napisano kot OPOZORILO, naložilo
+ pa se bo vse, kar je na voljo. Brez argumenta dolžine se torej naloži vse, kar
+ CDN strežnik trenutno ima, recimo 10 ur v najvišji resoluciji 1080p.
+ - za bolj natančno štetje dolžin, ko se chunklist tabela konča, bi bilo
+ potrebno najti ali narediti sistem za pridobivanje dolžin iz TS datotek.
diff --git a/rtv4d-dl.c b/rtv4d-dl.c
index 69442e0..8ac574e 100644
--- a/rtv4d-dl.c
+++ b/rtv4d-dl.c
@@ -58,7 +58,7 @@
#define RTV_JWT_SIZEOF 43+1
#define RTV_PREDVAJALNIK_URL "http://4d.rtvslo.si/arhiv/v/%u"
#define RTV_PREDVAJALNIK_URL_SIZEOF 32+1 + 12
-#define RTV_VER "0.0.2"
+#define RTV_VER "0.0.3"
struct meta_oddaja {
size_t naslov_sizeof;