Hlavní navigace

YouTube-DL a FFmpeg jako záloha mizejícího internetového obsahu

18. 12. 2020
Doba čtení: 14 minut

Sdílet

 Autor: David Ježek, podle licence: CC BY-SA 4.0
V době cloudové máme tendenci spoléhat na neomezenou dostupnost obsahu na internetu. Opak je ale pravdou a situace je dokonce horší než před ~10 lety. Lze s pomocí YouTube-DL a FFmpegu spasit svět?

Dnešní povídání prosím berte s rezervou. Mnoho z vás se mnou nebude souhlasit, někteří si budou ťukat na čelo, ale následující odstavce zakládám na své osobní zkušenosti za období zhruba 15 let, kdy jsem aktivním konzumentem internetového obsahu.

Dostupnost obsahu nikdy nebyla lepší i horší

Říká se „Jednou na internetu, navždy na internetu“. To ale není pravda. Nikdy nebyla a postupem let je to pravda méně a méně. Je řada velkých důvodů, proč obsah z internetu navždy mizí. Dovolte mi se krátce zastavit u těch, se kterými se potkávám nejčastěji.

Právo na zapomnění

V Evropě máme uzákoněný takový zvláštní mechanismus: právo na zapomnění. Kdokoli může jakéhokoli provozovatele požádat, aby vymazal jeho data. Nemusíme ani vytahovat modelový příklad s odsouzeným pedofilem, který po propuštění z vězení chce po sobě zamést online stopy. Požádat může kdokoli a poskytovatel by mu měl vyhovět. Velice mocný mechanismus, který narušuje historickou konzistenci internetu a který byl v době jeho zavádění velmi silně propírán všemožnými weby. A který už dnes možná ani nikdo nebere v patrnost, prostě tu je, ale povětšinou se nevyužívá.

Naopak lidé často hrnou volně na internet spousty až intimních informací, které nezabezpečí před světem. Vedle všech těch Facebooků a Instagramů vzpomeňme třeba kdysi slavné třídění foto galerií dle popularity na Rajčeti, kterému vévodily nějaké dámy na dovolené v Chorvatsku, jež si zapomněly doma přibalit dostatek oblečení, pročež dovolenou musely trávit nahoře a často dole bez.

DMCA mazání (a jiné zákonné důvody)

Další, zejména za oceánem oblíbený způsob odstraňování obsahu z internetu jsou DMCA požadavky, tedy požadavky o odstranění právně chráněného obsahu dle amerického zákona Digital Millenium Copyright Act roku - 1998. Toto je nejčastější nástroj Hollywoodských studií pro jejich boj s torrentovými větrnými mlýny, jemuž více než proaktivně vyhovuje Google i YouTube (a další). Zde jdou požadavky i do tisíců denně, ale z hlediska tématu mého dnešního článku je to méně relevantní příčina mizení obsahu z internetu.

Prostý redesign webu, který nebyl proveden s citem

Odhlédněme na chvíli od videí a fotek a vzpomeňme důvod, který třeba mě osobně vadí asi nejvíc. Často totiž zmizí nikoli třeba článek, ale kus jeho obsahu. Nějaký starý JavaScript, nějaké specifické HTML/CSS formátování, nějaká hříčka v designu stránky napsaná natvrdo. To vše často zmizí poté, co někdejší na koleně napsaný web přejde na Wordpress / Joomlu / Drupal / apod. Text stále existuje, ale chybí v něm grafy, fotky, něco takového.

Jako příklad mohu dát třeba web, který jsem svého času vedl: CDR (DIIT). Měli jsme vlastní unikátní redakční systém (v němž bych dnes opravdu nechtěl pracovat), měli jsme unikátní databázi vypalovacích mechanik a kvality optických médií atd. To posledně jmenované byl celosvětově unikátní obsah. Cca v roce 2010 jsme přecházeli na jiný CMS systém a o něco později (2012 nebo tak nějak?) na Drupal.

Během těchto dvou přechodů se části této historické paměti ztratila buď proto, že to nikdo nezkontroloval, nebo proto, že bylo rozhodnuto, že toto nelze do Drupalu převést a není důvod to udržovat. Oba důvody jsou plně v pořádku a chápu je, uvádím tento příklad pouze jako modelový. Měli jsme desítky tisíc textů, které často obsahovaly ruční HTML formátování, které v Drupalu nemohlo fungovat a ručně to upravovat bylo nerealizovatelné. Pro databázi mechanik/médií to platí dvojnásob včetně toho, že o to přestal být mezi čtenáři zájem. Tento obsah tak lze dnes nalézt jedině díky službě Web Archive, která jej po léta indexovala.

Úmrtí dané webové služby

Výrazně horší je, když nějaká služba úplně umře. Buď přestane fungovat, nebo je plánovaně vypnuta a pokud si člověk do dne XY nestáhne obsah, má smůlu. Z poslední doby z Česka zmiňme třeba Lidé.cz. Ale takových bylo víc. Svého času o tom mluvil Jason Scott z Web Archive, snad se mi podařilo najít tu správnou přednášku:

Pointa je jasná a zejména u Googlu: kde máte jistotu, že po všech těch službách jako Wave, Google+, Picassa, omezení Fotek atd. jednoho dne Google nesmaže nějaký váš obsah, s nímž počítáte? Ta jistota je dle mého názoru limitně blízká nule. A to se bavíme o megakorporaci, která rozhodně neukončí činnost, protože zkrachovala.

Rozhodnutí autora, že ty bláboly z mládí fakt není důvod nechávat online

Internet už majoritní populace v Česku používá řekněme 20 let. Za tu dobu se z uhrovitých 15letých mladíků stali třeba slušně postavení manažeři či ředitelé škol, primáři v nemocnicích atd. A neradi vidí své pubertální výlevy online a tak je zkrátka jednoho dne smažou. To často stačí k tomu, aby obsah z většiny či zcela a hlavně definitivně zmizel. I já jsem takto svého času promazal blogposty na abclinuxu, protože jsem se na to už nemohl dívat. A kdo si je do té doby nestáhl, buď se dnes musí ručně naslepo probírat Web Archive, nebo má smůlu.

Mimochodem pro všechny tyto případy platí, že je nepodstatné, zdali zrovna já nebo vy považujeme ten či onen kus obsahu za důležitý či zachování-hodný. Další tisíc lidí může tisíc dalších názorů. Ale když obsah zmizí, je zmizelej.

Video představuje velkou komplikaci

Což o to, webové stránky se stahují, zachraňují, loví ve Web Archive relativně snadno. A můžete jich postahovat tisíce denně a nebudete kvůli tomu muset kupovat nový harddisk ani rychlejší internetovou přípojku. Video je daleko komplikovanější záležitostí hned z několika důvodů.

Ten první krásně v těchto dnech ilustruje jeden z nejnavštěvovanějších webů celého internetu, server PornHub. Ten v důsledku obvinění a odhalení v článku na The New York Times v jednom okamžiku smazal zhruba 80 % obsahu, neb tato část obsahovala nenulové množství nelegálních praktik či videí přímo za hranicí litery zákona. Smazáno tak bylo vše, co na PornHubu nepublikují ověření uživatelé. Takže kdo měl kupříkladu na tomto serveru svoji oblíbenou slečnu z druhého konce planety, tak dnes má smůlu a její videa už na tomto serveru nenajde, pokud neměla ověřený účet. Tedy pokud si je mezitím nestáhl pomocí nějakého nástroje.

Ale nemusíme ani zabíhat do této branže. Na YouTube je též více lidí, kteří čas od času smažou veškerý svůj obsah. Z amatérských fotografů, které jsem měl historicky v hledáčku, to byl třeba Chicagský street fotograf Chuck Jines, na jehož kanál vás již neodkáži, protože se jednoho dne přestěhoval do pouště v Novém Mexiku, začal žít motorkářsko-poustevnickým životem, takzvaně off-grid, a smazal veškerý svůj foto obsah. Ne že by za něco stál, upřímně 90 % jeho videí bylo bezvýznamné tlachání, ale těch 10 % stálo za to. A já jsem dnes rád, že jsem před lety pár z těch videí stáhl pomocí Youtube-DL, protože službu YouTube zkrátka Web Archive neklonuje.

Dalším příkladem, který z moci provozovatele služby YouTube naráží na proaktivní přístup k mazání, je asi světově neznámější otevřený kritik Islámu, jistý David Wood. Ten si čas od času stěžuje na svůj boj s YouTube, kdy jsou mu mazána videa poukazující na to či ono, přičemž odvolání proti tomuto kroku zjevně posuzují stejní lidé, kteří to mazání provedli. De facto zde naráží na skutečnost, že zaměstnanci korporace Alphabet, která vedle Googlu provozuje i YouTube, zkrátka rozhodují o tom, co na YouTube smí být a co ne, a to na základě buď vágních, nebo přímo nevyřčených pravidel, proti kterým se tak v podstatě nedá odvolat.

I tento mechanismus je jádrem poslední roky řešené anabáze, zdali velcí provozovatelé jako Google či Facebook jsou pouze provozovatelé platformy (tedy nemoderují obsah), nebo vydavatelé (ti jsou v USA za obsah zodpovědní). Tyto firmy nechtějí být bráni jako vydavatelé, neb by jim to mohlo zlomit vaz (s ohledem na množství obsahu na YouTube či Facebook / Instagram denně nahrané nelze o jeho souladu se zákony rozhodovat lidskými zdroji, musí to řídit samoučící automatické systémy), ale současně část výhod vydavatelů se jim hodí do byznysu - toto téma je však příliš komplexní na to, abychom jej zde detailně rozebírali (ostatně vyčkejme, jak dopadne nejnovější vývoj kolem obvinění FTC vůči Facebooku, které nejspíš dopadne i na Google a další too-big-to-fail korporace) a různá další vyšetřování, která vyvstala po aféře Cambridge Analytica.

Technický problém

Řekněme však, že máme potřebu například vytvářet si svoji domácí zálohu nějakých YouTube kanálů. Typický aktivní uživatel YouTube obvykle sleduje desítky kanálů a tudíž se k němu dostávají desítky videí týdně. Mnohdy už ve 4k rozlišení, téměř většinově pak minimálně v 1080. Řádově může jít v případě stahování přes Youtube-DL v nejvyšší kvalitě i o stovky GB týdně, ne-li více. Ročně bychom tak pro tento účel potřebovali vyhradit diskovou kapacitu v řádu zhruba jednoho 18TB HDD ročně (ať se nám to dobře počítá).

Pomiňme na chvíli, že se nám „lokální záloha YouTube“ může jevit jako hloupost.

Jde jistě o investici, kterou lze považovat ze přehnanou, neb o většině videí na YouTube lze říci, že 4k rozlišení nepotřebují. Nepotřebujete se koukat na Teda Forbese, který za posledních 12 let nahrnul na YouTube zhruba 160 videí s průměrnou délkou kolem 10 až 20 minut, v posledních letech ve 4k. Z většiny jde o pouhé tlachání, na které s přimhouřením oka stačí 540p, případně 720p, případně 1080p v nižší kvalitě. Z velkých stovek GB se mohou stát menší desítky GB. Jako záloha pro případ, že by Ted smazal svoje živobytí, to stačí.

Nejde ale jen o populární nový obsah YouTubových autorů. Kdysi jsem sledoval například YouTube kanál (název už si nevybavím), kam tvůrci hrnuli stovky starých dokumentárních filmů, skenů různých dokumentů o vývoji raket, letadel, nástrojů CIA pro odposlechy apod. Jednoho dne na ně někdo zaklekl a DMCA požadavek udělal své. Stalo se tak ve chvíli, kdy byla moje Youtube-DL dávka asi v 5 % procesu stahování a od té doby jsem na tento konkrétní obsah už jinde nenarazil. Mám pár kousků, nic víc. Zčásti proto, že jsem tehdy čekal, až z e-shopu dorazí nový velký disk, protože jsem neměl kam videa stahovat (a tehdejší CPU s tehdejší ranější verzí x264 nestíhaly s re-encodingem do nižší kvality tempu stahování na kabelové lince ve velkém městě).

Další příklad: když se vrátíme technologicky o jeden krok zpět, tak kdyby v roce 2010 někdo nenahrál asi nejslavnější přednášku v daném tématu v podání světově asi nejznámějšího veganského aktivisty za práva zvířat, Garyho Yourofskyho, toto téma by se mu nepodařilo dostat do širšího povědomí veřejnosti a dál by jen „paběrkoval“ živými přednáškami. V tomto případě tedy záloha neproběhla z internetu na domácí disk, ale z reality pomocí amatérské kamery na internet, ale princip je to stejný. Někdy je zkrátka člověk ten jediný, který danou věc uložil na nějaké datové médium a nezávisle na budoucím vývoji tak zůstává zachycena pro budoucí historii. Opět: není podstatné, jaký je váš postoj k právům zvířat, podstatné je to, že daná dílčí událost nezmizela ze světa, její záznam nadále existuje.

Proto všechno bylo tak důležité, aby nástroj YouTube-DL nezmizel ze světa.

Jak na zálohování videí z internetu

Tento článek si neklade za cíl být všeobjímající encyklopedií. Ve zbývajícím textu si dovolím nastínit to, co se v posledních letech osvědčilo mě osobně. První je samozřejmě YouTube-DL. Po určitém distribučním turismu v posledních letech jsem dospěl k tomu, že nespoléhám na repozitáře v distribucích a zkrátka používám statickou verzi YouTube-DL přímo z domovské stránky, kterou vždy, když stahování z té či oné služby nefunguje, aktualizuji jednoduchým příkazem:

$ ./youtube-dl -U

Když video nelze stáhnout žádnou rozumnou cestou, musí občas nastoupit hrubá síla. Dnes totiž díky technologiím, které do internetového videa a prohlížečů přišly, mnohé služby servírují video jako sekvenci hromady dílčích datových paketů, které prohlížeč skládá dohromady a které YouTube-DL buď neumí zachytit, nebo je ani nelze rozumně vylovit z konzole prohlížeče. Jako zcela krajní možnost tak používám prostý záznam dění na obrazovce v příslušném nastavení kvality v nástroji FFmpeg. Slušně to shrnuje nápověda na domovském webu a mohu říci, že s pomocí tohoto nástroje úspěšně chytám i živá videa na Facebooku. Pro zachycení napálím kvalitu komprese hodně vysoko, následný re-encoding (o kousek níže v textu) pak nastavím dle kvality obsahu. Chce to ale poměrně hodně diskového místa a absolutní jistotu, že vám do videa nevyskočí nějaký otravný GUI prvek či zvuk.

Dlužno doplnit, že u FFmpegu si dle platformy a železa svého počítače musíte vyzkoušet, kterou video vrstvu a který zvukový proud chcete zachytávat. Mám úspěšně vyzkoušeno i zachytávání plochy se zvukem z mikrofonu na Windows, funguje to dobře i na této platformě, například takto:

$ ffmpeg -framerate 60 -f gdigrab -i desktop -f dshow -i audio="Microphone (High Definition Audio Device)" -c:v libx264rgb -crf 5 -preset ultrafast VÝSTUP.mkv

Rekomprese videa

Dobrá, řekněme tedy, že máme video již na svém úložišti a vadí nám jeho datová velikost. Já osobně většinu obsahu, který slouží jako záloha pro případ „co kdyby“ re-encoduji následujícím příkazem, který si následně rozebereme:

$ ./fffmpeg -i INPUT -map 0:v -map 0:a -c:v libx265 -crf 32 -c:a libopus -compression_level 10 -b:a 80k -vbr on OUTPUT.mkv

Opět používám primárně statický buuild projektu FFmpeg, a to poslední daily build (zatím mi vždy fungovaly spolehlivě). Distribuce v tomto ohledu bývají pomalejší. Zatím se držím komprese videa pomocí kodeku x265, na AV1 ještě čas neuzrál. A nyní k jednotlivým parametrům tohoto ukázkového příkladu:

  • -map 0:v -map 0:a … tímto řeknete FFmpegu, že má vzít video a audio stopy - lze samozřejmě encodovat s více audio stopami, ale to jsem nikdy nepotřeboval. Většina BDripů filmů obsahuje zpomalený zvuk TV dabingu (filmy jsou 24fps, dabovalo se ale na zryhclenou verzi s 50 půlsnímky, tedy 25 fps), což se nedá poslouchat (zejména je to trapné ve chvíli, kdy i originální lisovaný Blu-ray film obsahuje dabing z Československé televize zpomalený v poměru 24/25fps bez úpravy tónu (pitch)).
  • -c:v libx265 -crf 32 … první položka definuje vybraný kodek, druhá pak nastavení kvality. Já používám pro tyto zálohy YouTube apod. jednoprůchodové kódování, neb jsem nezaznamenal žádný signifikantní rozdíl v kvalitě videa při dvouprůchodovém. Ale parametr -crf volím vhodný pro každé video zvlášť: když je zdroj vyšší kvality, můžete si často dovolit jít až na horší kvalitu 32. Pokud je ale zdroj kvality nižší, je lecky potřebí jít nejen na 28, ale třeba i na 25, aby se neobjevilo kostičkování „makrobloků“ (ano, vím, u H.265 už se to jmenuje Coding Tree Unit). V případě vytváření např. BDripů by samozřejmě bylo vhodné použít dvouprůchodové kódování.
    • Z YouTube často stahuji 4k videa, která pak měním v 1080 či 720 či 540. K tomu slouží přídavný parametr tohoto typu: -vf scale=960x540:flags=lanczos. Moje zkušenost je taková, že i pro 540p má ještě použití x265 smysl.
  • -c:a libopus -compression_level 10 -b:a 80k -vbr on … první parametr definuje použití komprese zvuku do formátu Opus. Pokud nevytváříte video pro nějaký přístroj s omezenou podporou formátů, tak Opus rozhodně doporučuji, je to jeden z největších pokladů open-source světa. Úroveň komprese dle vkusu, já nechávám desítku. Datový tok volím dle obsahu, pro film povětšinou 112kbit/s stereo, pro mluvené slovo klidně jdu i na 40 až 64kbit/s stereo. To vše při nativní vzorkovací frekvenci 48kHz.
    • Pokud je zdroj v jiné vzorkovačce (mnohá videa z YouTube se stáhnou s 44,1kHz AAC), je potřeba přidat převzorkování, a to parametrem -ar 48000. Pro mluvené slovo/dokumenty pak často také remixuji na mono, a to příkazem -ac 1. Kolik místa se dá ušetřit na BDripu, kde někdo nechal 1536kBit/s DTS, když jej převedete na 112kbit/s Opus, snad ani netřeba rozvádět.

Vše ukládám jen a pouze do kontejneru Matroška (.mkv), jiný jsem od roku 2002 snad ani nepoužil. Má dobrou podporu v TV, různých přehrávacích krabičkách, umí jej VLC, které nainstalujete prakticky všude a obecně je to fajn formát podporující i rozsekání na kapitoly, více zvukových stop než dvě, embeddování titulků atd.

Má to vůbec smysl?

Na otázku v závěru si musíte odpovědět sami. Já jsem si na ni odpověděl již před lety po několika případech, kdy jsem se jednoho dne už nedostal k určitému obsahu. Věřím, že by někdo jiný neměl mít právo rozhodovat o dostupnosti nějakého materiálu na internetu jen proto, že nesouhlasí s tím, co materiál sděluje světu. Ano, žijeme v době, kdy je normální veřejně „soudit a popravovat“ herce za to, že někomu před 40 lety sáhli na zadek a činit z nich orwellovské neosoby, přetáčet celé filmy s jejich náhradníky, cenzurovat slavné spisovatelky za projevený názor.

Ale dokud bude tato doba trvat, doba, kdy nemáte jistotu, že úterní video ještě ve středu bude na YouTube, máme jako uživatelé minimálně morální právo vytvářet záložní kopie pro budoucnost. Teď nemluvím o dílech, která jsou v rozporu se zákony, slušnými mravy či obecnou morálkou (na to dobře upozorňuje například film V síti), mám na mysli materiály, které kupříkladu v Evropě jsou zcela legální, morální i společensky kladně přijímané, ale nějaký zaměstnanec v Googlu se jednoho dne rozhodl, že je přesto smaže, protože porušují zásady komunity. Jakési nedefinované, nepopsané, nezveřejněné zásady, proti kterým se ani nelze odvolat. Raději vyzálohovat 990 zbytečných videí, než přijít o 10 těch opravdu důležitých, která by jinak smetla nějaká, třeba i jen dočasná společenská změna.

Autor článku

Příznivec open-source rád píšící i o ne-IT tématech. Odpůrce softwarových patentů a omezování občanských svobod ve prospěch korporací.