Hlavní navigace

Hoffmanův Podcast

31. 7. 2011 11:05 (aktualizováno) Ondřej Caletka

Ivan Hoffman se do mého povědomí zapsal především jako autor ranní poznámky ČRo 1 – Radiožurnálu. Když byl v roce 2008 Barborou Tachecí odejit, velice rychle se s podobným formátem uchytil u společnosti Vltava-Labe-Press, která vydává regionální deníky. Sloupek 300 slov na aktuální téma vychází kromě černotisku také ve webové podobě a snad z nostalgie k radiožurnálu dokonce i ve zvukové podobě s charakteristikým autorským projevem.

Bohužel právě zvukové záznamy jsou publikovány dosti nešikovně. K jejich přehrání je třeba spustit flashový přehrávač na webové stránce deníku, jiné možnosti oficiálně nabízeny nejsou. Stránka sice nabízí RSS export, obsahuje ale pouze titulek, odkaz a perex článku.

Napsal jsem do redakce, zda nechtějí odkaz na zvukové soubory přidat do RSS exportu, čímž by se proměnil v plnohodnotný podcast. Poděkovali za námět a přislíbili, že tuto možnost zváží. Než tak učiní, vymyslel jsem vlastní, pokěkud kontroverzní skript v Pythonu 3, který originální RSS export na podcast převádí.

Program funguje tak, že stáhne a přečte originální RSS export. V něm postupně otevře všechny odkazované stránky. Na najde odkaz na XML playlist a v tomto playlistu přímý odkaz na MP3 soubor s nahrávkou. Do původního RSS exportu doplní ke každé položce tag enclosure s přímým odkazem na MP3 soubor. Pokud výstup skriptu vystavíte někde na webu a namíříte na něj Podcast čtečku, můžete získat každé ráno čerstvý komentář přímo do svého přenosného přehrávače. Jako vedlejší produkt skript do výstupního souboru přidá i úplný text deníku, takže pokud jej čtečka podporuje, je možné přečíst si celý fejeton přímo ve čtečce.

Popis programu

Skript jsem vytvořil poměrně rychle po prostudování kapitol o XML a HTTP ve výborné knize Marka Pilgrima „Ponořme se do Pythonu 3“. V pasáži o HTTP se Mark hodně rozepisuje o tom, jak je důležité HTTP správně implementovat a že jedině knihovna httplib2 takovou komunikaci zvládá, včetně cachování. I když jsem knihovnu použil, narazil jsem na tvrdou realitu dnešních dynamicky generovaných webů, totiž že u veškerého obsahu je serverovými hlavičkami cachování zakázáno. Adresář .cache se tedy sice plní staženými daty, při dalším spuštění skriptu jsou však všechny soubory nemilosrdně staženy znovu.

Přesto se cache hodila, hlavně pro ladění programu. Odhalil jsem tak například, že novinový server trpí drobnou vadou řeči. Vydavatelskou společnost například označuje jménem VLATA-LABE-PRESS:

<copyright>© Copyright VLATA-LABE-PRESS, a.s. 2000 - 2011 - exodus4</copyright>

O něco vážnější vadou je, že také občas zadrhává. Projevuje se to tak, že při požadavku o stažení RSS exportu tento vrátí rovnou dvakrát za sebou. Knihovna ElementTree těžce nese, má-li XML dokument dvě kořenové značky, takže jsem musel do skriptu vestavět workaround, který odsekne zbytek souboru po první ukončovací kořenové značce.

Závěr

Jsem si plně vědom, že využívání webových stránek deníku takovým způsobem, jakým to dělá skript, může být chápáno jako zneužití. Je dost možné, že obchodní model Hoffmanova deníku počítá kromě prodeje tištěných verzí také s příjmy ze zobrazování reklam na webové stránce. Tyto reklamy v RSS streamu ani podcastu nejsou. Je to v podstatě stejná situace jako s programy pro generování XMLTV dat prostřednictvím automatizovaného zpracování portálů s TV programem.

Obsah webu je také chráněn autorským zákonem. Z toho důvodu není možné vygenerovaný podcast dále sdílet. Použití pro vlastní potřebu je však dle mého laického názoru zcela legální, podobně jako je legální používání blokovačů reklam pro webové prohlížeče.

Sdílet