Ich bin Pendler und pro Tag mindestens eine Stunde unterwegs. Da ich die Radiomucke morgens meist nicht ertrage, habe ich immer einen mit Wortbeiträgen gefüllten Audioabspieler ("MP3-Player") dabei. Um ihn zu füllen, stecke ich ihn des Morgens in den PC, starte ein Skript, frühstücke und danach ist der mit diversen erbaulichen Hörstücken gefüllt. Die Installation geht so (reine Konsole, Debian 4, Linuxkern 2.6.23, der Audioabspieler muß sich als USB-Massenspeicher ansprechen lassen können, was aber wohl nicht bei allen der Fall ist).
Das freie Konsolenprogramm "hpodder" lädt
Podcast-Feeds runter,
guckt nach, ob dadrin neue Audiodateien angekündigt sind, die von ihm noch
nicht runtergeladen wurden. Die lädt er dann in ein beliebiges Verzeichnis
runter (bei mir ist das /var/local/krach/podcast).
Installiert wird hpodder unter Debian-artigen Systemen wie üblich mit
apt-get install hpodder
Zum Einrichten rufe man hpodder ohne Argumente auf:
hpodderDann fragt er u.a. nach dem o.g. Datenverzeichnis.
Die Feeds kriegt man überall im Netz um die Ohren geschmissen. Einige wdr-lastige Beispiele:
Zeitzeichen - http://www.wdr5.de/podcast/zeitzeichen_im_wdr_5_radio_zum_mitnehmen_xml.phtml Horst Evers - http://evers.podspot.de/rss Comedy-Six-Pack im WDR - http://podcast.wdr.de/radio/sixpack.xml Die Von der Leyens - http://podcast.wdr.de/radio/vonderleyens.xml Scala-Kinotipp - http://podcast.wdr.de/radio/kino.xml Auf ein Wort - http://podcast.wdr.de/radio/aufeinwort.xml Der satirische Wochenrückblick von Peter Zudeick - http://www.wdr5.de/podcast/wdr_5_-_radio_zum_mitnehmen_der_wochenrueckblick_xml.phtml bel étage - der Medien-Podcast des Handelsblattes - http://www.handelsblatt.com/rss/beletage.xmlDie gewünschten Casts fügt man nun einzeln zu hpodder hinzu:
hpodder add http://www.wdr5.de/podcast/zeitzeichen_im_wdr_5_radio_zum_mitnehmen_xml.phtml hpodder add http://www.handelsblatt.com/rss/beletage.xml ...Mit
hpodder lscasts
guckt man nach, welche Cast hpodder schon kennt:
ID Pnd/Tot Title 5 0/ 26 Auf ein Wort im WDR 4-Radio zum Mitnehmen 9 0/ 16 Das Comedy-Six-Pack im WDR 2 Radio zum Mitnehmen 10 0/ 15 Der satirische Wochenrückblick von Peter Zudeick im WDR 5-Radio zum Mitnehmen 8 0/ 19 Die Von der Leyens im WDR 2 Radio zum Mitnehmen 3 0/ 32 Horst Evers - Podcast 2 0/ 15 Kabarett im WDR 2-Radio zum Mitnehmen 16 0/ 30 Leo To Go im WDR 5-Radio zum Mitnehmen 6 0/ 16 Scala Kinotipp im WDR 5-Radio zum Mitnehmen 15 0/ 8 Töne, Texte, Bilder - Das Medienmagazin im WDR 5-Radio zum Mitnehmen 11 0/ 17 WDR 2 Kompakt - das Wichtigste vom Tage 1 0/ 45 Zeitzeichen im WDR Radio zum Mitnehmen 13 0/ 17 Zwischenruf im WDR 3-Radio zum Mitnehmen 14 0/ 11 bel étage - der Medien-Podcast des Handelsblattes 4 0/ 85 dradio-Interviews 7 0/ 44 dradio-Kalenderblatt 12 0/ 0 dradio-Kolumne 18 0/ 30 dradio-Mediengespräch 17 0/ 30 dradio-Tacheles 19 0/231 kicker online: Podcast
Ähnlich wie bei apt-get macht man
hpodder updateum die Feeds neu runterzuladen. Das geht recht flott, dann das sind ja nur ein paar relativ kleine Textdateien.
Ein
hpodder downloadlädt dann die noch nicht vorhandenen Audiodateien in das o.g. Datenverzeichnis.
Bei neuen Casts sollte man noch ein
hpodder catchup -n 2
machen. Dann werden maximal die zwei neuesten Episoden des Casts geladen. Ansonsten lädt man beim ersten Mal alle Episoden des Casts runter. Das sind z.B. beim WDR-Zeitzeichen 30 Episoden á 15 Minuten, also rund 200 MB. Das will man nicht unbedingt.
Wenn man ein USB-Gerät anschliesst, kriegt es vom Kernel dynamisch eine Gerätedatei zugewiesen. Üblicherweise ist das eine SCSI-Emulation wie /dev/sdd1. So mountet man diese:
mkdir -p /mnt/audiospieler mount -t vfat /dev/sdd1 /mnt/audiospieler
Blöd ist nur, wenn man manchmal weitere USB-Geräte wie externe Platten dran hat. Dann ist der Audioabspieler eben nicht auf /dev/sdd1, sondern woanders z.B. auf /dev/sdf1 dran. Normalerweise kein Problem, denn man kann per /etc/fstab auch über Label mounten. So gibt es für Massenspeicher immer die Möglichkeit einen Label zu setzen. Für ext2, ext3 - Partitionen gibt
tune2fs -l /dev/sdd1
den Namen aus, und mit
tune2fs -L neuerName /dev/sdd1
wird der Label neu gesetzt. Trägt man in /etc/fstab eine Zeile wie
LABEL=neuerName /mnt/audiospieler ext3 rw,user 0 0
ein, ist danach das mounten per
mount /mnt/audiospieler
einfach.
Blöd nur, wenn das für Audioabspieler nicht geht, weil
sie VFAT als Dateisystem haben, oder wie bei mir sich das Label nicht
brauchbar ändern lässt.
Aber es geht auch anders. Auf meinem System befinden sich nämlich (vermutlich dank udev) diverse symbolische Links auf alle externen Massenspeicher:
# ls -R /dev/disk/ /dev/disk/: by-id by-label by-path by-uuid /dev/disk/by-id: usb-Trekstor_.Beat_xtension_00403054202000000118 usb-Trekstor_.Beat_xtension_00403054202000000118-part1 usb-Trekstor_SD.MMC_CARD_00403054202000000118 /dev/disk/by-label: XTENSION_FM /dev/disk/by-path: pci-0000:00:02.1-usb-0:5:1.0-scsi-0:0:0:0 pci-0000:00:02.1-usb-0:5:1.0-scsi-0:0:0:1 pci-0000:00:02.1-usb-0:5:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid: 1044-CF7C
Das sind alles symbolische Links auf gültige Gerätedateien, also kann man sie für den mount-Befehl verwenden. Ich habe mich für /dev/disk/by-uuid/* entschieden. Welche Datei zu welchem Gerät gehört ist einfach: Beim Einstecken des Gerätes schaut man im Systemlog oder auf der Konsole, welche Gerätedatei zugewiesen wurde:
... Jan 19 10:02:55 dg9ep kernel: sdd: sdd1 Jan 19 10:02:55 dg9ep kernel: sd 49:0:0:0: Attached scsi removable disk sdd ...
Und diese sdd1 suche man nun im Verzeichis:
# ls -Rl /dev/disk/by-uuid/ /dev/disk/by-uuid/: insgesamt 0 lrwxrwxrwx 1 root root 10 2008-01-19 10:02 1044-CF7C -> ../../sdd1
OK, das war einfach, da war nur eh eine Datei drin, die dann auch passte :). Wir ergänzen also noch schnell die /etc/fstab um eine Zeile:
/dev/disk/by-uuid/1044-CF7C /mnt/audiospieler auto defaults,noatime 0 0
und fortan können wir den Audioabspieler (und zwar immer genau diesen) auf der Kommandozeile mounten mit:
mount /mnt/audiospieler
So. Wo waren wir? Ahja:
Jetzt brauchen wir nur noch ein bischen Skript (Geschmacksrichtung bash):
#!/bin/sh #- Gleicht das Verzeichnis, das hpodder füllt, mit dem Audioabspieler ab echo mounting ... mount /mnt/audiospieler || exit echo laden ... hpodder update && hpodder download echo syncing ... rsync -ur --remove-source-files --verbose --progress /var/local/krach/podcast /mnt/audiospieler/ || exit echo unmounting ... umount /mnt/audiospieler
und fertig. Das Skript nenne ich podsync, mache es mit chmod ausführbar und lege es unter /usr/local/bin ab.
Ab jetzt heisst es nur noch: Audioabspieler in eine USB-Buchse reintun. podsync aufrufen, und warten bis das Skript durch ist. Danach Audioabspieler rausziehen (er ist schon umounted) und gut ist.
Den Kram kann man noch erweitern, so daß udev-Regeln dafür sorgen, daß das Skript von selber loslegt, sobald der Audioabspieler in den PC eingesteckt wird.
Wenn man hpodder täglich per cron aufruft, hat man noch einen Zeitvorteil, da podsync dann nicht mehr so viel runterladen muß. Ausserdem hat man dann die Audiodaten schon vorher stationär hören, wenn man will. Ich mach das z.B. über den vdr auf meinem Fernseher. Der Aufruf in der crontab sieht ungefähr so aus:
hpodder update && hpodder download
Das ganze klappt natürlich auch mit dem freien Audioformat ogg, leider gibt es wenige ogg-Podcasts und auch nicht jede Audioabspielerhardware kann auch ogg abspielen.