• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Playlist auf CD brennen

K4m1K4tz3

Advanced Hacker
Erstmal frohe Weihnachten!

Ich habe hier eine Playlist und ich möchte die darin enthaltenen Lieder genau in dieser Reihenfolge auf eine Daten-CD brennen, um sie später abspielen zu können. Die Dateien müssten also umbenannt werden, da die Lieder sortiert nach Namen abgespielt werden. Kennt jemand vielleicht ein solches Programm/Script, was mir die Arbeit abnimmt?
 
OP
K

K4m1K4tz3

Advanced Hacker
Wenn man eine Audio-CD brennen will, dann ja, aber nicht bei einer Daten-CD. Jedenfalls ist das bei mir so. Oder wo genau klickst du hin?
 
OP
K

K4m1K4tz3

Advanced Hacker
Ok, habe mir jetzt mal was selber geschrieben:

http://phpfi.com/285136

Sind noch einige Fehler vorhanden, z.B. würde ich ganz gerne noch die alten Dateinamen behalten und davor einfach eine Zahl hängen lassen. Bis jetzt bin ich aber noch nicht dahinter gestiegen wie ich das am Dümmsten mache. Wenn mir jemand helfen will, dann immer nur zu :-D

EDIT: Noch besser währe natürlich den id3-Tag auszulesen
 
Hallo

Krename ist das was du brauchst.

http://www.krename.net/Documentation.17.0.html
Da gibt es auch eine deutsche Doku dazu.

http://www.easylinux.de/Artikel/ausgabe/2007/03/080-renamer/index.html
Und noch ein guter Artikel.

In krename muss man sich bisschen einlesen. Aber hat man es einmal verstanden ist es ein super Werkzeug.

Gruß Peter
 
Hallo

Das man nicht mehr nach Metadaten umbenennen kann hat mich natürlich auch geärgert (bei ogg geht es übrigens noch und auf openSuSE 10.2 ging noch alles)

Aber ich habe aus deinem Anliegen nur rausgelesen das du dem sowieso schon vorhandenen Namen Nummern hinzufügen willst.

###_$
(FortgeschrittenenModus!)
Damit kannst du dem sowieso schon vorhandenen Dateinamen fortlaufende Nummern vorranstellen

zB aus
Danny_Jean-Dark_Side_Of_My_Life.mp3
Danny_Jean-Illusion.mp3
Danny_Jean-Gefangen_In_Der_Ewigkeit.mp3

wird dann

001_Danny_Jean-Dark_Side_Of_My_Life.mp3
002_Danny_Jean-Illusion.mp3
003_Danny_Jean-Gefangen_In_Der_Ewigkeit.mp3

Für den Fall das ich nach Metadaten Umbenennen muss habe ich mir inzwischen ein -Script gebastelt.
Aber du hast nichts geschrieben das du deine mp3 erst noch nach Metadaten umbennen musst.


Gruß Peter
 
OP
K

K4m1K4tz3

Advanced Hacker
trommelpeter schrieb:
Für den Fall das ich nach Metadaten Umbenennen muss habe ich mir inzwischen ein -Script gebastelt.
Aber du hast nichts geschrieben das du deine mp3 erst noch nach Metadaten umbennen musst.

Müssen nicht, aber ich habe oben geschrieben, dass es schön währe. ;-)

K4m1K4tz3 schrieb:
EDIT: Noch besser währe natürlich den id3-Tag auszulesen
 
Hallo

Wenn ein mp3 schon seine saubere Bezeichnung hat dann brauchst doch nichts mehr auslesen. Dann brauchst du doch nur die Nummern vorne dran.

Tut mir leid. Ich kapiere nicht ganz was du genau willst.

solltest du aber tatsächlich mp3 ohne sauberen Dateinamen haben , dann kannst dich ja mal mit meinem Script befassen.

Aber Achtung!
Ich übernehme keinerlei Garantie dafür. Es ist rein an meine Bedürfnisse angepasst und hat keinerlei allgemeingültigen Charakter.

#!/bin/bash

#Beschreibung: Benennt MP3s nach Metadaten um sofern welche vorhanden.
#Es bearbeitet MP3s im Ordner (Pfad muss auf Komandozeile übergeben werden)
#und in Unterordner. Gleichzeitig versendet es neben Ausgabe in der Konsole
#noch Zusammenfassungen an KMail.

##################################################################################
#mp3s umbennen nach Metadaten, aber nur wenn diese tatsächlich Metadaten besitzen.

[ ! ${1} ] && echo "fehlendes Argument" && exit
leerz=`find ${1} -name "* *"`
[ ! ${leerz} ] || ~/bin/LeerzeichenFueller.sh "${1}"


for ordner in `find "${1}" -name "*.mp3" -printf "%h\n" | sort -u`
do
cd "${ordner}"

for mpdrei in `ls *.mp3`
do
artist=`mp3info -p %a "${mpdrei}" 2>> /tmp/keineArtist_gefunden.txt`
title=`mp3info -p %t "${mpdrei}" 2>> /tmp/keineTitle_gefunden.txt`
if [ ! "${artist}" ]
then
echo "${mpdrei} kein Artist gefunden"
else
artist=${artist//\ /_}
artist=${artist//\//_}
if [ ! "${title}" ]
then
echo "${mpdrei} kein Titel gefunden"
else
title=${title//\ /_}
title=${title//\//_}
if [ ! -f "${artist}-${title}.mp3" ]
then
mv -v "${mpdrei}" "${artist}-${title}.mp3"
echo "${ordner}/${artist}-${title}.mp3" >> /tmp/Umbenannte_mp3sssss.txt
fi
fi
fi
done

done





#########################################
#Meldung an KMail

if [ -f /tmp/keineArtist_gefunden.txt ] ; then
{
echo "================================="
echo "Keine Artists gefunden"
echo "================================="
cat /tmp/keineArtist_gefunden.txt
echo " "
echo " "
echo " "
echo " "
echo "================================="
echo "Keine Title gefunden"
echo "================================="
[ -f /tmp/keineTitle_gefunden.txt ] && cat /tmp/keineTitle_gefunden.txt
} | mailx -s "Keine Artists oder Titel gefunden Ordner: ${1}" -R trommel
fi

##################
#tmp-Datei löschen

rm -f /tmp/keineArtist_gefunden.txt
rm -f /tmp/keineTitle_gefunden.txt


[ -f /tmp/Umbenannte_mp3sssss.txt ] && /tmp/Umbenannte_mp3sssss.txt | mailx -s "Umbenannte mp3s in ${1}" -R trommel
rm -f /tmp/Umbenannte_mp3sssss.txt
 
leerz=`find ${1} -name "* *"`
[ ! ${leerz} ] || ~/bin/LeerzeichenFueller.sh "${1}"

Ganz vergessen. Mein Script funktioniert nur wenn keine Leerzeichen im Pfad sind. Da ich für Leerzeichenfüllen schon ein Script habe , rufe ich aus Bequemlichkeit einfach das schon vorhandene Script aus diesem
Script heraus auf.

Gruß Peter
 
OP
K

K4m1K4tz3

Advanced Hacker
Danke, ich werds mir mal anschauen.

Eigentlich werden meine Dateinamen nach einem festen Muster vergeben, jedoch hat sich dieses im Laufe der Zeit verändert, somit sind viele Lieder unterschiedlich betitelt. Eigentlcih stört mich das nicht, da ich ja Amarok benutze und dieser Software ist es ja egal wie eine Datei heißt. Da aber ein CD-Player meist nicht auf die id3-Tags zurück greift, wollte ich auch einheitliche Namen für die Dateien vergeben. Wie gesagt, das ist keine Pflicht, eher so ein kleines Bonbon ;-)
 
Hallo

Wenn du Hilfe brauchst dann melde dich einfach. Evtl ist es zum testen besser wenn man das Script dahingehend umbaut das die mp3 umbenannt in ein anderes Verzeichnis kopiert werden, so das die originale erst mal unverändert bleiben.

Leider ging bei krename bis openSuSE 10.2 noch alles aber ab
openSuSE 10.3 nicht mehr. Es muss wohl Betreff mp3 Lizenzrechtliche Probleme gegeben haben, so das die mp3-Unterstützung in Krename weggefallen ist.

Eine weitere Möglichkeit wäre noch Metamorphose (siehe Easylinux-Artikel). Damit kann man noch nach Metadaten umbenennen.
Nur Metamorphose mag ich nicht so gerne. Krename ist irgendwie logischer aufgebaut.

Eine weitere Möglichkeit wäre noch Amarok. Da kann man mp3s , nach Metadaten umbenannt zur Sammlung kopieren.
Ich mache es meistens so , das ich neue mp3 erstmal ausserhalb meiner Amarok-Sammlung habe und bei gefallen diese nach Metadaten umbenannt zu Sammlung kopiere.

1000 Wege führen nach Rom :)


Gruß Peter
 
OP
K

K4m1K4tz3

Advanced Hacker
Ich habe mal etwas mit dem Script mp3info2 rum gespielt. Anscheinend dem Nachfolger von dem Script den du benutzt. Wenn ich Dateien habe mit id3v2.4, dann gibt er mir eine Fehlermeldung aus: Unknown ID3v2-Tag version: v2.4.0

So funktioniert das also auch nicht. :cry:
 
Hallo

Mein Script habe ich mir selber gebastelt.
Von der Existenz eines anderen Scriptes ist mir nichts bekannt.

Was die id3Taggs angeht. Ich jage dann einfach den kompletten Ordner durch easytag. Danach kann ich sicher sein das alles richtig getaggt ist.
easytag erzeugt sowohl id3v1 ALS AUCH id3v2 Taggs.

Als Alternative zu mp3info gibt es übrigens id3v2
Ich kenne ein Script in dem beide Alternativen wunderbar eingearbeitet sind und gut harmonieren. Evtl kannst du dir daraus paar Ideen für dich ableiten:
http://www.tuxator.de/scripte/mp3dirreport

Ich mache es gerne so; das ich ,wenn ich nicht mehr weiter weis , schau wie andere ein bestimmtes Problem gelöst haben.


Gruß Peter

P.S.: mit
cat -n mp3dir_report.sh | grep id3v2
oder
cat -n mp3dir_report.sh | grep mp3info
Hast du die entsprechenden Zeilen im, doch recht umfangreichen Script, schnell gefunden.

Gruß Peter
 
OP
K

K4m1K4tz3

Advanced Hacker
Ok, habe jetzt auch das Problem gelößt, wenn in der Playlist relative Pfade stehen. Jedoch habe ich bemerkt, dass Umlaute nicht richtig erkannt werden.

http://phpfi.com/285656
 
Hallo

Habe deine Scripte gerade angeschaut. Ist irgendwie bischen andere Syntax wie bei meinen Scripten.
Und irgendwie bin ich auch schon zu müde heute um irgendwas zu verstehen.
Aber id3info kenne ich zB noch garnicht.

usw

Ich schaue es mir morgen genauer an. Sind paar interessante Stellen dabei , wo ich wieder was dazulernen kann.

Aber eine Frage sei vorab erlaubt.
Warum verwendest du die Bourn-Shell?
Bash ist doch besser , oder?

Gruß Peter
 
OP
K

K4m1K4tz3

Advanced Hacker
trommelpeter schrieb:
Aber id3info kenne ich zB noch garnicht.

Das Programm befindet sich im Paket id3lib-examples. Ich weiß nicht, ob das bei allen Distributionen mitgeliefert wird, ich habe es aber benutzt, da die Ausgabe für mich am Einfachsten zu filtern war.

trommelpeter schrieb:
Warum verwendest du die Bourn-Shell?
Bash ist doch besser , oder?

So wie ich das verstanden habe, wird mit dem Aufruf /bin/sh nicht die Bourne Shell aufgerufen, sondern die System-Shell. Da unter Suse die Standard-Shell ja die bash ist, dachte ich mir, es währe egal ob man /bin/sh oder /bin/bash schreibt. Klärt mich auf, wenn ich mich da irre. Bis jetzt hat jedes Script funktioniert wie ich es wollte. :roll:

EDIT: Jetzt auch mit Umlauten: http://phpfi.com/285841 ;-)

EDIT2: Erkennung ob auch alles mp3 Dateien sind: http://phpfi.com/285873
 
Hallo

Wenn ein Script funktioniert, dann fragt kein Anwender mehr wie du von Berlin nach Rom gekommen bist.
Manches hätte ich vielleicht anders geschrieben oder gelöst aber das ist geschmackssache.

Ich schreibe zB nie /bin/sh . In Linux ist dies zwar meist ein Link auf die bash , aber was ist wenn jemand tatsächlich noch eine Bourne-Shell hat?
Die versteht unter Umständen die Bash-Syntax nicht wenn eine vorkommt.
(zugegeben weis ich jetzt nicht welche Distri überhaupt noch die Bourne-Shell hat.)

Variablen (habe ich so gelernt) schreibe ich immer klein, weil man sie (laut Autor eines tollen Buches) so besser von den Systemvariablen unterscheiden kann. Großschreibung sollte angeblich den Systemvariabeln vorbehalten bleiben.

Anstelle des Befehls test benutze ich []
Ich lasse eine Zeile nie mit ; enden.
Es sei denn ich will zwei Zeilen auf einer schreiben. Dann braucht man ; als Trenner.

statt id3info benutze ich mp3info.

mp3info -p %a
Gibt den Künstler aus.

mp3info -p %t
Gibt den Titel aus.

mp3info -p %f
Gibt den Dateinamen an.

mp3info -p %F
Gibt den Dateinamen sammt Pfad an.

Ich finde dieses id3info voll umständlich, weil es absolut keine Optionen zur Verfügung stellt.

Einziger Nachteil bei mp3info ist, das es nur id3v1-Taggs auslesen kann.
Aber das Problem ist schnell behoben, wenn man den Kompletten Ordner voller MP3s durch easytag jagt.
Ich finde es praktisch das easytag gleich id3v1 ALS AUCH id3v2 -Taggs erzeugt.

Da du dir aber bestimmt was gedacht hast bei dem Script, wie du es gestaltet hast, werde ich es mir auch näher anschauen.
Man kann viel lernen wenn man mal schaut wie andere an eine Problemstellung rangehen.

Interessant wäre für mich auch , mehr über deine Gedankengänge zu erfahren, was dich zu dieser oder jener Entscheidung im Script bewogen hat.

Gruß Peter
 
Oben