PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Playlist Generator für Samba share



zoidberg
12.01.2005, 09:44:02
Hallo,

ich habe in den letzten Tagen ein Script zusammengebastelt, das auf einem Linux Rechner aus dem Verzeichnisbaum alle MP3s rausfiltert und per Weboberfläche nach Selektion Playlisten für die Box baut.
(Ich hab zwar selber (noch) keine, aber Turbolooser wollte das haben ...)
Ist sicherlich interessant für Leute, die primär mit Samba shares arbeiten und viele Songs auf dem share liegen haben - nach dem, was ich verstanden habe, ist die Playlisterstellung auf der Box selber per FB ja wohl etwas suboptimal.

Da es noch etwas Aufwand erfordert, zu dem Ding noch Doku für Bedienung und Installation zu erstellen, würde ich gerne erstmal wissen, ob generell hier Interesse an sowas besteht.

Ciao
Zoidi

LinuxDoc
12.01.2005, 11:25:27
Schlicht und einfach: JA !

Merlin
12.01.2005, 11:56:36
Klingt super!

Was mir dazu ad hoc einfällt sind folgende wünschenswerte Features:

- Erstellen eine Playlist aus dem vorhandenen Bestand nach Künstler, Album, Genre, ...
- Begrenzung der Spieldauer der automatisch erzeugten Playlists
- Shuffle für vorhandene Playlists
- Konvertierung vorhandener .m3u o.ä. Playlists ins Siemens-Format
- Erzeugung von Bilder-Playlists mit automatischer Erzeugung der benötigten Thumbnails und optionalem Herunterrechnen der Originalbilder in TV-Auflösung (damit die arme kleine Box nicht so viel zu arbeiten braucht)
- Hinzufügen von Musik zu Bilder-Playlists (wenn's geht)

zoidberg
12.01.2005, 12:32:45
Ähm - ok.

zur Wunschliste: playlist konvertierungen scheint es ja mitlerweile zu geben - das muss ich ja dann nicht nochmal bauen.
Zu den Bilder-playlisten hab ich noch nix versucht - ich hab halt die Box noch nicht. Schau ich aber gern mal rein.

but first things first - erstmal docu bauen und das script hier reinsetzen - wenn das bei euch auch ordentlich läuft, dann sehen wir weiter...

Erstellung nach Künstler geht - schauts euch einfach an.

Ciao

redrabbitblue
12.01.2005, 13:17:10
Ähm - ok.

zur Wunschliste: playlist konvertierungen scheint es ja mitlerweile zu geben - das muss ich ja dann nicht nochmal bauen.
Zu den Bilder-playlisten hab ich noch nix versucht - ich hab halt die Box noch nicht. Schau ich aber gern mal rein.


Hallo Zoidberg,
auch bei mir besteht GROSSER Bedarf für so ein Script! Also auch von meiner Seite aus tausend Dank, dass du dich der Sache annimmst!

Playlist-Konvertierung: Meine Erfahrung mit den bislang geschriebenen Tools ist, dass die nur sehr eingeschränkt funktionieren ... da entweder sehr auf die Bedürfnisse des Programmierers zugeschnitten (und nicht kommentiert) oder nicht sehr einfach zum rennen zu bekommen ... Kurz: auf meiner Wunschliste tät´s ja doch stehen :)

Bilder-Playlist: sehe ich (leider) als noch unnötig an, da die Box beim Anschauen dermassen langsam wird (bei Bilddateigrössen um 1 MB), dass das eh keinen Spass macht.

zoidberg
12.01.2005, 15:03:54
Ok - dann mal los.

Voraussetzungen zur Nutzung des scripts:

Webserver ( getestet mit Apache 1.3.28)
mysql Datenbank
Perl
Perl Modul MP3::Tag ( gibts bei CPAN)
Perl Modul DBI ( gibts bei CPAN)
Perl Modul DBD-mysql ( gibts bei CPAN)
Perl Modul File::Find ( gibts bei CPAN)


Installation:

Kopiere id3.pl in ein Verzeichnis, in dem der webserver scripten ausführen darf ( bei mir einfach /srv/www/cgi-bin/ )
mach das script executable für den user des webservers ( oder für alle per chmod a+x id3.pl)
der webserver muss leserechte auf alle MP3 files und execute rechte auf alle directories mit MP3 files haben. Ausserdem muss er in das share Verzeichnis schreiben dürfen.
richte einen user mit passwort in mysql ein
generiere eine Datenbank ( Name egal - default im script ist mp3). Geht am einfachsten, wenn ihr folgende kommandos in mysql ausführt:

/*
Anlegen der Datenbank mit Namen mp3
*/

create database if not exists `mp3`;
use `mp3`;
/*
Table struktur für playlist
*/
drop table if exists `playlist`;
CREATE TABLE `playlist` (
`filename` varchar(255) NOT NULL default '',
`listed` smallint(1) default '1',
`title` varchar(255) default NULL,
`album` varchar(255) default NULL,
`track` tinyint(2) default NULL,
`artist` varchar(255) default NULL,
PRIMARY KEY (`filename`)
) TYPE=MyISAM;



Dann per browser das script starten (http://yourserver/cgi-bin/id3.pl)

Bedienung:

Es gibt 5 Hauptbereiche:
Playlist generieren - wählt einen Namen ( default: playlist.pla) und ob die songs im loop gespielt werden sollen - dann auf "generate playlist" drücken und die Playlist wird im share Verzeichnis angelegt.
create new mp3 file list - sollte als erstes gemacht werden. Der button läuft durch alle Verzeicnisse im share und füllt die Datenbank mit filenamen und ID3 informationen der gefundenen MP3 files. Aufgrund der Datenbankeinträge wir nachher die selektion gemacht. Sollte auch immer gemacht werden, wenn neue Dateien dazugekommen sind oder einige gelöscht wurden. ACHTUNG: löscht eventuelle markierungen von Songs in der Datenbank
import MP3 files: durchsucht alle Verzeichnisse im share und fügt neue Dateien in die Datenbank ein. Diese Funktion löscht nicht die flags, ist aber auch nicht geeignet, um nicht mehr vorhandene songfiles rauszuwerfen.
List of Artists: basierend auf den ID3 Tags wird Filter nach Artist ausgeführt, um die Auswahl bei grossen Songmengen übersichtlich zu halten. Bitte beachten: wenn man die Auswahl auf einen Artist einschränkt, aber vorher bereits andere Songs ausgewählt hatte, dann werden diese auch mit in die playlist übernommen - wenn das nicht gewünscht ist, dann erst alle unerwünschten Songs de-selecten.
work playlist: hier werden die Titel angewählt, die nachher in der playlist erscheinen sollen. Erst auswählen, dann den update-button drücken, um die Datenbank abzugleichen.


Kurzanleitung zur Benutzung:

Webseite aufrufen
create new file list
optional: nach Artist filtern
Songs auswählen
update drücken
Namen für die Playlist angeben
create playlist drücken


So - ich hoffe, das war fürs erste ausführlich genug - wenn nicht, dann bitte ich um feedback.
Sollte ich was wichtiges Vergessen haben, sagt mir auch Bescheid.

Viel Spass beim probieren

Ciao

Nachtrag: in dem script gibt es am Anfang einen Abschnitt, in dem einige variablen ans System angepasst werden müssen ( datenbankname, mysql username & password, etc - ist aber im script dokumentiert)

zoidberg
18.01.2005, 20:12:28
Hmmm

Script ist 11x runtergeladen worden, aber bis jetzt gabs keinerlei feedback.
Zwei Möglichkeiten dazu:
- läuft bei keinem und alle haben das Handtuch geworfen, weil es zu schlecht dokumentiert ist oder den Aufwand nicht lohnt
- läuft bei allen auf Anhieb ohne Probleme.

Mir wäre natürlich option 2 lieber, aber das kann ich eigentlich nicht glauben ;)

Ein wenig Erfahrungsberichte fände ich auch für mich gut, damit ich sehe, was in Zukunft besser werden muss.

Ciao

redrabbitblue
18.01.2005, 20:28:43
Hallo Zoidberg,

das Script funktionierte bei mir tatsächlich auf Anhieb! Ich habe jetzt schon einige "CDs" darüber im Direktzugriff. Also tausend Dank!

Ansonsten bleibt nach wie vor mein Traum nach Playlistenkonvertierung von z.B. Winamp bestehen. Wie ich unten schon geschrieben hatte, funktionieren die bislang in diesem Forum bereitgestellten Tools dazu (nach meinem Geschmack) zu umständlich. Wenn du also nochmal Zeit und Lust hast, das bestehende Script zu erweitern oder ein neues reines Konvertierungsscript zu erstellen, wäre ich dir nochmals tausend mal so dankbar ;) . Winamp ist einfach das optimale Tool für das Erstellen über mehrere Verzeichnisse hinweg.

Grüße
Tilmann

haraldrt
19.01.2005, 08:17:46
Bilder-Playlisten sind trotz allem interessant. Die Box ist ja auch deutlich schneller wenn die Vorschaubilder schon generiert sind. Die zwei Dateien die entstehen sind entsprechende png Files mit anderer Extension. Ausserdem scheint er bei pngs generell schneller zu sein.

cu Harald

Merlin
19.01.2005, 11:22:30
Nach einigen Kämpfen mit Apache und mod_perl habe ich's nun auch endlich zum Laufen bekommen, dazu ein paar Anmerkungen:

- Beim Scannen meiner MP3-Sammlung (ca. 120GB) wird Dein Skript vom Apache mit einem SIGTERM unterbrochen. Da die Daten dann noch nicht in der Datenbank stehen und das Skript jedesmal von vorn anfängt, ist es nicht möglich die gesammt Sammlung zu scannen.
-Die Darstellung der Artists ist etwas unübersichtlich. Könnte man nicht eine Listbox oder einen IFrame mit einer Liste mit Checkboxen machen? Dann könnte man auch Playlisten mit einer Mischung verschiedener Artists machen.

Im Anhang habe ich mal eine Strukturskizze eines Interfaces, wie ich es mir vorstelle, beigefügt: Die gerahmten Bereiche würde ich als Frames realisieren, da hier der Nutzen höher ist, als die damit erkauften Nachteile. Unter (2) gibt es dort ein Menü, das man je nach aktivem Bereich verändern kann. (3) zeigt die aktuelle Auswahl von Mediendateien (Mp3s, Bilder, Videos) an, die man mittels eines Filters (->Menüpunkt Filter) einschränken kann. (4) zeigt die jeweils aktive Playlist mit ihrer Gesamtspielzeit an. Mit den Buttons (5) kann man Mediendateien der Playlist zufügen oder aus ihr löschen. In (6) läuft durchgehend der Scanjob, der die Mediendateien katalogisiert und in die Datenbank schreibt.

Soweit mein Vorschlag. Und danke für Deine Mühe!

arma
19.01.2005, 14:49:38
Hi,

ein OpenSource-Java-Tool zur Bild- und Audio-Playlisterstellung inkl. Konvertierung M3U, Bildgrössen habe ich zufällig beim Browsen unter http://www.jung-hamburg.de aufgetan.

Es sieht vielversprechend aus, ich habe es aber bisher nicht selbst getestet.

Gruss
arma

P.S.: karlo.h und vmaexchen sollten sich mal mit dem Autoren bzgl. möglicher Synergien in Verbindung setzen.

Merlin
27.01.2005, 09:33:33
Schade, dass diese Idee im Sande zu verlaufen droht. Wäre schön, wenn wir diesen Ansatz weiterverfolgen könnten. Gibt's zu dem Thema noch Interesse/Umsetzungsbereitschaft?

golem
27.01.2005, 10:17:41
Hi,
wäre schön wenn ihr euch mit PHP-Skript zur webbasierten Timerprogrammierung zusammenschliesenkönntet, damit es wieleicht mal ein "web" interface zum umgang mit der Box gibt.

golem

zoidberg
27.01.2005, 10:47:10
Hi,

@ Merlin: ist nicht im Sande verlaufen. Deine Vorschläge zur Umgestaltung fand ich sehr konstruktiv - das mit den Frames werde ich auf jeden Fall umsetzen - ich hab nur jetzt erstmal den playlist converter für Winamp fertiggebastelt und hatte auch nicht sehr viel Zeit.

@Golem: Ein Web Portal im Umgang mit der Box wäre sicherlich klasse. Aus meiner Sicht sieht es aber so aus, dass ich ein wenig an den scripten bastel, wenn ich Zeit und Lust hab - ohne jeglichen Druck. Das gefällt mir auch gut so. Mit dieser Herangehensweise ist allerdings eine Koordination mit anderen zur Standardisierung recht schwierig.
Die einfachere Methode wäre eventuell, wenn jeder seine Tools baut, wie er/sie möchte, und es findet sich jemand, der eine Art Portal-framework drumrum baut.

Ich weiss - das ist nicht wirklich professionell - aber den Anspruch habe ich zumindest auch nicht - soll halt in erster Linie Spass machen.


Ciao