Help - Search - Members - Calendar
Full Version: Playlisten
Mp3tag Forums > Mp3tag - Deutsch > Allgemein
Lostsoul
Hallo erstmal,

Mein Problem habe ich schon länger und ich bin mir auch nicht sicher ob MP3TAG dafür gedacht ist, da es ja primär ein Tagger und kein Playlistentool ist.

Ich versuch das mal zu erklären.

Ich verwende ein Basisverzeichnis für meine gesamte MP3 Sammlung. In den Unterordner befinden sich die Files zumeinst nach Album sortiert.

Im Moment lasse ich MP3TAG alle Lieber einlesen was schon Ewigkeiten dauert aber nicht zu ändern ist. Anschließend hab ich mehrere Filter welchen mir dann Genre basierte Playlisten erstellen.

Das bedeutet ich muss für jede Playliste den Filter eingeben/kopieren, anschließend nach Artist sortieren mit Klick auf den Spaltenkopf. Nun kann ich die Playlist erstellen lassen wo ich allerdings jedes mal den Zielpfad und den neuen Dateinamen auswählen muss. Dann noch die Frage ob ich die alte Playlist überschrieben haben möchte und Finish.

Wie kann ich das automatisieren? Am liebsten wäre mir ja die Kommandozeile an welche ich eine INI Datei mit den Filtern übergeben kann. Wenn er das alles automatisch macht kann er wegen mir die ~25000 auch 10mal einlesen, Hauptsache die Filelisten sind am Ende alle auf dem neuesten Stand.

Gerne lasse ich mich auch auf andere Playlistersteller verweisen aber dazu vielleicht erstmal das Beispiel für einen Filter.

"NOT %_folderpath% HAS "amazon" AND %genre% HAS "handsup" AND NOT %_folderpath% HAS "bangbros" AND NOT %_folderpath% HAS "blümchen" AND NOT %bpm% LESS 139 AND %_length_seconds% LESS 900

Würde mich über jede Hilfe zur Automatisierung solcher Playlisten freuen.

MfG
LostSoul
DetlevD
QUOTE (Lostsoul @ Dec 7 2015, 09:27) *
... Playlist erstellen ... Wie kann ich das automatisieren? ...

Wenn du die Erzeugung von Playlisten in Richtung Mp3tag Export verlagerst, dann wird es Möglichkeiten dafür geben, den gesamten Prozess zur automatischen Erzeugung von multiplen Playlisten zu unterstützen durch entsprechende Export-Skripte.
Prinzip siehe ...
Dano, Mp3tagLyricsSplitter
http://forums.mp3tag.de/index.php?showtopi...ost&p=65088
DetlevD, Mp3tagSplitList
http://forums.mp3tag.de/index.php?showtopi...ost&p=65267

DD.20151207.1120.CET
Lostsoul
ZITAT(DetlevD @ Dec 7 2015, 11:20) *
Wenn du die Erzeugung von Playlisten in Richtung Mp3tag Export verlagerst, dann wird es Möglichkeiten dafür geben, den gesamten Prozess zur automatischen Erzeugung von multiplen Playlisten zu unterstützen durch entsprechende Export-Skripte.

Wenn ich Dich richtig verstehe dann ist also die Filtersyntax welche man im MP3Tag über F3 nutzen kann 1:1 für Exportkonfigurationen nutzbar?

Ich frage das weil ich RegEx nie wirklich verstanden habe und daher die unkomplizierte Filtersyntax des MP3Tag sehr schätze.
DetlevD
QUOTE (Lostsoul @ Dec 11 2015, 11:20) *
Wenn ich Dich richtig verstehe dann ist also die Filtersyntax welche man im MP3Tag über F3 nutzen kann 1:1 für Exportkonfigurationen nutzbar? ...

Das habe ich nicht gesagt und so auch nicht gemeint.
Mp3tag hat für jedes Spezialgebiet eine eigene Skriptsprache, was sowohl Vorteile wie auch Nachteile hat.
So kann man die Syntax aus dem interaktiven Filter Dialog eben nicht in einem Export-Skript anwenden.
Man kann aber die gewünschte Filterung in einem Export-Skript nachbilden.
Eine Playlist-Datei ist eine Textdatei, und diese kann man mit einem Export-Skript erzeugen.

Wenn es also um wiederholbare Standardausgaben geht, dann kann man das mit Mp3tag Export erledigen.
Man kann auch manuell im Filter-Dialog ein Filter setzen, und dann ein Exportskript ablaufen lassen, welches die erzeugte Playlist-Datei direkt im Zielordner ablegt.

DD.20151211.1207.CET
Lostsoul
ZITAT(DetlevD @ Dec 11 2015, 12:07) *
Man kann auch manuell im Filter-Dialog ein Filter setzen, und dann ein Exportskript ablaufen lassen, welches die erzeugte Playlist-Datei direkt im Zielordner ablegt.

Das wäre definitiv schon mal eine Erleichterung. Also muss ich mich da nochmals durchsuchen...

Danke!
DetlevD
QUOTE (Lostsoul @ Dec 11 2015, 21:30) *
Das wäre definitiv schon mal eine Erleichterung. Also muss ich mich da nochmals durchsuchen... Danke!

Hier ist ein Beispiel für ein Export-Skript wie das automatische Erzeugen von mehrfachen Playlisten funktioneren kann auch mit Anwendung von "Ausschlussfiltern".

1. In Mp3tag Dateien laden und markieren.
2. Mp3tag Exportskript ausführen ... "20151212.Test.Split List#Export GENRE playlist to SL file.mte"
3. "Mp3tagSplitList.exe" ausführen mit der zuvor erzeugten "Playlist.Genre.SL.txt".
4. Ergebnis kontrollieren.

20151212.Test.Split List#Export GENRE playlist to SL file.mte
01: $filename($getEnv('USERPROFILE')'\Desktop\Playlist.Genre.SL.txt',UTF-8)
02: $loop(%GENRE%)$loop(%_path%)$puts(FilterStatus,1)
03: $puts(FilterStatus,$ifgreater(%_length_seconds%,900,0,$get(FilterStatus)))
04: $puts(FilterStatus,$ifgreater(80,%BPM%,0,$get(FilterStatus)))
05: $puts(FilterStatus,$ifgreater($strstr(%_folderpath%,'Beatles'),0,0,$get(FilterStatus)))
06: $puts(FilterStatus,$ifgreater($strstr(%_folderpath%,'Zulu'),0,0,$get(FilterStatus)))
07: $puts(FilterStatus,$ifgreater($strstr(%ALBUM%,'Love & Hate'),0,0,$get(FilterStatus)))
08: $puts(FilterStatus,$ifgreater($strstr(%ARTIST%,'Frank Sinatra'),0,0,$get(FilterStatus)))
09: $ifgreater($get(FilterStatus),0,
10: '$$$FILEAPPEND='$getEnv('USERPROFILE')'\Desktop\Playlists\Genre\Playlist.Genre.'$if2($validate(%GENRE%,'_'),'undefined')'.m3u8'
11: '#EXTM3U'
12: '###GENRE='$if2(%GENRE%,'undefined')
13: $loop(%ARTIST%)$loop(%TITLE%)'#EXTINF:'%_length_seconds%','%ARTIST%' - '%TITLE%
14: %_path%
15: $loopend()$loopend()'$$$END'$char(13)$char(10),)$loopend()$loopend()


Click to view attachment

DD.20151212.1122.CET
Lostsoul
ZITAT(DetlevD @ Dec 12 2015, 11:22) *
Hier ist ein Beispiel für ein Export-Skript wie das automatische Erzeugen von mehrfachen Playlisten funktioneren kann auch mit Anwendung von "Ausschlussfiltern".

Wow 1000 Dank das Du Dir diese Mühe gemacht hast. w00t.gif

--- Nachtrag:
Ich habe es tatsächlich geschafft die Listen so zu erstellen wie ich mir das dachte. Ohne Detlev wäre mir das nicht möglich gewesen. DANKE! *verneig*
Lostsoul
Mahlzeit,

Ich weiß 2015 ist schon eine Weile her aber seitdem funktionieren die Filter ohne Probleme. Lediglich eine Form des Exports ist mir nicht gelungen. Hier erstmal der Standard Export code den ich in den einzelnen Export Dateien nutze.

QUELLTEXT
$filename('D:\liquidsoap\playlists\buffer\newstuff.m3u',ansi)
'#EXTM3U'
$loop(%_filename%)$loop(%title%)$puts(FilterStatus,1)

$puts(FilterStatus,$ifgreater($len(%replaygain_track_gain%),0,$get(FilterStatus),0))
$puts(FilterStatus,$ifgreater($strstr(%_folderpath%,'Amazon'),0,0,$get(FilterStatus)))

$ifgreater($get(FilterStatus),0,'#EXTINF:'%_length_seconds%','%ARTIST%' - '%TITLE%
%_path%,)
$loopend()$loopend()


Funktioniert soweit erstmal recht gut. Um nach UNIX Timestamp zu sortieren wollte ich den Loop Beginn wie folgt ändern.

QUELLTEXT
$loop(%_file_create_datetime_raw%)$loop(%title%)$puts(FilterStatus,1)
[...]
$loopend()$loopend()


Das Problem ist allerdings, das wenn ich die Spalte im MP3 Tag selbst sortiere steht die neuste Datei zwar ganz unten aber die Sortierung stimmt.

In der Playlist welche exportiert wird stehen die Dateien aber in einer nicht nachvollziehbaren Sortierung drin...

Wo liegt mein Denkfehler? Eigentlich wollte ich eine Liste wo die neusten x Dateien drin stehen.

MfG
LostSoul biggrin.gif
ohrenkino
ZITAT(Lostsoul @ Jun 5 2017, 21:02) *
...
QUELLTEXT
$loop(%_file_create_datetime_raw%)$loop(%title%)$puts(FilterStatus,1)
[...]
$loopend()$loopend()

...

Es ist mir nicht klar, warum du ein $loop(%title%) ausführst, wenn doch das Änderungsdatum wichtig ist.
Ich würde den Loop weglassen.
Lostsoul
ZITAT(ohrenkino @ Jun 5 2017, 21:09) *
Es ist mir nicht klar, warum du ein $loop(%title%) ausführst, wenn doch das Änderungsdatum wichtig ist.
Ich würde den Loop weglassen.

Also wenn ich richtig verstanden habe was DetlevD mir damals vermitteln wollte, dann ist die äußere Schleife nur dafür gedacht mit der Inneren Schleife von allen Tracks die mit den gewünschten Suchkriterien auszuwählen. Ich könnte auch zweimal das gleiche hinschreiben, das würde am Ergebnis nichts ändern.

Die Loops laufen wie gesagt mit anderen Suchkriterien tadellos. Nur mit dem Timestamp Tag kommt er nicht zurecht, also was das Sortieren nach selbigen angeht.

Ich habe Deinen Lösungsansatz allerdings schon ausprobiert gehabt. Die exportierte Playlist unterschied sich nicht von der wo beide Loops aktiv waren.

MfG
LostSoul
ohrenkino
Vielleicht solltest du dir mal %_file_create_datetime_raw% mit ausgeben lassen.
Da sollte dann deutlich werden, ob und wie nach der Zeit sortiert wird.
DetlevD
QUOTE (Lostsoul @ Jun 5 2017, 21:02) *
... Um nach UNIX Timestamp zu sortieren wollte ich den Loop Beginn wie folgt ändern. ... Das Problem ist allerdings, das wenn ich die Spalte im MP3 Tag selbst sortiere steht die neuste Datei zwar ganz unten aber die Sortierung stimmt. ...

Ein Mausklick auf den Spaltenkopf wechselt die Richtung der Sortierung.

QUOTE (Lostsoul @ Jun 5 2017, 21:02) *
... In der Playlist welche exportiert wird stehen die Dateien aber in einer nicht nachvollziehbaren Sortierung drin ...

Vielleicht geht es besser mit ... %_file_mod_datetime_raw% ...?

CODE
$filename($getEnv('USERPROFILE')'\Desktop\Test.Playlist.Timestamp.txt',UTF-8)$puts(
)'#EXTM3U'
$loop($num(%_file_mod_datetime_raw%,11))$loop(%_path%)
'#EXTINF:'$num(%_file_mod_datetime_raw%,11)$char(9)%_length_seconds%$char(9)%_filename_ext%
%_path%
$loopend()$loopend()



Absteigende Sortierung müsste so funktionieren ...
CODE
$loop($num($sub(10000000000,%_file_mod_datetime_raw%),11)) ... $loopend()


DD.20170606.1018.CEST, DD.20170606.1614.CEST, DD.20170606.2054.CEST,
DD.20170609.1425.CEST ($loop() berichtigt und Formatierung für %_file_mod_datetime_raw% auf 11 Stellen)
Lostsoul
ZITAT(DetlevD @ Jun 6 2017, 10:18) *
Vielleicht geht es besser mit ... %_file_mod_datetime_raw% ...?

DD.20170606.1018.CEST, DD.20170606.1614.CEST

Probiere ich aus und geb Response. smile.gif

Das mit den Spalten war mir schon klar. Es geht mir eben darum das ich die x neusten Tracks in eine Playliste schreiben kann und wenn die Spalte beim ersten Klick von alt nach neu anzeigt würde das bei der Filterfunktion dann auch so sein und ich müsste eine Möglichkeit finden die Sortierung umzukehren damit eben die neusten 50 gespeichert werden.

MfG
LostSoul
ohrenkino
ZITAT(Lostsoul @ Jun 6 2017, 17:13) *
...wenn die Spalte beim ersten Klick von alt nach neu anzeigt würde ...

Die Sortierung in MP3tag hat keinen Einfluss auf die Ausgabe im Report. Dort bestimmt die Variable in $loop() das Kriterium.
Deshalb wäre es ganz nützlich, anzusehen, was denn im obersten Sortierkriterium eigentlich steht.
Das Datum der Änderung oder Erzeugung sollte deshalb ruhig mit ausgegeben werden zur Kontrolle.
Lostsoul
Sorry das es gedauert hat, war ne stressige Woche...

ZITAT(DetlevD @ Jun 6 2017, 10:18) *
QUELLTEXT
$filename($getEnv('USERPROFILE')'\Desktop\Test.Playlist.Timestamp.txt',UTF-8)$puts(
)'#EXTM3U'
$loop(%_file_mod_datetime_raw%)$loop(%_path%)
'#EXTINF:'%_file_mod_datetime_raw%$char(9)%_length_seconds%$char(9)%_filename_ext%
%_path%
$loopend()$loopend()

Also ich behaupte ja mal zu verstehen was das Script macht und muss feststellen das Ohrenkino recht hat und das ganze wird nach (in diesem Fall) %_path% sortiert. Ich habe den Code mal so weit gekürzt das nur noch Timestamp und _path ausgegeben werden und da ist dann deutlich zu sehen das er nach path sortiert.

Also versuch Nummer 2 ohne die zweite Loop:
QUELLTEXT
$filename($getEnv('USERPROFILE')'\Desktop\Test.Playlist.Timestamp.txt',ansi)
$loop(%_file_mod_datetime_raw%)
%_file_mod_datetime_raw%$char(9)%_path%$loopend()

Hierbei stellt sich heraus das wieder nach _path sortiert wird bzw. ich gehe sogar soweit zu behaupten das nicht sortiert, sondern lediglich die Reihenfolge des Filesystems abgebildet wird.

ZITAT(DetlevD @ Jun 6 2017, 10:18) *
Absteigende Sortierung müsste so funktionieren ...
QUELLTEXT
$loop($sub(10000000000,%_file_mod_datetime_raw%) ... $loopend()

DD.20170606.1018.CEST, DD.20170606.1614.CEST, DD.20170606.2054.CEST

Das ist jetzt schwer zu erklären und ich muss weiter ausholen. Mal davon abgesehen das bei meinen Exportfiles (meine Modifikation von DetlevDs Vorlagen) MP3 Tag sich wirklich seltsam verhält. Er exportiert alles richtig aber Ihm dabei zuzusehen verwundert schon. Der Fortschrittsbalken für den Export ist völlig nutzlos da er zwar die Anzahl der Dateien richtig zählt aber durch die zwei Loops kommt er wohl beim Balken mit den 100% Berechnungen durcheinander. Ich kann das nicht richtig erklären deshalb mal ein Video. Das Video ist Echtzeit also nicht wundern wenn da mal nix passiert das läuft tatsächlich so seltsam und "langsam" ab. Auch werden keine MP3 Tags geschrieben noch werden MP3 Files bearbeitet. Der Titel des Fortschrittfensters ist also ein wenig irreführend.

Playlisten Export [Echtzeit 72 Sekunden]

Man sieht recht gut das er den Balken kurz füllt dann stehenbleibt und anschließend nach einer Pause weitermacht. Dein Tip für die absteigende Sortierung lässt den Balken auch kurz wachsen führt dann aber zur Fehlermeldung das #export_create_news.mte nicht gefunden werden kann.

Zusammenfassend gibt es 3 Möglichkeiten. MP3TAG ist für diese Art des Exports nicht geeignet , es liegt ein Bug vor oder ich hab was falsch gemacht...

Auf alle Fälle Danke ich Euch für Eure Mühe und Ideen und bin dankbar für jeden weiteren Tip.

MfG
LostSoul
ohrenkino
ZITAT(Lostsoul @ Jun 9 2017, 11:40) *
...führt dann aber zur Fehlermeldung das #export_create_news.mte nicht gefunden werden kann.
... oder ich hab was falsch gemacht...

Auf alle Fälle Danke ich Euch für Eure Mühe und Ideen und bin dankbar für jeden weiteren Tip.

MfG
LostSoul

???
eine Datei mit Endung "mte" ist doch ein MP3tag-internes Export-Skript?! Wieso sollte eine mte-Datei im Rahmen eines Exports gesucht werden?
Und ein # im Dateinamen ist meiner Ansicht nach auch nicht zulässig.

Vielleicht wäre die Abbildung des gesamten Skripts in seiner aktuellen (anscheinend fehlerhaften) Form nützlich.
Lostsoul
ZITAT(ohrenkino @ Jun 9 2017, 11:52) *
???

Alles gelesen was ich schrieb?

ZITAT(ohrenkino @ Jun 9 2017, 11:52) *
eine Datei mit Endung "mte" ist doch ein MP3tag-internes Export-Skript?! Wieso sollte eine mte-Datei im Rahmen eines Exports gesucht werden?

Naja zumindest ist es für Dich genauso unverständlich wie für mich.

ZITAT(ohrenkino @ Jun 9 2017, 11:52) *
Und ein # im Dateinamen ist meiner Ansicht nach auch nicht zulässig.

Das wäre mir jetzt allerdings ganz neu. Ich habe seit 35 Jahren mit Computern zu tun aber das man # nicht im Filename verwenden darf... Nein das ist es nicht. Ich habe die Raute nur davor gesetzt damit ich in der Liste der Exportscripts nicht ständig runter scrollen muss. Als die Datei noch keine Raute hatte war das Ergebnis dasselbe.

ZITAT(ohrenkino @ Jun 9 2017, 11:52) *
Vielleicht wäre die Abbildung des gesamten Skripts in seiner aktuellen (anscheinend fehlerhaften) Form nützlich.

Nochmal? Mein letzter Quelltext im vorherigen Post ist das gesamte Script mit welchem ich im Moment versuche das Problem mit Euch zu lösen. Wenn dieses kleine Script eine Liste ausgibt in welcher nach Create oder Change Datum sortiert wird, dann erst werde ich wieder anfangen die Infos welche ausgegeben werden sollen zu vervollständigen.

MfG
LostSoul
DetlevD
QUOTE (Lostsoul @ Jun 9 2017, 11:40) *
... Also versuch Nummer 2 ohne die zweite Loop:
CODE
$filename($getEnv('USERPROFILE')'\Desktop\Test.Playlist.Timestamp.txt',ansi)
$loop(%_file_mod_datetime_raw%)
%_file_mod_datetime_raw%$char(9)%_path%$loopend()

Hierbei stellt sich heraus das wieder nach _path sortiert wird ...

Wie codiert "$loop(%_file_mod_datetime_raw%)" ... wird mit dieser Anweisung nicht nach Dateipfad sortiert, sondern nach dem Datum der letzten Speicherung in der Reihenfolge von alt nach neu.


QUOTE (Lostsoul @ Jun 9 2017, 11:40) *
... bei meinen Exportfiles ... MP3 Tag sich wirklich seltsam verhält. ... Man sieht recht gut das er den Balken kurz füllt dann stehenbleibt und anschließend nach einer Pause weitermacht. ... wenn da mal nix passiert das läuft tatsächlich so seltsam und "langsam" ab. Auch werden keine MP3 Tags geschrieben noch werden MP3 Files bearbeitet. ... Der Titel des Fortschrittfensters ist also ein wenig irreführend. ...

Wenn du von "er" sprichst, dann meinst du wohl die Anwendung "Mp3tag", das wäre dann "die Anwendung", also weiblich und deshalb mit "sie" zu benennen, und du müsstest dann "ihr" zusehen und was "sie" dir zeigt.

Oder du kannst es auch benennen mit "es", das wäre dann "das Programm", also sächlich, und du müsstest dann aufpassen, was "es" dir zeigt und was "es" mit dir macht.

Aber Mp3tag mit "er" zu benennen, das ist schon etwas schräg, es sei denn du meinst mit "er" den Programmierer von Mp3tag, aber dieser hat seine Arbeit schon erledigt, indem er sein Programm Mp3tag es machen lässt mit dir bzw. für dich.

Im Übrigen stehst du mit deiner Kritik betreffend die Fortschrittsanzeige in Mp3tag nicht alleine da.

QUOTE (Lostsoul @ Jun 9 2017, 11:40) *
... es liegt ein Bug vor oder ich hab was falsch gemacht. ...

Hmm, ja, beides ist möglich, manchmal trifft die zweite Möglichkeit eher zu.


Hier ist ein einfaches Export-Skript, welches nicht selbst sortiert, sondern die Daten in der Reihenfolge ausgibt, wie die Dateien in der Mp3tag Listenansicht sortiert sind:
CODE
$filename($getEnv('USERPROFILE')'\Desktop\Test.loop.txt',ANSI)
$loop(0)
%_file_mod_datetime_raw%$char(9)%_path%$loopend()

... oder so ...
CODE
$filename($getEnv('USERPROFILE')'\Desktop\Test.loop.txt',ANSI)
$loop(0)
$num(%_file_mod_datetime_raw%,11)$char(9)%_path%$loopend()


DD.20170609.1312.CEST, DD.20170609.1406.CEST
ohrenkino
ZITAT(Lostsoul @ Jun 9 2017, 12:02) *
Alles gelesen was ich schrieb?


Naja zumindest ist es für Dich genauso unverständlich wie für mich.
...

Wie rufst du denn den Export auf?
Über das Menü Datei oder per Aktion?
wenn letzteres: könnte es sein, dass da noch eine weitere Aktion mit Haken versehen ist, die einen Export versucht und dann die Fehlermeldung bringt bzw. die von dir erwartete Datei überschreibt?

Bei mir jedenfalls produziert das von dir in https://forums.mp3tag.de/index.php?s=&s...ost&p=96554
gezeigte Script eine Ausgabe nach Datum, nicht nach Pfadbzw. dort, wo das Datum gleich ist, wird nach Pfad sortiert, wie im Script angegeben.
Lostsoul
ZITAT(DetlevD @ Jun 9 2017, 12:05) *
Wie codiert "$loop(%_file_mod_datetime_raw%)" ... wird mit dieser Anweisung nicht nach Dateipfad sortiert, sondern nach dem Datum der letzten Speicherung in der Reihenfolge von alt nach neu.

DD.20170609.1205.CEST

Habe jetzt das Textfile nochmal kontrolliert und Du hast Recht. Das die Sortierung so aussieht als wenn Sie nach Pfad erfolgt liegt wohl daran das ich auch schon Masstagging auf die Verzeichnisstruktur angewendet habe. Als ich jetzt mal am Ende der Exportdatei nachgesehen habe stehen dort tatsächlich die neusten am Ende.

[Nebenschauplatz]
Leider funktioniert das nicht mit dem Create Timestamp... In MP3TAG selbst kann man ja numerische Sortierung für eine Spalte angeben und da funktioniert es einwandfrei. Der folgende Quelltext zeigt die Ausgabe des Exportfiles mit %_file_create_datetime_raw%. Der Ausschnitt ist aus der Mitte des exportierten Files.
QUELLTEXT
1496828842    F:\MP3\Friendly DJs\The Future of Hardcore\The Future of Hardcore
1496828853    F:\MP3\Friendly DJs\The Future of Hardcore\The Future of Hardcore
1496828857    F:\MP3\Friendly DJs\The Future of Hardcore\The Future of Hardcore
936552000    F:\MP3\Safe\Radio\Sampler\(Sampler)-The Best of MTV\(Brandy)-Almo
936552000    F:\MP3\Safe\Radio\Sampler\(Sampler)-The Best of MTV\(Busta Rhymes
936552000    F:\MP3\Safe\Radio\Sampler\(Sampler)-The Best of MTV\(Cassius)-Cas
[/Nebenschauplatz]

Also mache ich mit dem Change Timestamp weiter und inkludiere Deinen Vorschlag für die Umkehrung der Sortierung.
QUELLTEXT
$filename($getEnv('USERPROFILE')'\Desktop\Test.Playlist.Timestamp.txt',ansi)
$loop($sub(10000000000,%_file_mod_datetime_raw%)
%_file_create_datetime_raw%$char(9)%_path%$loopend()

Und da passiert es nun das er die MTE Datei nicht mehr findet. Allerdings kommt der Fehler nicht sofort sondern erst nachdem der Fortschrittsbalken den ersten Ruck (vergleiche Video) gemacht hat.


Allerdings stelle ich gerade fest das da lediglich eine Klammer fehlt, wo die Loop geöffnet wird.
QUELLTEXT
$filename($getEnv('USERPROFILE')'\Desktop\Test.Playlist.Timestamp.txt',ansi)
$loop($sub(10000000000,%_file_mod_datetime_raw%))
%_file_create_datetime_raw%$char(9)%_path%$loopend()

Das erzeugt dann folgende Ausgabe (Die Zahlen des Timestamps müssten nun von oben nach unten kleiner werden, ODER?)
QUELLTEXT
1496828842    [...]The Future of Hardcore - The Summer Album (2016)\13-(Riko vs. Genic)-Judgement Day
1496828857    [...]The Future of Hardcore - The Summer Album (2016)\14-(Scoot & CS-1)-Hurricane (Mixdown4)
1496828853    [...]The Future of Hardcore - The Summer Album (2016)\15-(Snipes & Murf)-Say You Feel It
1460705640    [...]The Future of Hardcore - The Album (2015)\CD 02\14-(S3RL feat. Mixie Moon & MC Offside)-
1460705538    [...]The Future of Hardcore - The Album (2015)\CD 01\01-(Clowny & Restless)-So Fluffy
1460705542    [...]The Future of Hardcore - The Album (2015)\CD 01\02-(Clowny vs. Genic & Delgado)-This Is A

Also einzeln betrachtet funktioniert es nicht aber wenn man es auf Filepfad Ebene betrachtet stimmt die Sortierung nun.

Da ich nur die 50 Neusten Tracks brauche passe ich das jetzt Exportfile nochmal an, in dem ich die loop auf 50 Tracks beschränke.
QUELLTEXT
$filename($getEnv('USERPROFILE')'\Desktop\Test.Playlist.Timestamp.txt',ansi)
$loop($sub(10000000000,%_file_mod_datetime_raw%),50)
%_file_create_datetime_raw%$char(9)%_path%$loopend()

blink.gif Das war dann wohl zuviel des guten.


Zusammenfassung:
Die Sortierung der Tracks nach neusten Change Timestamp funktioniert nur für die Verzeichnisebene. Innerhalb eines Verzeichnisses wird von ? nach ? sortiert.

Fehlt nur noch die Beschränkung auf eine bestimmte Anzahl von Tracks, also Top50 oder Top 100. Das könnte ich zur Not auf DOS Ebene lösen...

So jetzt qualmt mir der Kopf... w00t.gif

MfG
LostSoul

PS: Sorry für die Zeilenumbrüche in den Listen der Ausgabe aber ich mag die Filenamen jetzt nicht noch mehr kürzen.
DetlevD
QUOTE (Lostsoul @ Jun 9 2017, 13:22) *
CODE
1496828857    F:\MP3\Friendly DJs\The Future of Hardcore\The Future of Hardcore
936552000    F:\MP3\Safe\Radio\Sampler\(Sampler)-The Best of MTV\(Brandy)-Almo

Hmm, %_file_mod_datetime_raw% gibt nur eine Integer Zahl aus ohne besonderes Format, so sollte man eine Formatieranweisung mitgeben, um für den Export eine bessere Spaltenansicht zu bekommen:
$num(%_file_mod_datetime_raw%,11)
... das erzeugt dann ...
CODE
01496828857    F:\MP3\Friendly DJs\The Future of Hardcore\The Future of Hardcore
00936552000    F:\MP3\Safe\Radio\Sampler\(Sampler)-The Best of MTV\(Brandy)-Almo


Beachte auch den Unterschied zwischen ...
%_file_create_datetime_raw%
%_file_mod_datetime_raw%

DD.20170609.1430.CEST
Lostsoul
ZITAT(DetlevD @ Jun 9 2017, 14:18) *
Hmm, %_file_mod_datetime_raw% gibt nur eine Integer Zahl aus ohne besonderes Format, so sollte man eine Formatieranweisung mitgeben, um für den Export eine bessere Spaltenansicht zu bekommen:
$num(%_file_mod_datetime_raw%,11)
... das erzeugt dann ...
QUELLTEXT
01496828857    F:\MP3\Friendly DJs\The Future of Hardcore\The Future of Hardcore
00936552000    F:\MP3\Safe\Radio\Sampler\(Sampler)-The Best of MTV\(Brandy)-Almo

Das würde ich mal mit %_file_create_datetime_raw% probieren...

Ich sollte vielleicht erwähnen das das M3U Playlisten werden sollen. Der Timestamp wird dort nicht mit abgespeichert ist also eigentlich nur zum sortieren nützlich.
Hier mal der Code für MP3Tag. Es funktioniert damit genauso wie ich es wollte (Das ABER kommt weiter unten im Post).
QUELLTEXT
$filename('D:\liquidsoap\playlists\buffer\newstuff.m3u',ansi)
'#EXTM3U'
$loop($sub(10000000000,%_file_mod_datetime_raw%))$puts(FilterStatus,1)

$puts(FilterStatus,$ifgreater($len(%replaygain_track_gain%),0,$get(FilterStatus),0))
$puts(FilterStatus,$ifgreater($strstr(%_folderpath%,'Amazon'),0,0,$get(FilterStatus)))

$ifgreater($get(FilterStatus),0,'#EXTINF:'%_length_seconds%','%ARTIST%' - '%TITLE%
%_path%,)
$loopend()

Wenn Ihr möchtet lege ich auch noch die CMD und VBS Dateien offen mit denen dann in der Kommandozeile die Textdatei nochmal überarbeitet wird.

ZITAT(DetlevD @ Jun 9 2017, 14:18) *
Beachte auch den Unterschied zwischen ...
%_file_create_datetime_raw%
%_file_mod_datetime_raw%

DD.20170609.1430.CEST

Da muss ich jetzt nachfragen was Du damit sagen möchtest?

Ich möchte das nach Create sortiert wird weil eine Änderung in den MP3 Files eigenbtlich nur bei Schönheitskorrekturen auftritt. Und nur weil ich ein Cover oder einen Tag zugefügt habe wird der Track dadurch ja nicht zu einem "Neuen".

Daher wäre mir das Create Datum lieber wie das Change...

Was ich eben auch noch bemerke ist das die erzeugte Playlist noch nicht nach Artist sortiert ist. Ich muss die Datei also wenn Sie fertig ist und nur noch die Top XX beinhaltet beim einlesen durch PHP nach Artist sortieren.

Hier mal ein paar Screenshots wie das ganze eigentlich verwendet wird...



Mal so nebenbei. Ich bin wirklich sehr dankbar das Ihr mir nach den vielen Jahren wieder aus der Patsche helft. Auch die Tips von Ohrenkino waren hilfreich. Ich seid echt Klasse!
DetlevD
QUOTE (Lostsoul @ Jun 9 2017, 14:50) *
... Daher wäre mir das Create Datum lieber wie das Change...

Wenn du den Unterschied kennst und es funktioniert so wie du willst, dann ist es ja gut.

Erstellungsdatum der Datei
%_file_create_date%
Created: 14 July 2016 09:05:45

Änderungsdatum der Datei
%_file_mod_date%
Modified: 12 Aug 2016 11:34:14

See also ...
http://www.techrepublic.com/article/build-...mps-in-windows/

DD.20170609.1613.CEST
Lostsoul
w00t.gif
ZITAT(DetlevD @ Jun 9 2017, 16:13) *
Wenn du den Unterschied kennst und es funktioniert so wie du willst, dann ist es ja gut.

[...]
DD.20170609.1613.CEST

Ich muss zugeben das Du mich jetzt ein wenig verwirrst... Empfiehlst Du mir unterschwellig beim ChangeDate zu bleiben?

Also folgender endgültiger Quelltext ist OPTIMAL für mich.
QUELLTEXT
$filename('D:\liquidsoap\playlists\buffer\newstuff.m3u',ansi)
'#EXTM3U'
$loop($sub(10000000000,$num(%_file_create_datetime_raw%,11)))$puts(FilterStatus,1)

$puts(FilterStatus,$ifgreater($len(%replaygain_track_gain%),0,$get(FilterStatus),0))
$puts(FilterStatus,$ifgreater($strstr(%_folderpath%,'Amazon'),0,0,$get(FilterStatus)))

$ifgreater($get(FilterStatus),0,'#EXTINF:'%_length_seconds%','%ARTIST%' - '%TITLE%
%_path%,)
$loopend()

Den Rest machen die cmd Batches und der PHP Interpreter aber so habe ich zumindest eine Datei wo alle meine Tracks vom CreateDate abwärts sortiert.

PERFEKT! Ihr seid die Besten. DANKE!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2017 Invision Power Services, Inc.