Streamovaná videa - nedobytná pevnost?
Sunday, November 11th, 2007Během víkendu jsem byl požadán, zda bych nemohl stáhnout jedno video patřící mezi streamy v archivu České Televize. Říkal jsem si, co by na tom mělo být, vždyť je to jen stream. A pustil jsem se do práce.
Stahovat streamovaná videa není taková sranda, jako třeba stahování z Youtube, tam jde v podstatě o jediný soubor, ale stream je sekvence moc obrázků a zvuků (brutálně zjednodušeně řečeno), takže je poměrně jasné, že se nebude končit wgetem ani jiným stahovačem.
Čím jiným začít, než zkoumáním HTML stránky, ze které se stream přehrává. Nutno také podotknout, že mně se nepřehrává, mplayeru se do toho prostě nějak nechce. Ale tomu, co na mě vyskočilo, jsem nechtěl věřit. Nejen že má celá stránka asi 1300 řádků kódu, ale odkaz, který jsem našel mi opravdu vyrazil dech.
/vysilani/videoscripts/playlist.asx?params=a%3A2%3A%7Bs%3A3%3A%22url%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A65%3A%22http
%3A%2F%2Fct1streaming.visual.cz%2Fnew%2Fasx%2Fhigh%2FFenomenDnes-300807.asx%22%3B%7Ds%3A4%3A%22stat%22%3Ba%3A14%
3A%7Bs%3A8%3A%22id_porad%22%3Bs%3A11%3A%2210119576319%22%3Bs%3A8%3A%22id_index%22%3BN%3Bs%3A4%3A%22sidp%22%3Bs%3A11
%3A%2210119576319%22%3Bs%3A4%3A%22idec%22%3Bs%3A18%3A%22207+452+80137 %2F0035%22%3Bs%3A5%3A%22kanal%22%3Bi%3A1%3Bs%
3A5%3A%22datum%22%3Bs%3A10%3A%222007-08-30%22%3Bs%3A3%3A%22cas%22%3Bs%3A8%3A%2222%3A40%3A00%22%3Bs%3A5%3A%22nazev%2
2%3Bs%3A12%3A%22Fenom%E9n+dnes%22%3Bs%3A4%3A%22live%22%3Bb%3A0%3Bs%3A6%3A%22format%22%3Bs%3A2%3A%22WH%22%3Bs%3A7%3A%
22referer%22%3Bs%3A2%3A%22CT%22%3Bs%3A5%3A%22agent%22%3Bs%3A113%3A%22Mozilla%2F5.0+%28X11%3B+U%3B+Linux+i686%3B+en-US
%3B+rv%3A1.8.0.13pre%29+Gecko%2F20071022+Ubuntu%2Fdapper-security+Firefox%2F1.5.0.13pre%22%3Bs%3A2%3A% 22ip%22%3Bs%3A13%3A%2285.160.41.219%22%3Bs%3A6%3A%22ipname%22%3Bs%3A27%3A%22ip-85-160-41-219.eurotel.cz %22%3B%7D%7D"
Všimněte si, co URL všechno obsahuje: prohlížeč, IP adresu a další věci. Dlouho jsem s touhle adresou laboroval, wget mi ji nechtěl zkousnout (a já se mu ani nedivím), pak když jsem něco vymámil, vypadl mi strašné bláboly, třeba:
<asx version="3.0"></asx>
A s tímto materiálem pochopitelně moc nestáhnete. Ale pak mě napadla naprosto triviální myšlenka, která mě spasila. Prostě z výše zmíněného URL udělat odkaz a zajít na něj. A světe div se, spustil se mi mplayer plugin a po velmi malých dávkách začal hrát. Mplayer je opravdu slušňák, jen co je pravda, pokud na jeho plugin kliknete pravým tlačítkem, nabízí volbu, která je moje zamilovaná: Copy URL
Tímto postupem pak získáte přímy odkaz na stream, který používá protokol mms. Co ale s takovýmto odkazem, to prostě jen tak nestáhnete. A zde podruhé zaboduje Mplayer a jeho úžasná volba: -dumpstream. Jak samotný název napovída, vydumpuje stream (česky: uloží to video). Video je to ve formátu WMV, stejném jako mnou zvolený stream. Pokud byste snad zvolili RealPlayerovský stream, asi byste taky nějak pochodili.
Co bych před koncem ještě vypíchnul je velikost streamu. Zvolil jsem WMV ve vyšší kvalitě aby se na to dalo dívat a nevěřil jsem, kolik to nakonec zabírá. Čtyřicetpět minut streamu se rozlezlo na 250MB, což mi rozhodně nepřijde málo.
Poslední problém byl, jak dotyčnému video předat, neboť to potřeboval v obvyklém termínu: “Předevčírem bylo pozdě, takže do včerejška mi to prosím někam hoď” a uploadovat pomocí CDMy 250MB, to je dobrá legrace na dlouhou zimu. Nakonec jsem zvolil metodu pro mě nejjednodušší, doinstaoval jsem vše potřebné na server, provedl dump a pak zase vše odinstaloval, aby to tam nestrašilo.
Takže kamarád se nažral, CDMA zůstala celá a dva z pěti čtenářů už přemýšlí, jak celou věc zautomatizovat.
Než od tohoto článku odejdete znechuceni, jak je nudný, nabízím naprosto luxusní hlášku Mplayeru, kterou vám řekne po úspěšném uložení celého streamu: Everything done. Thank you for downloading a media file containing proprietary and patented technology.
Jak Linuxové…