Hi,
Hab das Script music_copyall.sh ein bisschen verändert und
zu music_burnmp3cd.sh benannt.
Braucht cdrecord und mkisofs.
Brennt mp3s aus ner Burnlist als Daten auf Cd (Mp3-Cd
Funktioniert soweit
Variablen müssen natürlich an die eigenen Gegebenheiten angepasst werden.
Vielleicht wills ja jemand verwenden.
Bash
#!/bin/sh
############################################################################
#### Dieses Script brennt mp3s welche in einer Burnlist (burnlist.m3u) ####
#### stehen auf Cd, und zwar ganz normal als Daten-Cd, somit entsteht ####
#### eine Cd die mp3s enthaelt ####
#### Solch eine Cd kann nicht in jedem Handelsueblichen Cd-Player ####
#### abgespielt werden, da es sich dabei ja um keine normale Audio-Cd ####
#### sondern um eine (na sagen wir Mp3-Cd) handelt ####
#### Es braucht dazu folgende Programme ####
#### cdrecord,mkisofs, und ein paar andere die eh jeder hat ####
############################################################################
## Variablen ##
CDRECORD="/usr/bin/cdrecord"
CDRECORDDEV="dev=/dev/cdrw1"
DEVICE="/dev/cdrw1"
MKISOFS="/usr/bin/mkisofs"
SVDRPSEND="/usr/local/bin/svdrpsend.pl"
LOGFILE="/var/lib/vdrmedia/disc_log"
DISCTYPE="Mounted media type:"
DISKSTATUS="disk status:"
TEMPDIR="/var/lib/vdrmedia/mp3/burning/tmp"
BURNLIST="/var/lib/vdr/plugins/music/playlists/burnlist.m3u"
ISO=mp3burn.iso
### Jetzt beginnt der Job !
OLD_IFS=$IFS
IFS='
'
FILE=`cat $BURNLIST`
### Loeschen eventuell vorhandener alter Files (mp3,iso)
### falls es im Script schon einmal zum Abbruch kam
rm -f $TEMPDIR/*
### Logfile der letzten Umwandlung loeschen
if [ -e $LOGFILE ] ; then
rm -f $LOGFILE
fi
### Falls nicht vorhanden, TEMPDIR erstellen
#if [ ! -d $TEMPDIR ]; then
# mkdir -p $TEMPDIR
#fi
### Eingelegten Rohling (ob Cd-r bzw. Cd-rw) auslesen, und
### das Ergebnis in das LOGFILE schreiben
$CDRECORD $CDRECORDDEV -media-info > $LOGFILE
### Alle Ausgaben der folgenden Befehle (Programme) im
### LOGFILE anhaengen
exec >>$LOGFILE; exec 2>&1
### Mp3s aus der BURNLIST in den TEMPDIR kopieren
$SVDRPSEND MESG "! Starte Kopieren der Tracks !"
for i in $FILE; do
cp -f "$i" "$TEMPDIR"
done
### Abfrage ob die Mp3s aus der BURNLIST in den TEMPDIR
### kopiert werden konnten, falls nicht Abbruch des Scripts
if [ "$?" = "0" ] ; then
$SVDRPSEND MESG "! Tracks wurden erfolgreich kopiert !"
else
echo "Abbruch, Tracks kopieren fehlgeschlagen" && $SVDRPSEND MESG "! Abbruch, Tracks kopieren fehlgeschlagen !" && exit 1
fi
IFS=$OLD_IFS
### Aus den Mp3s die nun im TEMPDIR liegen sollten
### per mkisofs ein ISO bauen
$SVDRPSEND MESG "! Starte ISO Erstellung !"
$MKISOFS -r -J -o $TEMPDIR/$ISO $TEMPDIR
### Abfrage ob die ISO Erstellung geklappt hat, falls ja
### gehts dann ans Brennen, falls nein Abbruch des Scripts
if [ "$?" = "0" ] ; then
$SVDRPSEND MESG "! ISO Erstellung erfolgreich beendet !"
else
echo "Abbruch, ISO Erstellung fehlgeschlagen" && $SVDRPSEND MESG "! Abbruch, ISO Erstellung fehlgeschlagen !" && exit 1
fi
### Aus dem LOGFILE auslesen um welchen Rohling es sich bei
### dem Eingelegten Rohling handelt
### Ist es eine Cd-r welche nicht leer ist bricht das Script ab
### Handelt es sich um eine leere Cd-r wird das ISO gleich gebrannt
### Handelt es sich bei dem Eingelegten Rohling jedoch
### um eine Cd-rw wird diese (nur fuer den Fall das sie
### nicht leer ist) zuvor noch geloescht
if ! grep -E -q "^$DISCTYPE CD-RW" $LOGFILE; then
grep -E -q "^$DISKSTATUS empty" $LOGFILE
if [ "$?" = "0" ] ; then
$SVDRPSEND MESG "! Starte ISO Brennen !"
$CDRECORD -v $CDRECORDDEV speed=8 $TEMPDIR/$ISO
#### Abfrage ob das ISO erfolgreich gebrannt werden konnte,
#### falls ja alles klar, falls nein Abbruch des Scripts
if [ "$?" = "0" ] ; then
$SVDRPSEND MESG "! ISO Brennen erfolgreich beendet !" && rm -f $TEMPDIR/*
else
echo "Abbruch, ISO Brennen fehlgeschlagen" && $SVDRPSEND MESG "! Abbruch, ISO Brennen fehlgeschlagen !" && exit 1
fi
else
echo "Abbruch, Cd-r ist nicht leer"
$SVDRPSEND MESG "! Abbruch, Cd-r ist nicht leer !"
exit 1
fi
fi
if grep -E -q "^$DISCTYPE CD-RW" $LOGFILE; then
grep -E -q "^$DISKSTATUS empty" $LOGFILE
if [ "$?" = "0" ] ; then
$SVDRPSEND MESG "! Starte ISO Brennen !"
$CDRECORD -v $CDRECORDDEV speed=8 $TEMPDIR/$ISO
#### Abfrage ob das ISO erfolgreich gebrannt werden konnte,
#### falls ja alles klar, falls nein Abbruch des Scripts
if [ "$?" = "0" ] ; then
$SVDRPSEND MESG "! ISO Brennen erfolgreich beendet !" && rm -f $TEMPDIR/*
else
echo "Abbruch, ISO Brennen fehlgeschlagen" && $SVDRPSEND MESG "! Abbruch, ISO Brennen fehlgeschlagen !" && exit 1
fi
else
$CDRECORD $CDRECORDDEV blank=fast gracetime=3 -eject && eject -t $DEVICE && $SVDRPSEND MESG "! Starte ISO Brennen !" && $CDRECORD -v $CDRECORDDEV speed=8 $TEMPDIR/$ISO
#### Abfrage ob das ISO erfolgreich gebrannt werden konnte,
#### falls ja alles klar, falls nein Abbruch des Scripts
if [ "$?" = "0" ] ; then
$SVDRPSEND MESG "! ISO Brennen erfolgreich beendet !" && rm -f $TEMPDIR/*
else
echo "Abbruch, ISO Brennen fehlgeschlagen" && $SVDRPSEND MESG "! Abbruch, ISO Brennen fehlgeschlagen !" && exit 1
fi
fi
fi
### Bei Erfolg Endmeldung ausgeben, und Laufwerk oeffnen
$SVDRPSEND MESG "! CD FERTIG !" && eject $DEVICE
exit 0
Alles anzeigen
Hier gibts dann noch eines das ne Audio-Cd aus den mp3s aus der Burnlist
erstellt;
music Plugin + music_burnaudiocd.sh kleine Probs !
Benötigt aber mp3cd, cdrdao und cdrecord
Gruss, Bert