• 22.07.2025, 18:04
  • S’inscrire
  • Connexion
  • Vous n’êtes pas connecté.

 

Damien

Full Member

pls-Playlisten automatisiert erzeugen

jeudi 1 septembre 2005, 13:04

Hi Leute,
ich bin gerade dabei alles für meinen neuen Streaming-Client einzurichten. Soweit bin ich mit dem guten Stück hochzufrieden, ich glaube der spielt sogar Salamischeiben ab.
Einziger Negativpunkt: Er verdaut nur Playlisten im pls-Format. Meine gesamte Sammlung ist allerdings mit Hilfe von m3u-Listen organisiert.
Das alles von Hand (bzw. mit WinAmp) neu zu machen würde ne Ewigkeit dauern.
Gibt es ein Programm das mir mal auf die schnelle ein paar hundert Playlisten erstellt?
Ich hab alle Alben nach dem Muster \Interpret\Album in Ordner unterteilt und hätte halt jetzt gerne wieder die Alben als Playlist in den Interpret-Verzeichnissen.

Gibt's nen Geheimtipp?

Damien

Y0Gi

God

Re: pls-Playlisten automatisiert erzeugen

jeudi 1 septembre 2005, 13:58

heißt das neue listen erstellen lassen oder bestehende m3u-listen konvertieren?

Damien

Full Member

Re: pls-Playlisten automatisiert erzeugen

jeudi 1 septembre 2005, 14:22

um ehrlich zu sein ist mir das ziemlich gleich. hauptsache ich hab hinterher das passende format

Y0Gi

God

Re: pls-Playlisten automatisiert erzeugen

jeudi 1 septembre 2005, 15:08

die playlists sind beide sehr simpel aufgebaut, vgl. http://www.scvi.net/pls.htm
daher sollte ein playlist-generator sehr einfach zu machen sein.

Damien

Full Member

Re: pls-Playlisten automatisiert erzeugen

jeudi 1 septembre 2005, 16:05

ich hab mir die listen schon mal angesehen. die einträge zu erzeugen ist eigentlich nicht das problem. aber woher krieg ich die spieldauer eines tracks? ich hab mir mal nen parser geschrieben um die id3v2-tags aus den mp3s rauszuziehen. aber wo krieg ich die tracklänge her?

Y0Gi

God

Re: pls-Playlisten automatisiert erzeugen

jeudi 1 septembre 2005, 16:16

ein programm zum erzeugen solcher listen könnte so aussehen:

Code source

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# Copyright (c) 2001-2005 Jochen Kupperschmidt <webmaster@homework.nwsnet.de>
# Released under the terms of the GNU General Public License

import glob
import os.path


# Find direct subdirectories.
dirs = []
for entry in os.listdir(os.getcwd()):
  if os.path.isdir(entry):
    dirs.append(entry)

# Add files in subdirectories to list.
fnames = []
for dir in dirs:
  fnames += glob.glob(os.path.join(dir, '*.mp3'))

# Generate playlist from track list.
num = 0
f = open('playlist.pls', 'w')
f.write('[playlist]\n')
for fname in fnames:
  num += 1
  f.write('File%d=%s\n' % (num, fname))
  f.write('Title%d=%s\n' % (num, '.'.join(os.path.basename(fname).split('.')[:-1])))
  f.write('Length%d=-1\n' % (num))
f.write('NumberOfEntries=%d\n' % num)
f.write('Version=2\n')
f.close()

es liest in einem verzeichnis die tracks in den unterverzeichnissen aus und generiert eine playlist aller dieser tracks. das ganze braucht man nun nur noch in eine schleife für alle verzeichnisse der nächsthöheren ebene zu verpacken und schon erhält man in jedem interpreten-unterverzeichnis eine playlist aller tracks (genauer: mp3s) des interpreten (bzw. der, die sich unterhalb dieses verzeichnisses befinden).


laut den specs ist eine negative tracklänge erlaubt (macht z.b. bei streams sinn) und der player sollte den length-eintrag in dem fall ignorieren.
der title-eintrag sollte aus dem id3-tag ausgelesen werden. ist dieses nicht vorhanden, sollte der dateiname ohne die endung verwendet werden.
beide fallbacks habe ich der einfachheit halber verwendet, ein kleines id3-auslese-modul (mit optionaler gui) habe ich aber auch mal geschrieben.

Update: PLS-Playlist-Generator

Ce message a été modifié 1 fois. Dernière modification effectuée par "Y0Gi" (22 janvier 2013, 04:13)