MyStreamRecorder, ein Radiorekorder für Linux

Ich mache ja schon seit Längerem auf verschiedenen freien Radios Sendungen. Zu Dokumentationszwecken möchte ich diese auf meinem Server aufzeichnen. Leider wohne ich nicht im UKW Empfangsgebiet der Sender, sodass 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 den MyStreamRecorder gestossen.

MyStreamRecorder ist eine recht gute Lösung für Server, da es auf PHP basiert. Für Laptops oder Homecomputer ist es jedoch weniger geeignet, da dort PHP eher selten installiert ist. Es muss ausserdem 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://vkebab.tk/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 auf Wunsch des Benutzers nach einem Mitschnitt eine E-Mail mit einem Hinweis senden. Hierfür muss der Server E-Mails verschicken können. In der rec.php trägt man unter dem Punkt: $defaultMailto = „abc@vwx.yz“; seine E-Mail-Adresse 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 nichts auf.
  • Dann sucht man sich auf dem Server einen 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 gibst 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. Dieser Ordner muss jedoch vorher schon existieren! Am Ende des Befehls stehen die Start- und Endzeiten. Jetzt ist der Recorder 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 Recorder die Sendung 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 anschliessend 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“, welches 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, dass 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.

One Response to “MyStreamRecorder, ein Radiorekorder für Linux”

Leave a Reply