PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Playlists von Ordner automatisch erstellen lassen



Hannibal19xx
21.11.04, 18:52
Hallo

Hätte gerne nen Tool, wo ich nen Ordner angebe, und dieser aus den ganzen Unterverzeichnissen die MP3's ausliest und in den Unterverzeichnissen eine Playlist (.m3u) erstellt...
Jemand ne Idee?
Sollte unter SuSE 9.2 funzen, am Besten ne .rpm...

Alles per Hand ist zuviel Arbeit :-P

carnil
21.11.04, 18:58
Hi

Also wenn Du xmms als Player benützt, kann man das sehr leicht machen. Neue Playliste erstellen, Verzeichnis hinzufügen, abspeichern, fertig.

Und wenn man gleichzeitig nicht einen Player installiert haben will (ähm, was bringt es dann), kann man sicher leicht mit einem Skript mithilfe von find eine solche erstellen.

MfG carnil

Hannibal19xx
21.11.04, 19:08
ich nutze amaroK...aber das ist mir eigentlich zuviel arbeit, alles einzeln zu machen...

hast du evtl. so ein script?

Spiff
21.11.04, 20:21
Wenn eine simple Liste der mp3-Dateien in jedem Verzeichnis reicht würde ich es so machen:

Kleines Skript mit Namen "list.sh"


#!/bin/sh
cd "$*"
ls *.mp3 > list.m3u


und dann ein "find" aus dem obersten Verzeichnis abfeuern:


find -type d -exec list.sh {} \;


Wenn noch mehr Angaben nötig sind, musst Du die im Skript ergänzen.

Hannibal19xx
21.11.04, 20:24
Leider habe ich mit sowas absolut keine Erfahrung :-(

Kannst du mir vielleicht die Zeilen ergänzen, dass er von /home/Dennis/Documents/Musik alle unterverzeichnisse nach .mp3-dateien untersucht, und in den jeweiligen ordnern eine .m3u datei erstellt, welche nach dem Ordner benannt wird?

tictactux
21.11.04, 20:49
Folgendes selbstgebackene Script hat sich bei mir (bei grip-generierten
MP3-Verzeichnisstrukturen) bewährt (Benutzung auf eigene Gefahr):


#!/bin/sh
# my.m3u : generates a .m3u list from all .mp3|mpg|ogg files
# from the current directory and its subdirectories.
#
# The m3u filename is the name of the current directory
# with .m3u appended.
#
# Caveats: Needs write perm in $PWD
####################################

if [ $# -eq 0 ]; then
M3DIR="."
M3UNAME="${PWD##*/}.m3u"
else
M3DIR=$(echo $1 | sed -e 's/[[:space:]]+/\\ /g')
if [ ! -d "$M3DIR" ] ; then
echo "Argument \'$M3DIR\' is not a directory. Quitting."
exit 1
fi
M3UNAME="${M3DIR##*/}.m3u"
fi

find "${M3DIR}" -depth -follow -type f \( -iname \*.mp3 -o -iname \*.ogg -o -iname \*.mpg \) |sort >"${M3UNAME}"

Sollte selbsterklärend sein :eek:
Viel Spaß

EDIT: Das Sortieren in der letzten Zeile macht bei mir Sinn, da die
Titel mit Tracknummer beginnen. Nur falls sich jemand wundert ...

EDIT2: Zur Benutzung: Ohne Argumente erstellt es eine .m3u-Datei
mit dem Namen des aktuellen Verzeichnisses, die alle .mp3/.ogg/.mpg
Dateien unterhalb des selbigen aufführt (.mpg habe ich drin, weil einige
Enhanced-CDs von mir solchen Inhalt haben).
Mit einem Verzeichnisnamen als optionalem Argument kann der Startpunkt
der Suche bestimmt werden.

Hannibal19xx
21.11.04, 21:05
THX, wie speicher ich dieses nun ab, und wie nutze ich es?

Und wo braucht es Schreibrechte?

Bin nen n00b in der Richtung :-(

tictactux
21.11.04, 21:15
Speichere es z.B. als /usr/local/bin/my.m3u ab, und mache es dann
ausführbar (chmod 0755 /usr/local/bin/my.m3u).
Letzteres als root, oder mit sudo.

Zur Benutzung habe ich gerade noch ein zweites EIDT: im vorigen
Post eingefügt.
Schreibrechte brauchst Du da, wo die *.m3u-Datei erstellt wird,
also im aktuellen Verzeichnis (im Script ist das die Zeile:
M3UNAME="${PWD##*/}.m3u" )
Die könntest Du z.B. ändern in "M3UNAME=index.m3u" um immer
diesen Namen zu erzeugen.

Spiff
21.11.04, 21:20
@tictactux:
Dein Skript erstellt aber nicht in jedem Unterverzeichnis eine eigene Playlist oder übersehe ich da was?

Deswegen hier noch mal meine Lösung:

Skript in /home/Dennis mit Namen list.sh wie folgt:


#!/bin/sh
cd "$*"
name="$*"
name=${name##*/};
ls *.mp3 > $name.m3u


Ausführbar machen:


chmod +x list.sh


und den find-Befehl:


find /home/Dennis/Documents/Musik/ -type d -exec list.sh {} \;

tictactux
21.11.04, 21:32
@Spiff: nein in der Tat. Das ist nur für einen Verzeichnisbaum
(war halt eine Lösung für meinen Bedarf, und als Bastelvorlage
gedacht ;) )

Nachtrag: Bedenke daß Musiktitel/Verzeichnisse dazu neigen
Leerzeichen zu enthalten (find kann darüber stolpern).

-> http://www.linuxforen.de/forums/showthread.php?t=159339