Verzeichnisstruktur einer Videosammlung mit MP3TAG erzeugen

Ich habe begonnen, die Verzeichnisstruktur meiner Videosammlung mit MP3TAG zu erzeugen bzw. zu verändern. Da aber avi, mpg, mkv, vob usw. keine Metadaten speichern können, verwende ich einen mp3-tag-Dummy und editiere diesen mit MP3TAG. Der mp3-tag-Dummy wird sozusagen den Videodaten "angeheftet". Konkret: Jeder Filmtitel erhält ein eigenes Verzeichnis. In der Regel enthält dieses nur eine einzige Datei, nämlich den FILMTITEL.extension. Allerdings ERGÄNZT um eine Null-Byte-Datei mit dem Namen NULLBYTE.mp3.

Diese NULLBYTE.mp3-Datei bearbeite ich mit MP3TAG und vergebe Inhalte an die Felder
ALBUM: Live at Pompeii, the director´s cut
ARTIST: Pink Floyd
CONTENTGROUP: Musik
COMPOSER: (optional)
FILEOWNER: Ral12
TAGGINGTIME: ges
TITLE: nullbyte
YEAR: (optional)

Mit der Aktion Tag-Feld formatieren "_DIRECTORY"
LW:\%taggingtime%\%contentgroup%\%fileowner%\%artist%[%year% - ]%album%[ ++ %composer%]
verschiebe ich die Videodaten (einschließlich mp3-tag-Dummy) in die gewünschte Verzeichnisstruktur.

MP3TAG benutze ich, weil andere Programme versagt haben, beispielsweise EMDB, MyMDb, All My Movies, DVD Profiler, eXtreme Moviemanager 7 und letztlich auch Personal Video Database (PVD). Leider ist für MP3TAG sehr viel Vorbereitungsarbeit erforderlich, die bei etlichen hundert Videos manuell nicht zu leisten ist. Denn: Nicht jedes Video hat in meiner Struktur einen eigenen Ordner! Ich muss also von Hand für jedes Video einen Order anlegen, die Videodatei hinein
schieben und noch eine nullbyte.mp3 hinzufügen.

Mit MP3TAG ist das nicht zu lösen; glaube ich. Visual Basic beherrsche ich nicht. Mit DOS-Stapelverarbeitung (was ich so einigermaßen kann) geht es auch nicht. Ich brauche in etwas folgende Routine:

START
Gehe zu einem bestimmten Verzeichnis
Führe aus SOLANGE noch eine Datei in diesem Verzeichnis vorhanden
... lese den Dateinamen FILMTITEL.extension
... erzeuge Unterordner mit dem Namen FILMTITEL
... verschiebe die Datei FILMTITEL.extension in diesen Unterordner FILMTITEL
... erzeuge in diesen Unterordner FILMTITEL eine Null-Byte-Datei mit dem Namen NULLBYTE.mp3
... nimm die nächste Datei und führe aus
ENDE

Wer hat eine Idee ?

Wenn du die Filmdateiendungen *.avi usw. unter Optionen > Tags hinzufügst kannst du alle Filme in Mp3tag laden und mit dem Konverter neue Ordner erstellen:
String: %_filename%\%_filename%

Danach sollte das Erstellen der dummy Dateien über den Export möglich sein.

Vielen Dank für die schnelle Antwort!

Das habe ich leider nicht verstanden. Ich kann in den *.mpg oder *.avi keine Informationen in den Tagfeldern hinterlegen. Beispielsweise kann ich zwar mit dem Konverter
"$mid(%_filename%,13,40)$left(%_filename%,4)\test"
den Ausdruck "\jagt Dr. No\1962\test-mpg
erzeugen, wenn der bisherige Dateiname "1962 - 007 - jagt Dr. No.mpg" war.
Wahlfreie Informationen sind nicht möglich. Ich kann keinen beliebigen Pfad bilden.

Wie dann das Erstellen der Dummydateien über den Export möglich sein soll, erschließt sich mir nicht.

Da sollen auch keine weiteren Informationen rein.
Deine Frage war doch wie man für jede Filmdatei einen eigenen Ordner + dummy mp3 bekommt.

Für komplexere Pfade hast du dann später die dummy mp3s.

Die Exportdatei kann so aussehen:

$filename(Dummies erstellen.bat)chcp 1252
$loop(%_folderpath%,1)cd "$replace(%_folderpath%*,VIDEO_TS\*,,*,)"
echo.DF>"%_filename%.mp3"
$loopend()

Also eine bat Datei die man dann ausführen muss.

Jetzt habe ich Deine Lösung verstanden. Man muss dreistufig vorgehen.

  1. Verzeichnisse erzeugen und Dateien verschieben mit dem Konverter
    %_folderpath%\%_filename%\%_filename%

  2. Mit Deinem Exportscript eine Bat-Datei erzeugen und schließlich

  3. die Bat-Datei ausführen, um die MP3-Dummys zu erzeugen.

Mit den MP3-Dummys kann ich dann beliebige Verzeichnisstrukturen entwerfen. Nochmals vielen Dank für die (fast)** perfekte Lösung. Für DVD-Rips mit VIDEO_TS muss ich mir was ähnliches ausdenken.

** Deutsche Umlaute öüäßÖÜÄ werden nicht korrekt vom Exportscript umgesetzt.
Hier muss ich vorher alles umbenennen in oe usw.

Für die Umlaute füge der Exportdatei am Anfang ein chcp 1252 ein.
(Habe auch meinen Beitrag angepasst)

... hat zum Erfolg geführt. Danke! Das ganz ist sehr universell. Wenn ich DVD-Rips habe, also Ordner mit dem Unterordner VIDEO_TS, dann füge ich hier von Hand eine Null-Byte.mp3-Datei ein. Einfach VIDEO_TS mit in die Liste zu *.avi und *.mpg aufzunehmen funktioniert nicht.

VIDEO_TS sind eigentlich Dvd Images, keine Rips
Und das Videomaterial ist in VOB Dateien gespeichert.
Also kannst du *.vob hinzufügen. Ein Ordnername gehört da nicht hin.

*.vob hinzufügen habe ich gemacht: funktioniert! Meine DVDs, die ich "gegrabbt" habe, haben alle VIDEO_TS. Dieses Unterverzeichnis ist wohl nur auf DVD nötig. Auf Platte kann es wohl entfallen.

Ich würde diese Ordnerstruktur zur Sicherheit beibehalten.

Habe das Exportskript nochmal angepasst, damit die mp3s nicht im VIDEO_TS Ordner erstellt werden sondern eine Ebene höher.

Mit dieser Checkliste wird die Vorgehensweise übersichtlicher.

  1. Wenn nicht jede Filmdatei einen eigenen Order hat:
    Verzeichnisse erzeugen mit dem Konverter
    %_folderpath%\%_filename%\%_filename%
    Dabei werden die Dateien mit verschoben.
    Wenn jede Filmdatei einen eigenen Order hat entfällt dieser Schritt.

  2. Es werden die jeweiligen Videodateien eingelesen (Einstellungen-Optionen ergänzen).
    Es wird später pro Datei je ein Ordner erstellt. Ggf. müssen überzählige Dateien entfernt (nicht gelöscht) werden. Vgl. 5. Bei *.vob darf es immer nur 1 Eintrag pro DVD sein.
    Mit dem Exportscript (siehe oben) wird eine Bat-Datei erzeugt.
    WICHTIG: Es werden 3 unterschiedliche Scripts benötigt (siehe hier für Beispiel b ).
    a ) für *.avi; *.mpg; .divx; .mkv; .wmv; ..."$replace(%_folderpath%,,)"
    b ) für .vob; (DVD) ..."$replace(%_folderpath%,VIDEO_TS*,,
    ,)"
    c ) für .m2ts; (BD) ..."$replace(%_folderpath%,BDMV\STREAM<b>??? )"

  3. Die ereugte Bat-Datei unmittelbar ausgeführt, um die MP3-Dummys zu erzeugen.

  4. Erneutes Einlesen, diesmal aber nur die MP3-Dummys. Dazu wieder die Einstellungen-Optionen verändern.

  5. Liste bereinigen: Immer nur genau 1 MP3-Dummydatei pro Film, auch darf wg. der Aktion _DIRECTORY nicht zweimal der gleiche Pfad entstehen, ggf. Album ergänzen/ändern.

  6. MP3-Dummys nach Bedarf editieren z.B. %album%, %year%, %genre% usw.

  7. Umstrukturieren durch absoluten Pfad mit Aktion, z.B. _DIRECTORY X:\%contentgroup%\%genre%\%album%[ - %year%] oder
    z.B. _DIRECTORY X:\%contentgroup%$left(%album%,1)\%album%[ - %year%]

Fertig

PS.: Der Workflow läßt sich nicht vollständig standardisieren. Besonderheiten, wie mehrere avi-Dateien pro Film (disk1,disk2 usw.) müssen von Hand nachbearbeitet werden. Die Variablen dürfen am Ende keine Leerzeichen enthalten, da WindowsXP sonst keinen Ordner anlegt.

Hallo Dano,
vielleicht kannst Du mir noch helfen. Ich brauche noch eine Variante für BluRay. Die mp3-Dummy-Datei muss hier 2 Ebenen höher angelegt werden, damit de BD-Struktur erhalten bleibt. Der fragliche Teil ist oben mit ??? gekenzeichnet.

Die überschüssigen Dateinen, die bei *.vob und bei *.m2ts erzeugt werden, entferne ich bis jetzt immer noch manuell. Hast Du eine Idee zur Vereinfachung?

Klappt das nicht?
$replace(%_folderpath%,BDMV\STREAM*,,,)

Übrigens ist auch nur eine bat Datei nötig, die kann alle Fälle 3 Fälle abdecken:
$replace(%_folderpath%,VIDEO_TS*,,BDMV\STREAM*,,,)

Ich weiß nicht genau welche Dateien überschüssig sein sollen, aber wenn du das willst dann könnte auch wieder eine bat Datei helfen. Von Mp3tag erzeugt mit DEL *.erw Kommando.

Noch ein Tipp:
Nimmt man statt dieser dummy Dateien echte Mp3s (möglichst klein) dann können sie auch in Audioplayern mit Medienbibliothek verwendet werden.
Dort kann man dann die Filme noch übersichtlicher verwalten, z.B. Gruppieren, Suchen, Coveransicht, ...

Gibt man dem Dateiennamen der Dummies noch die Dateierweiterung des Films mit, kann man den Film auch über den Audioplayer starten.

bdmv\

Es sind keine Dateien überschüssig. Es war ein Denkfehler von mir. Die BAT-Datei erzeugt genau 1 mp3-Dummy pro VIDEO_TS-Verzeichnis. Ich habe vor dem Erzeugen der BAT-Datei alle VOB-Einträge bis auf 1 gelöscht. Das war überflüssig.

Ansonsten klappt alles prima. Ich habe schon eine große Zahl von Videos geordnet. Die Struktur mit VIDEO_TS und BDMV\STREAM muss allerdings vorher stimmen. Viele meiner Filmverzeichnisse enthalten aber fehlende Unterverzeichnisse, wie
...\Filmtitel\STREAM*.m2ts statt ...\Filmtitel\BDMV\STREAM*.m2ts
oder
...\Filmtitel*.vob statt ...\Filmtitel\VIDEO_TS*.vob

Gibt es da auch nicht sowas ähnliches wie Verzeichnisse erzeugen mit dem Konverter
%_folderpath%\%_filename%\%_filename% ?

Die fehlenden Verzeichnisse erzeugen mit dem Konverter angewand auf die Dummy-Datei
%_folderpath%\BDMV\STREAM\%_filename%
funktioniert jedenfalls nicht.

Zu 1: Ich habe die editierten Null-Byte-Dummydateien in Winamp geladen. Alle Infos werden angezeigt. Die Länge ist jedoch immer 0:00. Welchen Vorteil hätten echte mp3's?
Zu 2: etwa so? nullbytedummy_Faust.avi.mp3 oder nullbytedummy_VIDEO_TS.vob.mp3

Bei den mpg-Containern mag das zutreffen und avi hat wenn dann nur ein sehr rudimentäres System, Matroska hat aber bei weitem das beste Tagsystem, was ich kenne.
Leider ist die Programmunterstützung (noch) etwas mau.

Ich klink mich hier einfach mal ein und beschreib wie ich das mach, hab diese Diskussion leider erst jetzt entdeckt. Ich hab das vor einiger Zeit ja schon mal hier beschrieben: Welche Programme nutzt ihr zum Anlegen einer Filme Medienbibliokthek?

Seit dem hab ich das ein bisschen verfeinert. Ähnlich wie Dano erzeuge ich auch die .tta Datei automatisch mit der Export Funktion.
Für meine Arbeitsweise habe ich mir auch einige spezielle Aktionsgruppen angelegt.
Vor der ersten Aktionsgruppe lese ich alle zu bearbeitenden Filmeordner (eine Ornder = ein Film) in Mp3tag ein und markiere jeweils nur die Video Dateien (meistens .avi., mann kann auch danach filtern, wenn man viele Filme auf einmal bearbeitet)
Vor der zweiten Aktionsgruppe drücke ich erst einmal F5 um die Ornder neu einzulesen und filtere dann nach den neu erszeugten .tta Dateien. Die zweite Aktionsgruppe schreibt dann die Namen der zugehörigen Videodateien, ihre Anzahl und ihre Gesamtgröße in die jeweiligen .tta Dateien.

Anfang Aktionengruppe &Video#&1 Export folder list and generate tta files

Aktion #1
Aktionstyp 15: Export
Skriptdateiname auswählen: __movie folder & file list
Exportdateiname _________: C:\Users\pone\Videos\mp3tag_folderlist.txt

[_] Daten anhängen [_] Eine Datei pro Verzeichnis

Aktion #2
Aktionstyp 15: Export
Skriptdateiname auswählen: __movie generate tta files for each folder
Exportdateiname _________: %_folderpath%zzz__info file.tta

[_] Daten anhängen [X] Eine Datei pro Verzeichnis

Ende Aktionengruppe &Video#&1 Export folder list and generate tta files (2 Aktionen)

Die dazugehörigen Export Skripte:
__movie folder & file list:

$filename(C:\Users\pone\Videos\mp3tag_folderlist.txt,utf-8)$loop(%_folderpath%)%_folderpath%zzz__info file.tta | %_total_files% | %_total_size% | $loop(%_filename_ext%)%_filename_ext%>$loopend()
$loopend()

__movie generate tta files for each folder:

$filename(%_folderpath%zzz__info file.tta),ansi)

Anfang Aktionengruppe &Video#&2 Import folder list to tta files

Aktion #1
Aktionstyp 14: Textdatei importieren
Feld ____: TEMP
Dateiname: C:\Users\pone\Videos\mp3tag_folderlist.txt

Aktion #2
Aktionstyp 7: Tagfelder importieren
Quellformat : $regexp(%temp%,.$replace(%_path%,,\\,.,.,+,+,'(','(',')',')',{,{,},},'[','[',']',']',^,^,' ,'\ ) | (.+?)$.,$1)
Formatstring: %files% | %filmsize% | %filenames%

Aktion #3
Aktionstyp 9: Tagfelder entfernen
Folgende Tagfelder entfernen (mit Semikolon getrennt): TEMP

Aktion #4
Aktionstyp 5: Tagfeld formatieren
Feld _______: FILENAMES
Formatstring: $regexp(%filenames%,>$,)

Aktion #5
Aktionstyp 16: Tagfelder aufteilen
Feld _______: FILENAMES
Trennzeichen: >

Ende Aktionengruppe &Video#&2 Import folder list to tta files (5 Aktionen)

Danach folgt dann noch eine Aktion, die den Namen dese Filmes aus dem Orndernamen errät. Dann meine imdb web scripte, die ich vorhin im anderen Thema angehängt habe, anschließend noch eine Trennung der multi value tag-felder und in ein extra Feld eine Notiz, in welcher Sprachversion (englisch oder deutsch) ich den Film habe, ab und zu auch angaben wie Directors Cut ähnliches Zeug.

Ich habe die Checkliste vom 2.9.12 über die Vorgehensweise überarbeitet.

1. Vorbereitungen
1.1 Grundsätzliche Ornderstruktur überprüfen.
Einzel-Filmdateien brauchen eigenen Ordner, siehe 1.2
Mehrere Dateien eines Films avi1/avi2 kommen in einen gemeinsamen Ordner (nicht zwingend).
Bei SERIE kommen Episoden e01/e02/e03/... in einen gemeinsamen Ordner (nicht zwingend). Jede Staffel erhält so einen eigenen Ordner.
vob-Dateien (DVD) erfordern einen Ober-Ordner VIDEO_TS.
m2ts-Dateien (BD) erforder zwei Ober-Ordner BDMV\STREAM.

1.2 Wenn nicht jede Filmdatei einen eigenen Order hat:
Verzeichnisse erzeugen mit dem Konverter (ALT+1)

%_folderpath%\\%_filename%\\%_filename%

Dabei werden die Dateien mit verschoben.
Wenn jede Filmdatei einen eigenen Order hat entfällt dieser Schritt 1.2.

2. MP3-Dummys erzeugen, an denen später die Filmdateien "angeheftet" werden.
2.1 Zunächst Es werden die jeweiligen Filmdateien eingelesen.
Dazu müssen vorher die Einstellungen-Optionen "Tags" folgendermaßen ergänzt werden:
*.avi; *.mpg; *.divx; *.mkv; *.wmv; *.vob; *.m2ts; *.ts
2.2 Mit dem Exportscript 2.3 wird eine Bat-Datei erzeugt.
2.3

$filename(_mp3-Dummies_erstellen.bat)chcp 1252
$loop(%_folderpath%,1)cd "$replace(%_folderpath%*,VIDEO_TS\*,,BDMV\STREAM\*,,*,)"
echo.DF>"%_filename_ext%.mp3"
$loopend()
Pause

3. Die erzeugte Bat-Datei wird unmittelbar ausgeführt, wenn "Datei anzeigen" gewählt wird.

4. Erneutes Einlesen, diesmal aber nur die MP3-Dummys. Dazu wieder die Einstellungen-Optionen "Tags" verändern; also
*.avi; *.mpg; *.divx; *.mkv; *.wmv; *.vob; *.m2ts wieder löschen.

5. Konverter Dateiname-Tag
\%album%\%title%
Soll das Source-Script von pone angewandt werden, müssen in TITLE erkennungsfähige Filmtitel stehen; ggf. durch %album% ersetzen und von Hand nacharbeiten.

6. Editieren
6.1 Source-Script von pone anwenden, siehe .
6.2 MP3-Dummys nach Bedarf editieren z.B. %album%, %year%, %genre%, %contentgroup% usw.
6.3 %artist%, %genre%, %country% sind multi-value Tag-Felder und entsprechend zu behandeln siehe hier) in einfache Tag-Felder mit Komma-Trennung umgesetzt werden.

$trimRight($regexp($meta_sep('ARTIST',', ')', ','^((?:.+?, ){1,3}).*$','$1'),', ')

6.4 Die Variablen dürfen am Ende keine Leerzeichen enthalten, da WindowsXP sonst keinen Ordner anlegt; daher $trim anwenden!

7. Umstrukturieren durch absoluten Pfad mit Aktion, z.B.
_DIRECTORY X:\%contentgroup%$left(%genre%,5)\%album%[ - %year%][ $left(%country%,2)] oder
_DIRECTORY X:\%contentgroup%\upper($left(%album%,1))\%album%[ - %year%][ $left(%country%,2)]

Ich verwende
_DIRECTORY $left(w:\%contentgroup%$left(%genre%,5)$left(%album%[ - %year%][ $left(%country%,2)][ = %albumartist%][ # %artistSort%][ + %mediatype%][ @ $left(%rating%,3)][ '''' $mid(%unsyncedlyrics%,5,50)],185)\%title%,220)
MEDIATYPE habe ich vorher durch $right(%title%,3) ersetzt. ARTISTSORT dagegen durch den Formatstring von DetlevD entspr. 6.3.
In CONTENTGROUP steht bei mir Filme, Serie, Musik oder Dokum.

Fertig

PS.: pone hat noch ein neues Script für _IMDB_Pone___Search_by__Title.src angekündigt.
Nachtrag: Das neue Web-Source-Script steht hier.

Um Interpreten-Bilder einzubinden, habe mp3-Dummy-Dateien erzeugt mit $filename(MP3-Dummies_erstellen__artist.bat)chcp 1252

$loop(%_folderpath%,1)cd "%_folderpath%"
cd ..
echo.DF>"_artist.jpg.mp3"
$loopend()
pause und diese bat-Datei dann ausgeführt.

Ich möchte nun die "Lücken" auffüllen. Es soll also nur eine Dummy-Datei in dem Ordner erzeugt werden, in dem noch keine _artist.jpg.mp3 vorhanden ist. Ich würde sonst die vorhandenen mit Bilder versehenden Dateien überschreiben.

Wie muss ich das Script ändern?

Das Script funktioniert bis heute einwandfrei. Meine Filmsammlung habe ich damit bestens kategorisieren und standardisieren können. Als Nächstes soll meine Musikvideosammlung (Konzerte, keine Clips) geordnet werden. Die IMDB ist inhaltlich ungeeignet. Wer kennt Alternativen?