Source-Script für www.imdb.de

Danke für die schnelle Antwort. Leider funktioniert die Formel nicht im Zusammenhang mit Aktion _directory.
$left(%genre%,5)\%album%[ - %year%][, $trimRight($regexp($meta_sep(ARTIST,';')';','^((?:.+?;){1,3}).*$','$1'),';')]
Der Pfad besteht nur aus GENRE, ALBUM und YEAR. ARTIST fehlt ganz.

Ich habe versucht per WS_ ftp unter ftp://ftp.fu-berlin.de/pub/misc/movies/database/ als anonymous herunterzuladen. Ich habe keinen Zugriff.

Manfred, warum WS_FTP bei dir nicht funktioniert, das weiß ich nicht.
Ansonsten funktioniert der Zugriff und Download ... z. B. direkt aus dem IE Browser mit dieser URL.
Wenn die Web-Seite mit dem Inhaltsverzeichnis des FTP-Verzeichnisses im IE Browser sichtbar ist, dann kann man auch via Menü "IE/Ansicht/FTP-Site in Windows Explorer öffnen" mit dem Explorer navigieren.
Oder ohne IE Browser ... die URL direkt in die Adresszeile des Explorers eintragen, das funktioniert auch.

DD.20121010.1430.CEST
Edit.DD.20121012.0633.CEST

Es funktioniert nicht, weil der zusammengebaute Formatstring nicht korrekt ist.
Der Operator "Eckige Klammer" funktioniert wohl nur mit einem echten Tag-Feld.
Das hatten wir aber schon einmal herausgefunden, oder nicht?

Der Ausdruck ...

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

... funktioniert, ...
... aber wenn man ihn mit eckigen Klammern umgibt ...
[$trimRight($regexp($meta_sep(ARTIST,';')';','^((?:.+?;){1,3}).*$','$1'),';')]
... dann funktioniert er nicht ...
... bzw. der Ausdruck funktioniert schon, aber der Operator "Eckige Klammer" [...] kann das Ergebnis offensichtlich nicht in deinem Sinn benutzen (Syntax Error).

Du kannst ein temporäres Tag-Feld mit dem funktionierenden Ausdruck formatieren, und dann das temporäre Tag-Feld in dem Ausdruck verwenden, mit dem du das Pseudo Tag-Feld _DIRECTORY mit einer Aktion "Tag-Feld formatieren" beschreibst.

Oder so geht es auch ...

'\'$left(%GENRE%,5)'\'%ALBUM%[' - '%YEAR%]$if($eql(%ARTIST%,%DUMMY%),%DUMMY%,', '$trimRight($regexp($meta_sep('ARTIST',';')';','^((?:.+?;){1,3}).*$','$1'),';'))

DD.20121010.1520.CEST

Danke für die schnelle und ausführliche Anwort. Wenn ich nur die ersten beiden Darsteller haben will, habe ich die 3 einfach in eine 2 geändert. Das funktioniert. Ich möchte noch als Trennzeichen nicht ein Semikolon ohne Leerzeichen sondern ein Komma mit Leerzeichen haben. Ich habe mich aber nicht an $trimRight($regexp($meta_sep(ARTIST,';')';','^((?:.+?;){1,3}).*$','$1'),';') herangewagt. Ist es richtig dreimal ';' gegen ', ' zu tauschen?

Hm, es sind vier Vorkommen ...

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

... und das sollte auch funktionieren.

DD.20121010.1710.CEST

Danke für Deine Mühe. Aus zeitlichen Gründen kann ich die neue Formel erst in nächsten Tagen testen.

Allerdings: Mit den Multi-Value-Feldern komme ich nicht wirklich so richtig klar.

Entweder wird es so angezeigt:
ARTIST Aaron Taylor-Johnson\\Jasper Harris\\Carole Boyd\\Bob Goody\\Jim Carter\\...

Oder aber so:
ARTIST Aaron Taylor-Johnson
ARTIST Jasper Harris
ARTIST Carole Boyd
ARTIST Bob Goody
ARTIST Jim Carter
ARTIST ...

Scheinbar (ich bin mir nicht ganz sicher) hat dies auch Einfluss auf die Pfadstuktur bei der Aktion _directory. Ich habe den Effekt gehabt, das aus jedem Multi-Value-Feld ein Unterverzeichnis wurde (was nicht beabsichtigt war!). Solange ich nicht sicher damit umgehen kann, werde ich deren Anwendung vermeiden. Die MP3TAG-Hilfe ist leider dazu sehr kurz gehalten.

Ich könnte dir auch das Skript umschreiben. Komma oder ähnliches anstatt Multi-Value wär gar kein Problem. Wenn den nur immer die ersten drei möchtest, sollte das auch irgendwie gehen.
Schreib einfach wie du es gern hättest.

Danke für Dein großzügiges Angebot:

Nach meinem Dafürhalten sind Multi-Value-Felder nur:
Artist, Genre und Country.
Könnte auch Albumartist ein Multi-Value-Feld sein?.

Die Belegung stelle ich mit folgendermaßen vor:

DIRECTOR "albumartist" - kein Multi-Value-Feld - mehrere Einträge durch Komma leer getrennt.
GENRE "genre" - kein Multi-Value-Feld - mehrere Einträge durch Komma leer getrennt.
COUNTRY "country" - kein Multi-Value-Feld - mehrere Einträge durch Komma leer getrennt.
Die Information der gesammten Darstellerliste möchte ich mit gern erhalten. Dashalb wäre für mich ein zusätzliches Feld wünschenwert: Nur die ersten drei Darsteller
ACTORS_3 "artistsort" - kein Multi-Value-Feld - mehrere Einträge durch Komma leer getrennt.

Ich bin mir nicht so ganz sicher, ob man ACTORS "artist" unverändert läßt oder auch mit Komma leer trennen sollte.

... leider nicht.
Ich habe Deine "Formel" von ARTIST auf ARTISTSORT angewandt:
$trimRight($regexp($meta_sep('ARTIST',', ')', ','^((?:.+?, ){1,3}).*$','$1'),', ')
Ich erhalte nur den ersten Darsteller.
Der Feldinhalt von ARTIST war "Harrison Ford\\Cate Blanchett\\Karen Allen\\Shia LaBeouf\\Ray Winstone\\John..."

Hm, Manfred, ...
soeben habe ich deine Artisten in ein Multi-Value Tag-Feld ARTIST eingetragen:
"Harrison Ford\\Cate Blanchett\\Karen Allen\\Shia LaBeouf\\Ray Winstone\\John"
Dann habe ich den Formatstring ...
$trimRight($regexp($meta_sep('ARTIST',', ')', ','^((?:.+?, ){1,3}).*$','$1'),', ')
... gegen das Tag-Feld ARTIST angewendet und das Ergebnis erhalten:
"Harrison Ford, Cate Blanchett, Karen Allen".
Es funktioniert also fehlerfrei.

DD.20121012.2230.CEST

Ja, aber nur unter bestimmten Voraussetzungen. Die habe ich nicht beachtet. Ich habe beides ausprobiert. Dazu folgende Beschreibung:

Ich weiß nicht, ob die folgende Aussage über Multi-Value-Feldern richtig ist: Es gibt 2 Varianten der Darstellung!?

Variante 1: Entweder wird es so angezeigt:
ARTIST Aaron Taylor-Johnson\\Jasper Harris\\Carole Boyd\\Bob Goody\\Jim Carter\\...

Variante 2: Oder aber so:
ARTIST Aaron Taylor-Johnson
ARTIST Jasper Harris
ARTIST Carole Boyd
ARTIST Bob Goody
ARTIST Jim Carter
ARTIST ...

Nun habe ich Deine "Formel" auf das Feld ARTISTSORT angewandt.
Es funktioniert, wenn im Feld ARTISTSORT kein Eintrag oder nur ein einfacher Eintrag vorhanden ist.
Es funktioniert nicht, wenn im Feld ARTISTSORT bereits ein Eintrag der Form "Variante 2" vorhanden ist.
Letzteres war bei mir aus vorigen Versuchen der Fall; daher meine Fehleinschätzung.

Ich muss also künftig diese Randbedingung überprüfen unf ggf. diese Felder vorher löschen. Das ist aber gar nicht so einfach. Es geht nämlich immer nur einzeln. Markiere ich mehrere Datensätze, wird offentlichtlich nicht alles gelöscht. Bei erneuter Anwendung Deiner "Formel" erhalte ich dann wieder nur den ersten Eintrag.

Also, diese Multi-Value-Felder erscheinen mir doch sehr suspekt.

Es gibt keine Varianten, denn Mp3tag speichert jedes "multi-value" Tag-Feld immer in demselben dafür vorgesehenen technischen Format.

... ist, aber was hat das für einen Sinn?

Auch wenn mehrere Dateien zur Bearbeitung selektiert sind, so arbeitet Mp3tag nacheinander immer nur mit einer Datei.
Was hat dieses Problem mit Metadaten zu tun?

Durch diesen Beitrag ...
Multi-value storage non-complies with ID3 V2.3, V2.44
[X] Multi-value storage non-complies with ID3 V2.3
... ist klargestellt wie Mp3tag "mehrwertige" oder "multi value" Tag-Felder intern speichert.
Mp3tag verwendet als Trennzeichen zwischen den Listenelementen das nicht als Text darstellbare Zeichen "binäre Null".

Praktisch ist ein "multi value" Tag-Feld eine Liste von Zeichenketten, die semantisch zusammengehören und unter demselben Tag-Feld Namen verwaltet werden.

Im Mp3tag Dialog "Extended Tags..." wird das so dargestellt:
ARTIST=Aaron Taylor-Johnson
ARTIST=Jasper Harris
ARTIST=Carole Boyd
ARTIST=Bob Goody
ARTIST=Jim Carter

In Mp3tag Dialog Eingabefeldern wird das so dargestellt:
Aaron Taylor-Johnson\\Jasper Harris\\Carole Boyd\\Bob Goody\\Jim Carter

Mp3tag übersetzt die technische "binäre Null" in eine praktische Ersatzdarstellung, die von Menschen lesbar ist.
Im Mp3tag Dialog "Extended Tags..." geschieht das im Format der "vertikalen Liste" von einzelnen Tag-Feld Werten unter dem gemeinsamen Tag-Feld Namen.
In anderen Dialogen oder Anzeigen geschieht das im Format der "horizontalen Liste".
In der horizontalen Liste verwendet Mp3tag die Trennsequenz "zwei Backslash Zeichen" (\\), weil das eine Zeichenkette ist, die sehr selten für andere Zwecke gebraucht wird.

Mp3tag stellt besondere Skriptfunktionen für Tag-Felder bereit, die sogenannte Metadaten enthalten:
$meta(x) liefert den Inhalt des Feldes x (z.B. $meta(artist)).
Falls mehrere Felder mit diesem Namen existieren, werden die Werte mit ", " getrennt.
$meta(x,n) liefert den n-ten Wert des Feldes x (wobei n bei 0 beginnt, z.B. $meta(artist,1)).
$meta_sep(x,sep) liefert den Inhalt des Feldes x (z.B. $meta_sep(artist,; )).
Falls mehrere Felder mit diesem Namen existieren, werden die Werte mit sep getrennt.

Für besondere Anwendungszwecke kann man als Benutzer mit der Funktion $meta_sep(x,sep) selbst bestimmen, welche Trennsequenz verwendet werden soll, z. B. ...

$meta_sep('ARTIST','+++')

... erzeugt die horizontale Liste ...
Aaron Taylor-Johnson+++Jasper Harris+++Carole Boyd+++Bob Goody+++Jim Carter

$meta_sep('ARTIST',', ')

... erzeugt die horizontale Liste ...
Aaron Taylor-Johnson, Jasper Harris, Carole Boyd, Bob Goody, Jim Carter

Bei einer Textausgabe via Export könnte man jeden einzelnen Wert eines "multi value" Tag-Feldes in eine separate Zeile schreiben, so dass man eine vertikale Liste erhält ...

$meta_sep('ARTIST',$char(13)$char(10))

... erzeugt die vertikale Liste ...
Aaron Taylor-Johnson
Jasper Harris
Carole Boyd
Bob Goody
Jim Carter

Wie man sieht gibt es mehrere Varianten der Darstellung für "multi value" Tag-Felder.

In diesem Beitrag ...
/t/12748/1
... ist ein Export-Skript bereit gestellt, dass "multi-value" Tag-Felder ausgeben kann.

In diesem Beitrag ...
Working with multiple value tags
... wird das Problem beschrieben, dass ein "multi value" Tag-Feld mit der Aktion "Tag-Feld formatieren" nicht kopiert werden kann. Es wird nur der erste Teil-Wert übernommen.

In diesem Beitrag ...
/t/13494/1
... gibt es Hilfestellung zur Umwandlung von "multi value" nach Textliste und zurück.
Siehe auch ... Aktion "Tag-Feld aufteilen".

Und ... wie gesagt ... mit dem Tag-Feld ARTISTSORT funktioniert dieser Formatstring ...

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

DD.20121013.1140.CEST

Danke für die ausführliche Beschreibung. Mir ist vieles klarer geworden. Außerdem hast Du mir wertvolle Anregungen gegeben.

Meine Beschreibung war vielleicht etwas ungenau, deshalb hier ein Sceenshot.
Unter Erweiterte Tags erhalte ich die horizontale Liste bei ARTIST und die vertikale Liste bei ARTISTSORT. Bei anderen Einträgen ist vertikale Liste bei ARTIST.





Dein Formatstring funktioniert, wenn "Erweiterte Tags" für ARTIST die vertikale Liste zeigt. Gründe dafür konnte ich nicht ermitteln.



Frage: Von wo oder wie "erhältst du die horizontale Liste bei ARTIST"?

Wenn man den Inhalt von ARTIST im Dialog "Erweiterte Tags..." als horizontale Liste sehen kann, dann handelt es sich dabei nicht um ein multi-value Tag-Feld, sondern um ein normales Tag-Feld.

Wenn mit "erhalten" gemeint ist, dass die Daten mit einem Websource-Skript geholt werden, dann darfst du danach das nochmalige Speichern der Datei nicht vergessen, denn erst beim Speichern macht Mp3tag aus der horizontalen Liste ein echtes multi-value Tag-Feld.
Auf diese Besonderheit wurde im Forum schon hingewiesen (von pone?).

DD.20121013.1911.CEST

zu Abs. 1: Ich erhalte die horizontale Liste bei ARTIST m Dialog "Erweiterte Tags..."

zu Abs. 2: Jetzt ist mir klar, warum Dein Formatscript nicht funktioniert hat. ARTIST war gar kein multi-value Tag-Feld.

zu Abs. 3: Die Daten stammen aus dem Websource-Skript IMDB. Ich habe wohl nur einige Datensätze editiert und die dann gespeichert. Das erklärt, dass dann Dein Formatscript einwandfrei funktioniert hat! Nur dies ware wirkliche multi-value Tag-Felder.

Danke für diese Deine Analyse.

Hier die überarbeiteten Web Skripte so wie von die gewünscht.

Bei Actors / Artist hab ich jetzt Mulitvalue gelassen. Du kannst das aber leicht selber ändern. Ich hab die betreffende Zeile im Skript mit einem Komentar gekennzeichnet und die alternative Zeile für ein normales Tag Feld direkt darunter geschrieben. Wenn du das ändern willst, das Rauten Zeichen # am Zeilenanfang eine Zeile nach oben verschieben. Eine Raute markiert in der Web Sources Programmsprache immer einen Kommentar, alles dahinter ist quasi deaktiviert.

Das mit den Mulit-Tag-Feldern ist wirklich ziemlich umständlich in Mp3tag. Hab das des öfteren schon zur Verbesserung angeregt, da scheint sich aber nicht viel zu tun.
Ich zerlege die Multi-Tag-Felder mitlerweile immer mit folgender Aktionsgruppe:

Anfang Aktionengruppe &Video#&Multitag Felder trennen (nach IMDB Script)

Aktion #1
Aktionstyp 16: Tagfelder aufteilen
Feld _______: ARTIST
Trennzeichen: </b>

Aktion #2
Aktionstyp 16: Tagfelder aufteilen
Feld _______: COUNTRY
Trennzeichen: </b>

Aktion #3
Aktionstyp 16: Tagfelder aufteilen
Feld _______: GENRE
Trennzeichen: </b>

Ende Aktionengruppe &Video#&Multitag Felder trennen (nach IMDB Script) (4 Aktionen)

_IMDB_Pone_mbaa3___Search_by__Title.src (6.99 KB)

_IMDB_Pone_mbaa3_Direct_by_Release__ID.src (5.26 KB)

Danke für das Websource-Skript IMDB. Ich habe es sofort ausprobiert. Einwandfrei! wozu ist eigentlich das zweite Script?

Das erste ist um anhand des Film Titels zu suchen.
Das zweite um mit der IMDB ID-Nummer (die Nummer in der URL eines Filmes, beginnend mit tt...) direkt auf einen Film zuzugreifen. Falls sich mal der Fall ergibt, dass die Suche über das Skript nichts findet oder zu unübersichtlich ist, man aber den Film im Web Browser gefunden hat. Dann einfach die ID Nummer kopieren und für die Suche verwenden. Brauch ich aber eigentlich auch nie, da die Suche ganz gut funktioniert.