fm4_scripting

Da ich nachts um 1 immer einschlafe, fm4 aber genau dann die Mitternachtseinlage senden muss (was ja zugegebener Massen auch Sinn macht (zumindest dem Namen nach)) und es die gloriose FM4-Jukebox dank eines wachsamen Mitglieds der Österreichischen Plattenindustrie ja auch nicht mehr gibt, habe ich mich hinter meine Shell gesetzt, und ein Scriptchen zusammengeschustert bei Slashdot geklaut.

Es besteht aus einem Perl-Script, das von Cron an den benötigten Zeiten gestartet wird. Das Script holt sich mit ogg123 den (inoffiziellen) OGG-Stream (der Offizielle Cast ist in WMA, sind wir den hier bei Buureradio.ch?), schreibt die Audiodaten in ein WAV-File, welches anschliessend mit LAME in eine MP3- (und somit iPod-konforme) Datei codiert wird. Und das mit 160 kb/s. Die Streams gibts hier: fm4-OGG-Streams

#!/usr/bin/perl -w
# $Id: radioRecord,v 1.3 2004/10/19 18:37:29 anewsome Exp $
use strict;

my $num = $ARGV[0];
my $time = 3600; #Nimm eine Stunde lang auf
my $date = `date +%F`;
$date =~ s/\n//g;
my ($year, $month, $day) = split(/-/, $date);
my $cmd = "mkdir -p /home/mldonkey/playground/fm4/$year/$month/";
system($cmd);
my $file = "/home/mldonkey/playground/fm4/$year/$month/$num-$year-$month-$day.wav";
my $mp3 = "/home/mldonkey/playground/fm4/$year/$month/$num-$year-$month-$day.mp3";
my $timedOut = 0;
my $pid;
my $command = qq~/usr/bin/ogg123 -d wav --file "$file" http://listen.fm4.amd.co.at:31337/fm4-hq.ogg~;
my $lamecommand = qq~/usr/bin/lame -h $file $mp3~;

$SIG{ALRM} =
sub {$timedOut = 1};

if ($pid = fork) {
#print “Launched pid: $pid\n”;
} elsif (defined $pid) {
exec(”$command”);
} else {
die “Can’t fork for some reason\n”;
}

alarm($time);
while (1) {
if ($timedOut == 1) {
#print “Timeout, killing $pid\n”;
kill INT => $pid;
system(”$lamecommand”);
system(”rm -rf $file”);
exit;
}
select(undef, undef, undef, 0.25);
}

sub timeOut {
$timedOut = 1;
}

Als Parameter übergebe ich den Namen der Sendung, und die codierten mp3-Dateien werden Monatlich sortiert in eigene Ordner abgelegt. Suppi, ne?

Trackback URL for this post: http://konfusion.info/blog/2005/12/30/fm4_scripting/trackback/

Comments are closed.