Neue Aktion: YEAR --> Dateiänderungsdatum


#1

Hallo zusammen!

Immer wieder völlig erstaunt über die unglaubliche Funktionsfülle dieses Super-Programms würde ich mir noch folgendes neue Feature wünschen:

In das Tag YEAR pflege ich das Album-Release-Datum im ISO 8601-Format ›JJJJ-MM-TT‹ einzutragen, soweit vollständig bekannt.

Im Anschluss an die Bearbeitung mit MP3Tag starte ich dann bisher immer ein touch-Script, das mir dieses Datum als File Modification Date im Dateisystem hinterlegt, wobei die Stunde auf 0 und die Minute auf die jeweilige Track Number gesetzt werden. Wenn in YEAR nur das Jahr hinterlegt ist, werden Monat und Tag jeweils auf 1 gesetzt.

Ein typischer Dateieintrag sieht dann etwa so aus:

2005-07-18 00:12 | heap, imogen - speak for yourself -- 12 - the moment i said it.flac
Könnte das nicht MP3Tag per Mausklick für mich erledigen? Und natürlich für alle, die das vielleicht auch interessant finden?

Beste Grüße an alle und einen dicken Daumen hoch an Florian und das MP3Tag-Team!

RJ


#2

Ein externes Skript lässt sich als "Tool" konfiguriert aus Mp3tag heraus ausführen.
Vielleicht zeigst du uns 'mal das Skript, dann könnte man besser sagen, was zu tun ist.

Übrigens ... in welchem Zeitabschnitt oder Zeitrahmen funktioniert diese "Zeitstempelroutine" eigentlich fehlerfrei?

Was ist, wenn Titel in einem Album unterschiedliche Veröffentlichungsdaten haben?

DD.20120621.2002.CEST
Edit.20120622.1420.CEST


#3

Yup, nur handelt es sich hierbei mitnichten um ein CMD-Script oder Windows Batch File und ich hatte offen gesagt bislang noch nicht den Elan auszuprobieren, ob MP3Tag (mittels Cygwin) auch bash Scripts auszuführen vermag. Vermutlich geht es.

Mach ich. Hier ist es in seiner primitivsten Form:

#!/bin/bash

dr=$1
dt=$2
ff=$3

cd "$dr"

i=0
for file in *.$ff
    do
        i=$(($i+1))
        touch -m --date="$dt 00:"$i "$file"
    done  

cd ~/Desktop

exit

Der erste Parameter ist das zu verarbeitende Verzeichnis, der zweite das zu touchende Datum und der letzte der Dateityp.

Aufruf also z.B. mit:

./audiotouch.sh "/home/xyz/Musik/Moderne/xyz/heap, imogen/[2005] speak for yourself" 2005-07-18 flac

Kommt darauf an: GNU touch kann m.W. Zeitstempel von 1901-12-13 21:45:52 bis 2038-01-19 04:14:07 setzen (möglicherweise in 64-Bit-Umgebungen bedeutend weiter gespreizt). Damit funktioniert meine Stempelmaschine immerhin für Album Releases von 1901-12-14 bis 2038-01-19.

Eine wesentliche Einschränkung stellt aber u.U. das Dateisystem dar, in dem die Audio Files liegen. Ältere Windows Dateisysteme (FAT/FAT32) können Kalenderdaten vor 1970-01-01 00:00:00 oder sogar vor 1980-01-01 00:00:00 womöglich gar nicht speichern, wohingegen NTFS kein Problem damit hat. Im Windows Explorer wird vor 1980-01-01 00:00:00 allerdings überhaupt kein Datum mehr angezeigt, während MP3Tag noch runter geht bis 1970-01-01 00:00:00, dem Beginn der UNIX-Epoche.

Meine eigene Audio-Sammlung liegt auf einem linuxoiden NAS mit ext4-Filesystem, da passt das.

Eine weitere, viel profanere Einschränkung meines Zeitstempelmechanismus' ist natürlich die blöde Tatsache, dass die Stunde nur 60 Minuten hat, ein Album also maximal 59 Tracks aufweisen sollte …

Eine berechtigte Frage -- und vielleicht ein Grund mehr, einen Profi wie MP3Tag die Zeitstempelung übernehmen zu lassen, dem die Einzel-Release-Daten ja direkt vorliegen.

In meiner Kollektion ist allerdings das einheitliche VÖ-Datum des Albums der Regelfall. Die wenigen Ausnahmen wurden bislang einfach manuell bedient.

Unterm Strich könnte man doch sagen: Wenn MP3Tag eine solche Zeitstempelung anböte, müsste sie ja nicht notwendigerweise für 100% aller Fälle funktionieren und somit gar nicht immer verfügbar sein. Wenn bspw. das zugrundelegende OS eine Einschränkung darstellt, kann man sicher damit leben, dass die Funktion für Einzelfälle disabled ist. Die Mehrzahl der Releases aller Alben, mit denen MP3Tag so zu tun bekommt, dürfte sicherlich innerhalb des kritischen Datumsbereichs liegen. Denke ich.

Beste Grüße,
RJ


#4

'suntoucher', erst einmal vielen Dank für die ausführliche Rückmeldung.
Deine Ausführungen entsprechen weitgehend dem, was ich auch herausgefunden habe.

Zum Beispiel ...
Win-XP
Explorer-Eigenschaften NTFS = Mittwoch, 1. Januar 1800, 00:07:00
Explorer =
Mp3tag-Eigenschaften = 1970-01-01 01:00:00

Genau so ist es.

Was soll eigentlich der Sinn des Zeitstempels sein?
Bei einem Album/Compilation mit unterschiedlichen Releasedates je Track, wird das doch zu einem Durcheinander.
Und überhaupt, wen interessiert das Dateidatum, wenn doch der Inhalt, die Tagfelder, die interessanten Daten enthalten?
Was ist, wenn das Releasedate zu einem Titel noch nicht bekannt ist, und das Tagfeld YEAR leer ist?
Welches Ersatzdatum soll dann verwendet werden?
Was ist, wenn z. B. ein Trackfile aus irgendeinem Grund noch in der Sammlung fehlt?
Wie soll dann nummeriert werden?

Du kannst die beiliegende MTE/VBS Datei ausprobieren, ob sie für den gedachten Zweck brauchbar ist.
20120622.SetFileModDateTime.1.0.mte (7.51 KB)
DD.20120622.2035.CEST

20120622.SetFileModDateTime.1.0.mte (7.51 KB)


File-Datum zuweisen / aus Tag generieren