___ __ _ _ __ _   _  ___   ___ _ __   __ _  ___ ___ 
 / __/ _` | '__| | | |/ _ \ / __| '_ \ / _` |/ __/ _ \
| (_| (_| | |  | |_| | (_) |\__ \ |_) | (_| | (_|  __/
 \___\__,_|_|   \__, |\___(_)___/ .__/ \__,_|\___\___|
                |___/           |_|                   

Hromadné stahování podcastů z RSS

Narazila jsem nedávno na fajn podcast o retro výpočetní technice Retro Computing Roundtable. Nahrávají více či méně pravidelně už přes deset let. A za tu dobu se jim v archivu nasbíralo více materiálu než by se mi kdykoliv chtělo stahovat po jednom. Naštěstí mají jako správný web i RSS kompletního archivu*. Jelikož nemám na podcasty žádný fancy program, protože jich poslouchám hodně málo a na Androidu se mi nechtělo stahovat žádný udělátka přecpaný reklamou a sledovacím malwarem, rozhodla jsem se stáhnout si archivní epizody takřečeno svépomocně. A GNU/Linux k tomu skýtá ideální nářadí.

Nástroj wget Hrvoje Nikšiće patří už léta ke standardní výbavě GNU/Linux systémů. Je to neinteraktivní udělátko na stahování souborů.

Perl je Perl. Svižný skriptovací jazyk postavený na základech C a Unixu.

A stáhnou .mp3 epizody z XML aniž bychom znali jejich přesné adresy jde za použití regulérních výrazů.

Celá věda, celý ten hacking co ušetří několik, u Androidů až desítek, mega v dedikovaných appkách pak vypadá asi takhle:

perl -lne 'wget $1 if /(https:*.+mp3)/' rcrpodcast-archive.xml


perl -lne
l procesuje konce řádků
n uzavře program do WHILE smyčky
e rozběhne program v terminálu

v perlu můžeme k voláním na systémovým použít ` .
$1 je standardní proměnná pro první výsledek regulérního výrazu
samotný výraz znamená "pro cokoliv co začíná na https a končí na mp3"

na konci je XML soubor s rss archivem

A pak už jen stačí počkat až se to všechno stáhne. A že wget i perl najdeme i u Androidího termuxu, tak touhle magickou formulkou můžeme bez dalších appek a pitomostí nastahovat z XML podcasty i přímo do kapsy.

    • od epizody 262 přešli na nový hosting a starší díly mají v archivu
Makaleler a66ey

Yorum ekle

E-posta adresiniz yayınlanmayacaktır. Yorumlar denetlenmektedir.


bg  cs  da  de  el  en  es  et  fi  fr  hu  it  lt  lv  nb  nl  pl  pt  ro  ru  sk  sl  tr  uk 
.:optimized for POSIX text browsers:.