automatisierter Radiorekorder

Zu Dokumentationszwecken möchte ich Sendungen auf verschiedenen freien Radios aufzeichnen, dieses soll automatisiert auf meinem Server passieren, leider wohne ich nicht im UKW Empfangsgebiet der Sender so das ich auf den Stream zurückgreifen muss. Dafür hatte ich in den letzten Monaten eine umständliche Methode mit wget und Cronjobs benutzt. Auf der Suche nach einer besseren Lösung bin ich auf auf den MyStreamRecorder gestroßen.

MyStreamRecorder ist eine recht gute Lösung für Server da es auf PHP basiert, für Laptops oder Homecomputer eher weniger da dort PHP eher selten installiert ist. Es muss außerdem mplayer installiert sein.

Installation:

  • Zuerst laden wir uns den MyStreamRecorder herunter, ich habe auf meinem Server eine Version von Ende Mai 2013.

wget https://github.com/Wikinaut/MyStreamRecorder/archive/master.zip

oder

wget http://vdoener.de/data/mystreamrecorder.zip

  • dann passen wir die rec.ini Datei an, in ihr werden alle Sender mit Stream URLs gespeichert, das kann z.B. so aussehen. Unter dem Punkt „station“ : [ „rum“ ] kann man ein eigenes Kürzel für einen Sender hinterlegen, z.B. rum für Radio Unerhört Marburg.

{

„comment“: „JSON formatted list of built-in stations and their standard streams“,

„stations“ : [
{ „station“ : [ „rum“ ],
„homepage“ : „http://www.radio-rum.de/“,
„streams“ : [
{
„url“ : „http://stream.radio-rum.de:8000/rum.mp3“,
„encodingtype“ : „mp3“,
„bitrate“ : „128k“
}
]
},
{ „station“ : [ „radar“ ],
„homepage“ : „http://www.radio-darmstadt.de/“,
„streams“ : [
{ „url“ : „http://livestream.radiodarmstadt.de:8000/“,
„encodingtype“ : „mp3“,
„bitrate“ : „128k“
}
]
},
{ „station“ : [ „88vier“ ],
„homepage“ : „http://www.88vier.net/“,
„streams“ : [
{ „url“ : „http://ice.rosebud-media.de:8000/88vier“,
„encodingtype“ : „mp3“,
„bitrate“ : „128k“
}
]
}

]
}

  • Das Programm kann einem nach einem Mitschnitt eine E-Mail mit einem Hinweis schicken, hierfür muss der Server Mails verschicken können. In der rec.php trägt man unter dem Punkt: $defaultMailto = „abc@vwx.yz“; seine Mailadresse ein.
  • In der rec.php gibt es noch den Punkt $workingDirectory = „/home/media/mitschnitte“; hier trägt man das Verzeichnis ein in dem das Programm die Mitschnitte ablegen soll. Dieses Verzeichnis muss bereits existieren, der Recorder legt es nicht an und nimmt sonst auch nicht auf.
  • Dann sucht man sich auf dem Server nen schönen Ort wo das ganze wohnen darf, bei mir liegt es z.B. in meinem Home Ordner z.B. /home/gregor/recorder

Jetzt ist eigentlich alles Fertig zum Aufzeichnen. Nehmen wir mal an du möchtest dir auf Radio Unerhört Marburg die Sendung Radio GFM, das Magazin mit CC-Musik aufzeichnen, so gibts du am Sonntag folgendes in das Terminal ein.

php /home/gregor/recorder/rec.php –directory=/home/media/mitschnitte/gfm –noplayback rum 19:00 20:00

Hierbei musst du nur den Pfad zu deinem Skript anpassen und den Ordner in den es aufnehmen soll. Der Ordner in den es aufnehmen soll muss vorher existieren! Am Ende des befehls stehen die Start- und Endzeiten. Jetzt ist der Rekorder programmiert. Der Recorder nimmt jetzt selbstständig von 18:59 Uhr bis 20:01 Uhr auf. Den befehl sollte man in diesem Beispiel spätestens um 18:58 Uhr programmiert haben damit er rechtzeitig aufnimmt. Das –noplayback bewirkt das der Rekorder die Sednung nicht gleichzeitig abspielt, dies kann natürlich weggelassen werden. Das „rum“ im Befehl ist das Senderkürzel aus der rec.ini Datei.

Übrigens: Die Sendung aus dem Beispiel gibt es auch als Podcast 😉

Das ganze kann man jetzt mit Cronjobs automatisieren. Hierfür geben wir crontab -e ein, anschließend fügen wir folgende Zeile hinzu. Wichtig ist das die Crontab Datei mit einer leeren Zeile endet. Mit STRG + X und Y beenden wir den Editor.

55 18 * * 7 php /home/gregor/recorder/rec.php –directory=/home/media/mitschnitte/gfm/rum –noplayback –label=“gfm“ rum 19:00 20:00

Jetzt senden die Cronjobs jeden Sonntag um 18:55 Uhr dem Recorder den Befehl von 19-20 Uhr aufzunehmen, der Mitschnitt beginnt eine Minute früher und endet eine Minute später. Der Punkt –label enthält einen Teil des Dateinamen des Mitschnitts. Fügt man noch vor das Senderkürzel rum den Punkt –mailto sendet das Programm anschließend eine E-Mail. Weitere Befehle sind in der Readme.md dokumentiert.

Nun kann man über die Crontab Datei alle seine Lieblingssendungen programmieren, z.B. Das Morgenmagazin Frühschicht was ich derzeit Mittwochs moderiere.

55 06 * * 1 php /home/gregor/recorder/rec.php –directory=/home/media/mitschnitte/fs –noplayback –label=“fruehschicht-montag“ rum 07:00 09:00
55 06 * * 3 php /home/gregor/recorder/rec.php –directory=/home/media/mitschnitte/fs –noplayback –label=“fruehschicht-mittwoch“ rum 07:00 09:00
55 06 * * 5 php /home/gregor/recorder/rec.php –directory=/home/media/mitschnitte/fs –noplayback –label=“fruehschicht-freitag“ rum 07:00 09:00

Die Entwickler vom MyStreamRecorder haben mal angekündigt das es dazu irgendwann noch ein Webinterface geben soll über das man die Sendungen programmieren kann, darauf freue ich mich sehr weil dann der umständliche Weg über die Cronjobs wegfällt.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.