Source-Script für www.imdb.de

Dano hat mir bei "Verzeichnisstruktur einer Videosammlung mit MP3TAG erzeugen" sehr geholfen. Siehe
Verzeichnisstruktur einer Videosammlung mit MP3TAG erzeugen

Ich habe nach diesem Schema schon etliche Filme bearbeitet. Um Genre und Jahr zu vervollständigen, habe ich jeweils in www.imdb.de nachgeschaut und das Ergebnis manuell in MP3TAG übertragen; manchmal auch Regie und Darsteller. Nach einiger Zeit kommt natürlich der Wunsch auf, ein Source-Script zu verwenden. Dazu habe ich mir das Source-Script für Last.fm "Get the first 3 Top Tags as Genre to categorize your music" von Dano angesehen und bin zu dem Schluss gekommen: Selbst ein Source-Script zu entwickeln übersteigt bei Weitem meine Möglichkeiten.

Bei www.imdb.de habe ich in das Suchfeld lediglich den Filmtitel (bei mir %album%) eingegeben und das Ergebnis in Jahr (bei mir %year%) und Genre (bei mir %genre%) ersetzt; manchmal auch Regie (bei mir %artist%) und die ersten drei Darsteller (bei mir %albumartist%). Das o. g. Source-Script umzuschreiben würde mir nicht gelingen. Ein Source-Script für www.imdb.de habe ich nicht gefunden.

Gibt es irgendwo sowas ähnliches für www.imdb.de? Vielleicht interessieren sich noch andere MP3TAG-Anwender für die "Verzeichnisstruktur einer Videosammlung". In dem o. g. Last.fm-Source-Script gibt es nur eine if-do-while-Schleife nach outputto "Genre". Wenn sich jemand in der Lage sieht, das Last.fm-Source-Script für für www.imdb.de so abzuändern, dass ich eben auch nur "Genre" zurück erhalte, wäre mir schon sehr geholfen.

Ich danke im voraus!
Manfred

Manfred, ich habe null Ahnung von imdb.de, war aber eben 'mal ganz kurz neugierig, und lese dort ...
http://www.imdb.com/interfaces
... dass man sich "The Plain Text Data Files" herunterladen kann und extern durchsuchen kann.
Vielleicht wäre das etwas für dich?

DD.20121007.2147.CEST

hast du das hier gesehen?
/t/9299/1

Ich hab das auch mal für meine Zwecke umgebaut, siehe Anhang.

_IMDB_Pone___Search_by__Title.src (6.38 KB)

_IMDB_Pone_Direct_by_Release__ID.src (4.65 KB)

Danke! Werde ich ausprobieren.

Das Source-Script für www.imdb.de funktioniert perfekt. Vielen Dank! Es werden jede Menge Daten in den MP3-Dummy geschrieben. Die Felder ARTIST, GENRE und COUNTRY sind allderdings Multi-Value-Felder. Mit denen komme ich nur umständlich zurecht. Mit der Aktion _DIRECTORY möchte ich nur die ersten drei Darsteller in den Dateinamen übernehmen. Das mache ich jetzt sehr umständlich in drei Schritten.

  1. Zusammenfassen mit | als Trennzeichen in ein Temp-Feld
  2. Regulärer Ausdruck $1, $2, $3 in ein Temp-Feld
  3. Aktion _DIRECTORY mit dem Temp-Feld

Gibt es da einen direkten Weg über _DIRECTORY so ähnlich wie W:\%genre%\%title% - %year% - NUR_DIE_ERSTEN_DREI(%artist%)

Nur die ersten drei Artisten aus einem multi-value Tag-Feld ARTIST ...

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

DD.20121009.1753.CEST

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.