Radiomitschnitt per Rezept

Wed, 30. Dec 2009

Categories: de sysadmin Tags: Bayern2 cron Cronjob id3v2 Linux Mitschnitt Radio Stream streamripper vServer

Seit längerem schneide ich mir interessante Sendungen aus dem (Internet-)Radio mit, vor allem Hörspiele auf B2.

Bisher mußte dazu immer mein alter (Linux-)Rechner laufen und den Mitschnitt mußte ich händisch starten – wie unbequem. Oder man ist unterwegs und verpaßt den Mitschnitt. Wie ärgerlich.

Doch das ist ab jetzt vorbei, denn ab sofort schneidet mein vServer (läuft ja eh ständig) mit!

Und so geht’s:

  1. Ein Script auf dem vServer, das den Mitschnitt startet und beendet:
 1#!/bin/sh
 2
 3# id3v2 scheint Bilder nicht zu mögen:
 4# - http://ubuntuforums.org/showthread.php?t=1353213
 5# - readonly: http://id3v2.cvs.sourceforge.net/viewvc/id3v2/id3v2/id3v2.cpp?revision=1.17&view=markup#l_610
 6# - http://www.id3.org/id3v2.4.0-frames Kapitel4.14.
 7# erfolglos: id3v2 --APIC "0\0image/jpeg\03hello\0`cat moby_dick.jpg`" $file
 8
 9if [ $# -lt 3 ]; then
10  echo "rip audio streams to a local file."
11  echo " "
12  echo "Usage:"
13  echo " "
14  echo "  $0 stream marker duration id3v2_tags"
15  echo "    stream     typically a URL, see 'man streamripper'"
16  echo "    marker     filename prefix"
17  echo "    seconds    how long will we dump"
18  echo "    id3v2_tags optional, tag the download with id3v2"
19  echo " "
20  echo "Example:"
21  echo "  $0 http://gffstream.ic.llnwd.net/stream/gffstream_w11a bayern2 3660"
22  echo " "
23  exit 1
24fi
25
26src=$1 ; shift
27basename=$1 ; shift
28seconds=$1 ; shift
29
30dst=$basename-`date --iso-8601=seconds`
31
32echo "dumping $seconds (sec) from $src to $dst ..."
33
34streamripper $src -u Mozilla -i -a $dst -l $seconds
35rm $dst.cue
36
37if [ $# -gt 0 ] ; then
38  id3v2 "$@" $dst.mp3
39fi
40
41chmod a+r $dst.*
42
43echo done.
  1. Ein Cronjob für jeden Mitschnitt:
 1PATH=/bin:/usr/bin
 2HOME=/home/USERNAME
 3
 4# Recorder
 5
 6rec_cmd=/home/USERNAME/bin/stream-rip
 7rec_dir=/home/USERNAME/pub/recorder
 8
 9ON3=http://gffstream.ic.llnwd.net/stream/gffstream_w9a
10BAYERN1=http://gffstream.ic.llnwd.net/stream/gffstream_w10a
11BAYERN2=http://gffstream.ic.llnwd.net/stream/gffstream_w11a
12M945=http://stream.m945.mwn.de:80/m945-hq.mp3
13
14# B2 Krimihörspiel
1529 20 * * 3 $rec_cmd $BAYERN2 $rec_dir/b2-krimi 3660 -A "B2 Krimi"