Automatische Playlist von Alben ohne folder.jpg

Begonnen von Gridd, 10. Januar 2009, 10:34:30

Vorheriges Thema - Nächstes Thema

Gridd

Hallo,
kann man irgendwie eine Sortierung bzw. Automatische Playlist erstellen, in der ich alle Alben sehe, die noch kein folder.jpg im Ordner haben? Welchen String müsste ich dafür worein schreiben, oder brauche ich ein bestimmtes PlugIn dafür?

tedgo

#1
Autoplaylists oder Sortierungen funktionieren nur über Tags.
Du müsstest also praktisch in die Lieder, die kein folder.jpg in ihrem Ordner haben (zumindest vorübergehend) einen Tag schreiben.
Natürlich müsstest du dazu erst einmal herausfinden, welche Alben kein folder.jpg im Ordner haben...

Mir ist kein Plugin bekannt, dass das so einfach kann.

Allerdings gibt es einige Plugins, die eine Prüfung durchführen können, ob eine bestimmte Datei existiert, z. B. Trackinfo mod, ELPlaylist, PanelStack Splitter.

Mit Trackinfo_mod könntest du z. B. einen Button erstellen, der einen Tag in die Datei hinzufügt, um in der Playlist sortieren zu können.

Dazu das Trackinfo_mod Panel downloaden, in den components-Ordner kopieren, dann über foobar2000 --> File --> Preferences --> Display --> Colimns UI --> Layout das Panel in deine Config integrieren, in der Ansicht darauf rechtsklicken und folgenden String einfügen:
$button2(0,0,0,0,60,20,'$font(Segoe UI,10,,192-192-192)ARTWORK','$font(Segoe UI,10,,192-192-255)ARTWORK',TAG:SET:Artwork:$if($fileexists($replace(%path%,%filename_ext%,folder.jpg)),1,),)

Damit würdest du alle Titel mit einem "Artwork"-Tag ergänzen, die ein folder.jpg in ihrem Ordner haben, wenn du deine gesamte Playlist mit STRG+A auswählst und auf den Button klickst.

Jetzt könntest du anhand des Tags deine Playlist/Library sortieren und auch eine Autoplaylist erstellen (in der Media Library Search den String: NOT %artwork% PRESENT eingeben und aus dem Suchergebnis eine Autoplaylist erstellen).

Das ist jetzt die einzige Möglichkeit, die mir momentan einfällt...
Und ist alles sehr aufwändig, denn du müsstest, sobald du ein folder.jpg hinzugefügt hast, den Tag selbst über die Properties hinzufügen.
Und später, wenn du dann alle Alben mit einem folder.jpg versehen hast, könntest du (solltest du!) den Artwork-Tag wieder löschen, denn den bräuchtest du dann nicht mehr.

Viel einfacher geht das Ganze außerhalb von foobar2000 mit dem angehängten Script, dass mir ein freundlicher Geist für genau dieses Problem erst gestern gebastelt hat.

Darauf doppelklickst du, dann wählst du den Ordner deiner Library aus (bzw. den Ordner, der durchsucht werden soll), im nächsten Dialog gibst du ein, wonach gesucht werden soll und klickst auf OK. Daraufhin wird der Ordner mit allen Unterordnern durchsucht und eine Textdatei erstellt, in der alle Ordner aufgelistet sind, die noch kein folder.jpg haben.

Ich halte das für die wesentlich einfachere und bessere Lösung.

Wäre gar keine blöde Idee, dieses Script vielleicht in ein foobar2000-Plugin zu bekommen, denn damit könnte man auch nach fehlenden externen Cuesheets, Lyrics oder anderem suchen. Als Ergänzung für die QuickSearch-Toolbar würde ich mir sowas z. B. wünschen, auch nach externen Files im Dateipfad suchen zu können und die Suche evtl. umzukehren. So würden die Suchergebnisse schön in einer "Search-Playlist" auftauchen.
Vielleicht interessiert sich ja ein "foobar2000-Plugin-Coder" dafür.

PS:
Wenn es dir nur darum geht, deine Alben vollständig mit Covern zu versehen, dann wäre vielleicht der Album Art Downloader eine Lösung für dich.
Der kann deine Media Library durchsuchen und lädt fehlende Cover herunter.
Eine weitere Lösung wäre foo_discogs, welches dir ebenfalls Cover gemeinsam mit Artist Pictures downloaden kann (falls in der Discogs-Datenbank vorhanden). Das Plugin durchsucht aber nicht die Library, du musst per Rechtsklick auf die Dateien foo_discogs auswählen und für die markierten Dateien ausführen.

huber71

#2
Zitat von: tedgo in 10. Januar 2009, 10:59:37
Viel einfacher geht das Ganze außerhalb von foobar2000 mit dem angehängten Script, dass mir ein freundlicher Geist für genau dieses Problem erst gestern gebastelt hat.

Ich halte das für die wesentlich einfachere und bessere Lösung.


Vielleicht interessiert sich ja ein "foobar2000-Plugin-Coder" dafür.

Das wäre zu wünschen: Dieses kleine Script ist ein Sahnestückchen zum "Auffinden nicht vorhandener Dateien", schnell und effizient - Dank an tedgo an dieser Stelle!

huber59

PS: Das Script zeigt "leider" alle Ordner innerhalb einer Hierarchie an, also auch solche, die lediglich der Übersichtlichkeit halber angelegt worden.

Gridd

Zitat von: tedgo in 10. Januar 2009, 10:59:37
Viel einfacher geht das Ganze außerhalb von foobar2000 mit dem angehängten Script, dass mir ein freundlicher Geist für genau dieses Problem erst gestern gebastelt hat.

Hallo tedgo,

vielen Dank für deine ausführliche Antwort! :-)
Ich habe dein Script schon runtergeladen, aber bisher öffnet sich bei mir nur mein Editor. Ich hatte mal irgendwann das Ausführen von Scripten abgestellt und muss jetzt erstmal sehen, wie ich das zwischenzeitlich rückgängig machen kann.

tedgo

Na ja, dann funktioniert es natürlich nicht ;)
Du solltest aber nicht zuviel davon erwarten. Es listet eben aus dem Verzeichnis ALLE Ordner auf, in denen kein folder.jpg (oder nach was immer man sucht) liegt, also auch übergeordnete Ordner.

Schöner wäre freilich eine Suche in foobar2000, die im Dateipfad sucht (sowas wie NOT $replace(%path%,%filename_ext%,folder.jpg) PRESENT), dann könnte man daraus auch eine Autoplaylist erstellen.
Ich frage mal auf hydrogenaudio nach, ob es nicht doch eine solche oder ähnliche Möglichkeit gibt, an die ich jetzt gar nicht denke.

plukin

Mit dem von tedgo genannten Album Art Downloader funktioniert das wunderbar! Dabei gibts es ein sog. "Foobar2000 Browser" der die covers für eine Playlist checkt und ein "Ordner Browser" der halt für einen bestimmten Ordner rekursiv nach covers guckt. Besonders einfach geht dann halt auch das Suchen und Runterladen der richtigen Covers! Sehr zu empfehlen!
gruß

tedgo

#6
Eine Autoplaylist erstellen kann man mit dem Album Art Downloader jedoch auch nicht und das war ja die eigentliche Frage.
Obwohl ich glaube, dass das eigentliche Problem ist, einfach die "Coversammlung" zu vervollständigen.
Dafür reicht der Album Art Downloader auf alle Fälle.

Gridd

Hey, das Skript lief ja in Sekundenschnelle ab. Super.

Und die überflüssigen Zeilen (wegen den übergeordneten Verzeichnissen) hatte ich auch in ca. 30 Minuten per Hand rausgelöscht. Soweit also so gut.

Ja, dass es mir im Endeffekt natürlich darum geht, meine Sammlung mit möglichst allen Covers zu bestücken, da habt ihr schon Recht.
Aber für den Album Art Downloader wird NetFramwork 3.5 vorausgesetzt, und an einer NetFramwork-Installation war ich früher schon mal gescheitert, weil die wiederum irgendwas anderes voraussetzt... Aber vielleicht wage ich mich da nochmal ran.

tedgo

Hast du dir foo_discogs mal angeschaut?
Das kann zwar keine automatische Suche machen, sondern nur für markierte Titel (und dazu musst du natürlich auch erst mal wissen, welche das sind), eine Autoplaylist ist damit ebenso nicht möglich, aber dafür kannst du auch damit deine Cover vervollständigen, soweit sie in der Discogs Datenbank vorhanden sind.
Ist übrigens auch eine ganz nette Alternative zu freedb, wenn es ums Taggen von Dateien geht.

Gridd

Na ja, auf den Screenshots sieht das für mich so aus, als ob ich dafür mindestens zwei Tage bräuchte, um es zu verstehen und bedienen zu können. In zwei Tagen suche ich mir meine fehlenden Bildchen dann lieber selbst.
Außerdem ist das ja keine einfache DLL sondern eine EXE die nur mit Admin-Rechten installiert werden kann. Mit sowas bin ich immer etwas zögerlicher. :-)

Dein Skript ist schon eine große Hilfe.

tedgo

Zitat von: Gridd in 11. Januar 2009, 16:43:05
Außerdem ist das ja keine einfache DLL sondern eine EXE die nur mit Admin-Rechten installiert werden kann. Mit sowas bin ich immer etwas zögerlicher. :-)

Minst du jetzt foo_discogs?
Das ist eine DLL, die ganz normal in den components-Ordner gehört.
Um die richtigen Tags herunterzuladen, muss man es natürlich ein klein wenig konfigurieren, aber das ist in 10 Minuten erledigt.

Der Album Art Downloader hingegen ist ein externes Programm, welches man aber über foobar2000 aufrufen kann, siehe z. B. hier:
http://foobar-users.de/index.php?topic=1284.0

Also gehe ich mal davon aus, dass sich dein eigentliches Problem, eine Autoplaylist aus Alben mit fehlendem folder.jpg zu erstellen, mit dem Script erledigt hat?

Gridd

Zitat
Minst du jetzt foo_discogs?
Das ist eine DLL, die ganz normal in den components-Ordner gehört.
Um die richtigen Tags herunterzuladen, muss man es natürlich ein klein wenig konfigurieren, aber das ist in 10 Minuten erledigt.

Ja, ich meinte Discogs. Bei mir hatte Opera beim Herunterladen eine EXE daraus gemacht. Ich habe sie jetzt in *.dll umbenannt, und nun es geht's.

Allerdings komme ich wohl noch nicht ganz klar damit, denn meine DesktopFirewall registriert keinerlei Verbindungsversuche. Im "Find Release"-Fenster habe ich bei Release or url: discogs.com eingetragen. Und in der Konfiguration einfach erstmal alles auf Default gelassen. Hmm...

Zitat
Also gehe ich mal davon aus, dass sich dein eigentliches Problem, eine Autoplaylist aus Alben mit fehlendem folder.jpg zu erstellen, mit dem Script erledigt hat?

Ja. :-)

tedgo

#12
Bei release or url musst du nichts eintragen.
Du musst nur auf Search klicken, dann sollte es eigentlich schon einen Datenabruf geben.
In der Konfiguration musst du allerdings vorher auf der Registerkarte Album/artist art "Fetch" bei Album art anhaken und bei File prefix: folder, sonst gibt es keine Bildchen ;)

Bei "edit tag mappings" musst du noch an-/abhaken, ob und wenn ja, welche Tags gewünscht sind.

Danach einfach auf "Write tags"-->"Search" und im Releases Fenster den passenden Eintrag raussuchen.
Das geht bestimmt auch irgendwie komfortabler, aber dazu kann ich nichts sagen, da ich selbst foo_discogs gar nicht benutze (ich tagge meine Dateien von Hand und scanne meine Cover selbst ein).

Das geht jetzt aber eigentlich schon ziemlich Off-topic, denn mit deiner eigentlichen Fragestellung hat das ja nur noch am extreeeeem dünnen Rand zu tun ;)

Gridd

Vielen Dank, tedgo, jetzt geht's. Ich hatte wohl doch die Verbindungsversuche nicht freigegeben, und als ich alles so eingestellt hatte, wie du's beschrieben hast, ging es.

Ps. Thema ist jetzt aber entgültig erledigt. :-)

tedgo

#14
Der hydrogenaudio-User 2E7AH hat mir freundlicherweise das Script so umgeschrieben, dass es nun von foobar2000 aus mit foo_run funktioniert und eine Playlist mit den Alben schreibt, in denen ein spezielles File fehlt.

Vorteil:
Im Gegensatz zum Album Art Downloader kann man damit nach allen Dateitypen suchen lassen.
Leider unterstützt das Script keine Wildcards, man muss immer einen vollen Namen angeben.

Nachteil:
Es wird die aktuelle Playlist überschrieben und keine neue Playlist geschrieben, geschweige denn eine Autoplaylist erstellt (dazu bräuchten die Alben, wie ich bereits gepostet hatte, ein entsprechendes Argument, auf das foobar2000 zugreifen kann).

Wer sich für das Script interessiert, ich hänge es mal an (für registrierte User).

Aufgerufen wird das Script über foo_run.
Einfach unter 'Preferences --> Tools --> Run services' mit ADD ein neues Preset anlegen, unter Label einen aussagekräftigen Namen eintippen und bei Path den Pfad zum Script angeben.
Dann kann man über das Context-Menü den Befehl ausführen.

EDIT:
Das Script wurde gerade eben überarbeitet!
Jetzt wird eine neue Playlist angelegt, anstatt die aktuelle zu überschreiben.
Habe Anhang ausgetauscht.

Möglicherweise unterstützt es bald auch noch Wildcards.