Raspberry Pi als Podcatchautomat

Ich bin ein leidenschaftlicher Podcasthörer. Bis jetzt habe ich immer die Podcasts meiner Wahl mittels Podcacher heruntergeladen, und dann via USB auf mein Handy übertragen. Gelegentlich habe ich dann einzelne Podcastfolgen mit dem Handy spontan heruntergeladen. Das führt auf Dauer zu einem leichten Dateichaos auf Laptopfestplatte und Handy.

Raspberry Pi, Rev 2 Model B

Abhilfe schafft jetzt eine Lösung mit meinem Raspberry Pi, die alles vollautomatisiert. Diese Konstellation wird später Bestandteil meines Dampfradio-Projektes sein. Als Hardware fungiert ein Raspberry Pi Rev 2 Model B, also eine alte Variante mit 512 MB Speicher.

Auf dem Raspberry Pi läuft ein frisches Raspbian in der Version ‘Jessie’. Desweiteren sind zwei Softwarepakete installiert, die zusammen meine Podcatcherautomatik bilden:

  • podget, Version 0.7.8
  • btsync, Version 2.0 für ARM

podget

Podget ist ist die eigentlich Podcatcher-Software, die mir neue Folgen meiner Lieblingspodcasts herunterlädt. Die Software gibt es bei Sourceforge unter http://podget.sourceforge.net/. Ich habe Podget allerdings über das Repository installiert. Mit Putty verbinde ich mich auf den Raspberry Pi. Die Installation startet mit

apt-get install podget

Die Installation geht schnell und man findet podget unter /usr/bin/ . Ich starte Podget einmal mit

./usr/bin/podget

Die Software legt daraufhin Konfigurationsdateien an, und startet den Download eines hinterlegten Podcast-Feeds (http://thelinuxlink.net/tllts/tllts.rss). Den Download breche ich mit STRG+C ab. Podget hat nun verschieden Dinge erledigt. Es wurde im Home-Verzeichnis des Nutzers das Verzeichnis .podget angelegt, welches die Dateien serverlist und podgetrc enthält.

serverlist

Die Serverlist ist recht einfach. Am Ende ist der vorkonfiguierte Feed angegeben und dahinter die Kategorie und der Name des Podcasts.

podget_serverlist

Serverlist

Ich gebe in meiner Serverlist nur einen Wert hinter der Feed-URL an. Podget legt damit einfch ein Verzeichnis für den Podcast an und speichert alle Episoden hinein.

podgetrc

In der Konfigurationsdatei podgetrc habe ich wenige Änderungen vorgenommen.

  • DIR_LIBRARY=/home/pi/POD > hier werden die Podcast gespeichert
  • MOST_RECENT=3 > das soll dafür sorgen, dass nur die letzten 3 Episoden heruntergeladen werden.
podget_podgetrc

podgetrc

Ansonsten haben ich den Standard übernommen.

btsync

Die btsync-Software synchronisiert den Dateiordner mit den heruntergeladenen Podcastepisoden via Bittorrent-Protokoll auf die Endgeräte. In meinem Fall das Handy, auf dem die entsprechende BitTorrent Sync App installiert ist. Die Variante für den Raspberry Pi bzw. Windows bekommt man unter www.getsync.com.

btsync2

btsync – Weboberfläche

Die Installation der Software gestaltet sich recht einfach. Mit WinSCP kopiere ich die Datei BitTorrent-Sync_arm.tar.gz auf den Raspberry Pi. Dann wechsele ich zu Putty und stelle eine Verbindung zu Raspberry Pi her. Das tar-Archiv entpacke ich mit

tar -zxf btsync_arm.tar.gz

Ich erzeuge mir mit

sudo mkdir /etc/btsync

ein Verzeichnis und verschiebe die Datei mit

sudo mv btsync /etc/btsync

dort hin. Anschließend ändere ich den Besitzer auf root und mache btsync ausführbar mit

cd /etc/btsync

sudo chown root:root btsync

sudo chmod 755 btsync

So, die Installation ist damit erstmal fertig und ich starte die Software mit

sudo ./btsync –webui.listen 0.0.0.0:8888

btsync5

btsync – Link zur Verteilung

Damit sollte die Software laufen und ist über die IP-Adresse des Raspberry Pi zu erreichen. Ich starte meinen Webbrowser auf dem Laptop und komme mit http://ip-adresse-vom-pi:8888 auf das Userinterface von btsync. Bei der ersten Verbindung zu btsync muss man Nutzungsbedingungen akzeptieren und einen Nutzer mit Passwort für die Weboberfläche anlegen. Über das Ordnersymbol+ kann ich durch das Dateisystems des Pi browsen, und mir den Ordner heraussuchen, in dem die Podcast-Files liegen.

btsync_laptop

btsync – Ansicht auf dem Laptop

Ich klicke auf den Verteilen-Link und wähle den Reiter QR-Code. Als Berechtigung wähle ich lesen/schreiben. Das ermöglicht mir die gehörten Podcastepisoden auf dem Handy, und auf dem Raspberry Pi zu löschen.

Gesamter Ablauf

Der Cron-Daemon startet in regelmäßigen Abständen podget. Podget prüft über den Feed ob eine neue Episode de jeweiligen Podcasts vorliegt. Die neuen Episoden werden dann heruntergeladen. Die btsync-App synchroniert die frischen Episoden dann auf das Handy, allerdings nur über WLAN. Podget generiert mir eine Playlist mit den neuen Podcasts. Dann höre ich die Podcasts und lösche sie, um Platz für neue Episoden zu schaffen. Die Löschung wird via btsync an den Pi weitergegeben.

Probleme

Btsync läuft wunderbar, hier gibt es keine Probleme. Podget ist da schon ein wenig schwieriger. In der Konfigurationdatei .podgetrc kann man die Anzahl der heruntergeladenen Dateien begrenzen. Das funktioniert leider gar nicht! Ich habe den Fehler noch nicht gefunden. Podget lädt mir immer alle Podcastepisoden herunter, die der Feed anbietet.

Podget_logfile

Podget Logfile

Das funktioniert auch zuverlässig und generiert natürlich entsprechenden Traffic inklusive ein volles Speichermedium. Bei nächsten Start von Podget prüft die Software dann anhand der erzeugten Log-Datei, ob die Podcastepisode schon heruntergeladen wurde und verwirft dann den Download. Hier muss ich noch eine Lösung finden, da ich neue Podcast schlecht abonnieren kann. Beispielsweise hat Geoaudio mehr als 500 Folgen, die Podget dann herunterladen würde. Ich müsste dazu praktisch den Feed ansehen, und die Log-Datei manuell ergänzen. Hier ist noch Forschungsarbeit nötig.

Ansonsten funktioniert die Podcast-Automatik einwandfrei.