Saturday 10 December 2011

Stahování pořadů z iVysílání České Televize

Zde popisuji návod jak stáhnout z webu České Televize pořad z iVysílání.
(původní návod, ze kterého jsem čerpal je zde)

Potřebný software:
Mozilla Firefox
addon Firebugnástroj na stahování streamů rtmpdump resp. jeho aktuálni verzi pro windows

Jak na to:
1. Řekněme, že chci stáhnout pořad HydePark z http://www.ceskatelevize.cz/ivysilani/10252839638-hyde-park-ct24/211411058081208/. Protože máme ve Firefoxu nainstalovaný addon Firebug, stiskem F12 vyvoláme jeho okno.

2. v jeho nabídce vybereme funkci Síť a síťový filtr nastavíme na HTML

3. stiskem F5 znovu načteme stránku s žádaným pořadem

4. V okně Firebugu se zobrazí síťová aktivita pro tuto stránku. Zajímá nás řádek GET ClientPlaylist.aspx z domény ctdir.visual.cz

6. kontextovou nabídkou zkopírujeme URL cestu tohoto souboru a otevřeme v novém okně - zobrazí se XML soubor


7. zajímá nás položka switchItem base a dále pak atribut video src kde si také můžete vybrat rozlišení videa

8. jejich složením vznikne cesta ke stahovanému streamu (mezi nimi je lomítko), tedy: "rtmp://wcdn101.nacevi.cz/ct-vod/_definst_?id=MTM2NDY0MTg1OHw2MzQ1OTEzNzgyOTU1MjYyNTA=&type=wpl/mp4:iVysilani/2011/12/08/HydeParkCT24-081211-MP4_404p.mp4"

9. Pomoci nástroje rtmpdump stáhneme kýžený stream. Příkaz bude ve formátu rtmpdump -r "rtmp://....mp4" -o hydepark.flv --live a stahování probíhá stejnou dobu jako přehrávání, takže hodinový pořad se stahuje opravdu hodinu.
Poznámka: Řetězec id=MTM2NDY... v cestě ke streamu je platný jen po omezenou dobu takže se může stát že místo stahování ziskáte hlašku "ERROR: rtmp server sent error". V tom případě jste postupovali příliš pomalu a je třeba postupovat od začátku a o něco rychleji :)


29 comments:

Ruza said...

Nejde mě spustit rtmpdump-2.3, kde mám udělat změnu? Můžeš to prosím ještě nějak rozepsat? V CMD mě píše,že nelze nalézt uvedenou cestu?
Předem díky.
RR

maiki said...

Prosím vás, nešlo by to nějakým programem nebo skriptem pro normální smrtelníky? Nemám opravdu čas se nimrat ve vašich konzolích a příkazových řádcích. Nejsme na Unixu v roce 1985. Už si to pro jednou uvědomte. Tlačítko, kliknout, ready.

Pavel Malina said...

maiki: Žádný program to neumí. Tento návod je podrobný natolik, že to zvládne každé děcko za 5 minut ;)

Rodrich said...

Daleko jednodušeji se to dá vyřešit pomocí Orbit Download manageru a jeho pluginu do Internet Exproreru "Grab pro".

- funguje na 2 kliknutí

Unknown said...
This comment has been removed by the author.
Unknown said...

Tak se s tím peru a ani návod ani Orbit s grab pro nepomohly - ČT používá SWFAddress pro skrytí URL a nepodařilo se mi tu URL najít :( Někdo s tím má zkušenost?

sgt.Mike said...

Dohledal sem to wiresharkem, tam sta49 hledat pakety, ve kterých je řetězec mp4. Například pro UdálostiKomentáře je to video src="mp4:iVysilani/2012/08/03/UdalostiKomentarCT24-030812-MP4_576p.mp4".
Ale celková syntaxe je teď jiná, nevíte, co s tím? "rtmp://wcdn102.nacevi.cz/ct-vod/_definst_?id=HRzhy7GABFAszk7&publisher=lss" begin="1365" duration="721" clipBegin="1365" type="recorded">\r\n
\r\n

Unknown said...

Nové iVysílání, nový postup:

1. Řekněme, že chci stáhnout pořad z http://www.ceskatelevize.cz/ivysilani/10266608514-mistr-eckhart/
Ve Firefoxu nainstaluji addon Firebug a stisknu F12 .
2. V nabídce Firebugu vyberu funkci NET a síťový filtr nastavím na ALL
3. Stiskem F5 znovu načtu stránku s žádaným pořadem
4. V okně Firebugu se zobrazí síťová aktivita pro tuto stránku.
Zajímá mě řádek GET ClientLink?id status 200 OK domain cdnls01.nacevi.cz
6. Kontextovou nabídkou zkopíruji URL cestu tohoto souboru a otevřu novém okně,
nebo klepnu na záložku Response
7. Najdu řádky:
rtmp://wcdn1001.nacevi.cz/ct-vod/_definst_?id=HRydH0JABF0H7W&amp
mp4:ct/iVysilani/2010/12/24/MistrEckhartCT2-241210-WTV_1500.mp4
8. Z těchto řádek složím cestu k mp4 souboru, prvni řádku od druhé oddělím lomítkem /:
rtmp://wcdn1001.nacevi.cz/ct-vod/_definst_?id=HRydH0JABF0H7W&amp/mp4:ct/iVysilani/2010/12/24/MistrEckhartCT2-241210-WTV_1500.mp4

9. Pomoci nástroje rtmpdump stáhnu stream.
Příkaz:
rtmpdump -r "rtmp://....mp4" -o MistrEckhart.mp4 --live

Stahování probíhá stejnou dobu jako přehrávání, takže hodinový pořad se stahuje opravdu hodinu.

10. Cesta k souboru se časem mění, proto pokud postupuji pomalu, musím všechny kroky provést znovu a rychleji.

Thoros said...

Zdravím.
Zkusil jsem najít cestu k videosouboru přes Google Chrome (Firefox už nepoužívám), což se mi úspěšně podařilo, ale nemohu spustit rtmpdump.exe, který jsem stáhl ze stránek distributora. Objeví se požadované černé okno programu, ale okamžitě zase zmizí. Co musím kde upravit v systému, aby šel program spustit?

Děkuji.

Thoros said...

Ještě doplňující informace.
Když jsem to zkusil spustit přes CMD, tak mi to napsalo tohle:
ERROR: You must specify a hostname (--host) or url (-r "rtmp://host[:port]/playpath") containing a hostname

Jak to tedy můžu specifikovat?
Díky.

Unknown said...

Cesta k mp4 souboru se po krátké době automaticky mění. Cestu ověřuji tak, že ji celou

rtmp://wcdn1001.nacevi.cz/ct-vod/_defin ...a...tak...dal.../MistrEckhart.mp4

zadám do prohlížeče. Měl by se objevit přehrávač a začít přehrávat požadované video.

Pak rychle v konzoli zadám

rtmpdump -r "rtmp://wcdn1001.nacevi.cz/ct-vod/_defin ...a...tak...dal.../MistrEckhart.mp4" -o MistrEckhart.mp4 --live

s touto funkční cestou.

Thoros said...

Díky za radu, už se mi to připojí. Jen bych ještě potřeboval poradit, jak rychle zadat požadovanou cestu, příkaz Ctrl +V zde nefunguje a opisováním cesty se hodně zdržím.

Dík.

Thoros said...

Při provedení operace mi to napíše: INFO: Connected
ERROR: Closing connection: Netstream.Play.StreamNotFound

Znamená to tedy, že jsem příliš pomalý v zadávání cesty?

Thoros said...

Doufám, že cestu zadávám správně:
V google chrome dám F12, záložku Network. Znovu načtu stránku, v levém sloupci kliknu na ClientLink a z pravého okna zkopíruju Requested URL do nového okna prohlížeče (http://cdnls01.nacevi.cz/ls....)

Poté zkopíruju hned první cestu, která má požadované parametry dle návodu (rtmp://wcdn1002.nacevi.cz/ct-vod/_defi....&amp/mp4:ct-vod/iVysilani/....-MP4_576p.mp4).
Je tam víc takových cest, ale každá má odlišné id a liší se u nich taky koncovka mp4 souboru (-MP4_576p.1.mp4, -MP4_576p.2.mp4 atd.)
Ale když tuto cestu zadám do svého prohlížeče, tak to nic nenajde.

Unknown said...

Ve firefoxu to funguje.
Zkusil jsem stáhnout Minuty dobrodružství a neměl jsem problém.
Postup je stejný ...

Jak stáhnout CT iVysílání, download iVysílání:
Minuty dobrodružství CT4 24.10.2012

1. Řekněme, že chci stáhnout pořad z http://www.ceskatelevize.cz/ivysilani/10462089078-minuty-dobrodruzstvi/212471290570002/
Ve Firefoxu nainstaluji addon Firebug a stisknu F12 .
2. V nabídce Firebugu vyberu funkci NET a síťový filtr nastavím na ALL
3. Stiskem F5 znovu načtu stránku s žádaným pořadem
4. V okně Firebugu se zobrazí síťová aktivita pro tuto stránku.
Zajímá mě řádek GET ClientLink?id status 200 OK domain cdnls01.nacevi.cz
6. Kontextovou nabídkou zkopíruji URL cestu tohoto souboru a otevřu novém okně,
nebo klepnu na záložku Response
7. Najdu řádky:
rtmp://wcdn102.nacevi.cz/ct-vod/_definst_?id=HRq9YR3gdFyo4h62&amp
mp4:iVysilani/2012/10/24/MinutyDobrodruzsCT4-241012-MP4_288p.mp4
8. Z těchto řádek složím cestu k mp4 souboru, prvni řádku od druhé oddělím lomítkem /:
rtmp://wcdn102.nacevi.cz/ct-vod/_definst_?id=HRq9YR3gdFyo4h62&amp/mp4:iVysilani/2012/10/24/MinutyDobrodruzsCT4-241012-MP4_288p.mp4

9. Pomoci nástroje rtmpdump stáhnu stream.
Příkaz:
rtmpdump -r "rtmp://wcdn102.nacevi.cz/ct-vod/_definst_?id=HRq9YR3gdFyo4h62&amp/mp4:iVysilani/2012/10/24/MinutyDobrodruzsCT4-241012-MP4_288p.mp4" -o minuty_dobrodruzstvi2.mp4 --live

Stahování probíhá stejnou dobu jako přehrávání, takže hodinový pořad se stahuje opravdu hodinu.

10. Cesta k souboru se časem mění, proto pokud postupuji pomalu, musím všechny kroky provést znovu a rychleji.

Unknown said...

Predne perfektni navod diky - nicmene mam zajimavy problem - stahuju hydepark, stahovani se normalne dokonci za normalni dobu. Nicmene prehrat lze pak pouze neco pres 10 minut pak se video sekne. Zkousel jsem 2x a pokazde to same. Zkousel jsem nekolik prehravacu vcetne VLC. Nevite co by mohlo byt problem?

Unknown said...
This comment has been removed by the author.
komat said...

Jeste jednoduzsi je nechat Firebug aby ten rtmp stream nasel. Takze krok 4. by mohl byt:

4. v rozhrani firebugu dam CTRL+F, v pup-up boxu zaskrknout "Response bodies" a do hledaneho textu "rtmp". Firebug vam pak hned otevre odpoved s adresou toho streamu.

Krist said...

Z Firebugu nemusim nic otvirat v novem okne. Staci prepnout na panel"odezva".

To Thoros: Ty se radeji do niceho nepoustej :D

- Ctrl+V v konzoli nefunguje ale funguje pres pravy tl. "vlozit".

- rtmpdump.exe nespustis jen tak dvojklikem ale v prikazovym radku (klidne pruzkumnik nebo TotalCmd pri aktivni slozce rtmp) zadas cely retezec.

Unknown said...

Tento XML soubor nemá připojeny žádné informace o vzhledu prvků. Strom XML dokumentu je zobrazen níže.



kde to mam teda hledat? Prosím HELP

Unknown said...

Tento XML soubor nemá připojeny žádné informace o vzhledu prvků.

Strom XML dokumentu je zobrazen níže.



kde to mam teda hledat? Prosím HELP

Unknown said...

Tento XML soubor nemá připojeny žádné informace o vzhledu prvků. Strom XML dokumentu je zobrazen níže.




kde to mam teda hledat? Prosím HELP

Olson said...

Tak jedu podle návodu a nějak se tím nemůžu prokousat. Potřebuju kravinu na 2 minuty a nic.
http://www.ceskatelevize.cz/ivysilani/1096128096-kouzelna-skolka/21254311300/obsah/234805-4-vstup-jitka-a-frantisek/

Kdybyste mi to někdo mohl stáhnout a někam šoupnout, budu moc rád. Děkuji.
olson.vs@seznam.cz

Unknown said...

Na zaklade techto informaci jsem vytvoril jednoduchy script. Spise pro uzivatele linuxu.

https://github.com/bardolf/iVysilaniDownloader

mn said...

Jednoduche zachytavani streamu pomoci rtmpsuck v Linuxu:
http://stream-recorder.com/forum/use-rtmpsuck-ubuntu-10-04-lucid-lynx-t7070.html?t=7070

Ve zkratce:
useradd -m rtmp
chmod 777 /home/rtmp
su rtmp
cd
iptables -t nat -A OUTPUT -p tcp –dport 1935 -m owner \! –uid-owner rtmp -j REDIRECT
rtmpsuck
... a spustit prehravac v browseru. :)

Pozor, podle popisu nelze zachytit vice streamu najednou!

sax said...

Nebo taky můžete stahovat pomocí https://github.com/Limoto/tv-dl - tím si ušetříte procházení ve Firebugu. Ještě GUI s frontama a nastavením počtu paralelních stahování a bude to ideální.

Unknown said...

Díky moc za návod! Připojuji po dlouhé laboraci i návod v Safari

1. otevřít stránku s pořadem
2. otevřít vývojářskou konzoli (jde pomocí kontextové nabídky - Prozkoumat prvek - musí být povolen vývojářský panel)
3. kliknout na záložku Časové osy
4. obnovit stránku
5. Najít Síťový požadavek s názvem ClientLink (je to typ Jiné) a ten rozliknout
6. Zobrazí se teď v panelu Prostředků a dvoklikem na něj otevřete XML soubor s adresami viz návody výše

Ještě poznámka k RTMPdump na OS X
Grafická nástavba stahuje pouze do FLV, který pak mělo dost lagy a další potíže s extrahovaným audiem... kde byl problém nevím.
Terminálem spuštěný EXEC rmptdump do mp4 byl již úspěšný.

./rmtpdump -r "složená adresa" -o nazev.mp4 --live

Svatiiik said...

Ahoj, je nejaka novinka ve stahovani videi? Polozka GET Client neni k nalezeni. Diky za odpoved

mn said...

Aktualni postup:

1) Je treba postupovat rychle, adresy maji omezenou platnost. Uvedeny postup neni narocny na CPU.
2) Ve Firefoxu si v Nastroji vyvojare nebo ve Firebugu [F12] zapneme kartu Sit.
3) Spustime video, preskocime reklamu a u konce vypisu na karte Sit odchytneme GET na soubor "-pc.m3u8".
4) Z nabidky pod pravym tlacitkem zvolime otevrit v novem panelu a stahnout nebo pouzijeme wget.
5) Ze stazeneho souboru m3u8 si vybereme odkaz podle pozadovane kvality:
720 ... 1505*.m3u8
576 ... 1504*.m3u8
404 ... 1503*.m3u8
288 ... 1502*.m3u8
6) V pripade, ze nas prohlizec zacal pozadovanou kvalitu jiz prehravat, krok 4) a 5) muzeme preskocit a odkaz si vzit primo z karty Sit.
7) Ziskany odkaz vlozime do VLC: Menu -> Media -> Prevest / Ulozit... [Ctrl+R] -> karta Sit a potvrdime kliknutim na Prevest / Ulozit.
8a) Nastavime Prevest a vytvorime si novy Profil, kde pouze zmenime zapouzdreni:
Nazev: Ceska televize
Zapouzdreni: MP4/MOV
Video kodek: [x] Video [x] Zachovat puvodni obrazovou stopu
Zvukovy kodek: [x] Zvuk [x] Zachovat puvodni zvukovou stopu
Titulky: [_] Titulky
8b) Nebo nastavime Zachovat vstupni format a konverze nechame na jindy.
9) Zadame Cilovy (vystupni) soubor s koncovkou mp4 pro 8a) a ts pro 8b) a spustime.
10) Kdyz nam VLC nesdeli, zda se stahuje, nebo zda uz se dostahovalo, pomuzeme si sledovanim velikosti ciloveho souboru, sledovanim zateze CPU od VLC nebo sledovanim provozu site.