id3 Tags auslesen und von DB eine m3u erstellen

-Ener-

Erfahrenes Mitglied
Guten Morgen,

ich habe ein etwas komplexeres Problem. Ich habe in meiner MySQL 2 Spalten (Titel, URL eines Liedes). Die User die auf meine Seite gehen können Mp3 Dateien als Download eintragen aber die Mp3`s liegen dabei immer auf anderen Servern, also eine "Download Liste" sozusagen.

Nun würde ich gerne von jedem Song der in meiner DB gespeichert ist die Liedlänge herausbekommen UND alle Songs die in der DB gespeichert sind per aufruf eines Scripts eine .m3u erstellen

Der Zweck davon ist das die user nur ein Script aufrufen müssen und auf den Link zur m3u klicken müssen und haben im Winamp dann alle Songs zum anhören bereit, immer aktuell auch wenn neue Songs in die DB eingetragen werden.

Das Auslesen der Liedlänge dient einzig und allein dem erstellen der .m3u damit da auch die Liedlänge richtig angezeigt wird.

Ich hoffe ihr könnt mir da helfen oder habt eine andere Möglichkeit um sowas zu ermöglichen. Vielen Dank schonmal
 
Hi,

allgemein sollte es kein Problem sein, ID3 Tags von mp3's auszulesen. (weiß ich gerade nich aus dem Kopf, aber ich meine es gibt da ein Modul)

Erstmal solltest du deine Mysql-Tabelle um die Spatle "länge" erweitern. Dann koennteste du den Script zum eintragen einer neuen mp3 so erweitern, dass der Server die Datei runterläd und die Länge in die Tabelle einträgt.

Jedoch müssen dann noch die bereits eingetragenen diesen Wert bekommen,..

Problem bei dir ist, dass alle Dateien erst heruntergeladen werden müßten auf den Server auf dem PHP läuft und dann dort die Tags ausgelesen werden können.
Auch wenn die Dateien nur temporär sind... das dauert alles seine Zeit. Deshalb halte ich php grundsätzlich für das falsche Werkzeug für diese Arbeit ;)
Hast du root-Zugriff auf den Server? Dann koenntest du php von der Konsole aus ausführen um die Live-Time zu erhöhen.
 
Ne root zugriff hab ich net, das mit dem Datein erst runterladen ist ja mal ziemlig blöd.
Ne andere Möglichkeit wäre vl. noch mit Flash. Das das PHP-Script ne .txt oder ne .xml erstellt und man über ne projektor exe die lokal gestartet wird die (z.B.) lieder.xml einliest und man dann alle lieder anhören kann... oder?
 
vielleicht kann man es manuel machen.

ID3_v1 hat eine statische Länge und ist am anfang der mp3... theoretisch koennte php auch eine Verbindung zum server aufbauen auf dem die datei liegt und dann die ersten bytes nur saugen, bis er die Information hat-... das geht aber über mein wissen was die realisiserung angeht ;)

zu deiner Idee... vielleicht wäre es das einfachste, du schreibst dir nen Script der dir erstmal ne m3u erstellt.. ohne die Länge der Tracks.. dann läßt du winamp einmal durch alle lieder durchlaufen und schreibst die m3u neu.. dann sollten alle längen drin sein und dann muss sie php wieder parsen und hat alle koreckten längen....

werden neue dateien geadded koennte man das oben versuchen (mal googeln, wie genau die tags gespeichert werden.. müßte man dann halt von hand parsen)
 
dino4k hat gesagt.:
ID3_v1 hat eine statische Länge und ist am anfang der mp3...
Statische Länge: ja
Anfang der MP3: nein!

Der ID3v1-Tag steht (sofern vorhanden) immer am Ende der Datei.

Ich frage mich allerdings, wofür man hier den ID3v1-Tag benötigt. Es geht doch darum, die Spiellänge einer MP3-Datei herauszufinden, oder? Diese steht aber nicht im ID3v1-Tag und auch sonst nirgends in der MP3-Datei (zumindest nicht direkt).
 
stimmt mein Fehler... am Anfang der Datei steht v2 ;)

dragonlord:
naja, dann kann es nicht vom server aus ausgeführt werden... und dann auf dem Server irgendwie wieder in die DB geparst werden... da kann man einfach auch einmal winamp drüber laufen lassen ;) das macht weniger arbeit und m3u auseinander zu parsen duerte nicht aufwendig sein!

die frage ist mehr, wie man es hinbekommt, dass die Zeitangabe vom Server ausgelesen wird, wenn ein neues Lied hinzugefügt wird.. man koennte es
(größe der datei - tag) / bitpro sek.
so berechnen.. aber da gibts ärger.. wegen Variabler Bit-Rate.

und das dann noch mit php, hf ;)
 
Ich sehe das Problem ist wirklich sehr komplex, ihr habt auch keine anderen Ideen wie man sowas realisieren kann?! -> Flash?
 
dino4k hat gesagt.:
stimmt mein Fehler... am Anfang der Datei steht v2 ;)

dragonlord:
naja, dann kann es nicht vom server aus ausgeführt werden... und dann auf dem Server irgendwie wieder in die DB geparst werden... da kann man einfach auch einmal winamp drüber laufen lassen ;) das macht weniger arbeit und m3u auseinander zu parsen duerte nicht aufwendig sein!

Ich meinte das man dieses Tool dann den Usern zur verfügung stellen könnte. Sonst müssten sie ja die komplette Datei übertragen. Dieses Tool könnte die Daten direkt in die DB schreiben.
 
Guck mal hier: LINK

Ich steige da nicht so richtig durch, weil im ersten listing gleich eine Datei (id.php) required wird ... wo kommt die her ?

Wenn du damit klar kommst, wäre es "Coole Sache", wenn du hier kurz reinschreiben könntest woher man diese id.php her kriegt bzw. was da drinnen stehen muss.


Grüße, BandSite
 
Zuletzt bearbeitet:
Zurück