Welche API zur Ermittlung der IMDb-ID

  • Hallo,

    bei meiner etwas größeren Mediensammlung (allein ~4,5k Filme) ist eine manuelle Verwaltung zeitlich mittlerweile nicht mehr zu bewältigen. Daher möchte ich gerne einen (halb-)automatisierten Ablauf umsetzen, der folgende Punkte berücksichtigt:

    1. Anhand des Namens/Titels und Jahrs eine wirklich eindeutige ID herausfinden:

    Da es trotz Titels und Jahrs nachwievor zu Mehrfachtreffern oder gar zu gar keinen Treffern kommen kann, ist hier leider eine einmalige, manuelle Kontrolle je Medium unausweichlich. Da aber ein Film (oder generell ein Medium) grundsätzlich nahezu niemals einmalig existiert, sondern in unterschiedlichsten Fassungen vorliegt (vor allem durch regionale Anpassungen und unterschiedliche Schnittfassungen), ist eine IMDb-ID (und all die Ableger wie OMDb usw.) nicht wirklich eindeutig. Dafür gibt es die weltweit eindeutige EIDR-ID. Die Verbindungen zu IMDb (usw.) finden sich dann am obersten, abstrakten Element.

    Beispiel: The Dark Knight (2008)
    - IMDb: 1 Eintrag
    - EIDR: 1 Eintrag je Edit (abstraktes Elternelement mit sämtlichen IDs, deutsches Release)

    D.h. man kann allein mittels einer IMDb (usw.) keine unterschiedlichen Versionen desselben Mediums sinnvoll und weltweit eindeutig verwalten. Aktuell dürfte Ember (und alle anderen Medienverwalter) dazu eine zusätzlich lokale ID nutzen, die zur automatisierten Ermittlung, ob eine Mediumfassung schon vorhanden ist, nicht genutzt werden kann.

    Problem: EIDR bietet zwar eine recht umfassend dokumentierte API an, die aber wohl nur nach einem mir unklaren Registrierungsprozess genutzt werden kann.

    Frage: Kennt jemand von euch EIDR und weiß genaueres über den Registrierungsablauf und die zugehörige API-Anbindung (am Besten per C# oder PHP)?

    2. Vorhandenes Medium anhand der IMDb-ID scrapen

    Über die EIDR-Elternelement-ID könnte man, wie erwähnt, die IMDb-ID ermitteln und dann alle zugehörigen IMDb-Daten scrapen.

    Problem: IMDb bietet meines Wissens nach seit 2017 keine API mehr an, sondern nur wöchentlich aktualisierte, stark abgespeckte .tsv-Dateien, die man manuell herunterladen und in eine eigene Datenbank überführen müsste. Diese Dateien haben darüber hinaus auch eine gänzlich andere Struktur als die noch verfügbaren .list-Dateien, die den Datenbestand von IMDb bis 2017 beinhalten. Es ist mir leider keine freie alternative API bekannt, die die Datenbestände zusammenführt bzw. die in den .tsv-Dateien fehlenden Informationen von IMDb ergänzt.

    Frage: Wie wurde bei Ember dieses Problem gelöst? Ich vermute, dass das Scrapen über Webseiteninhalte stattfindet, was nicht nur sehr lange dauert, sondern seitens IMDb auch verboten ist.

    Zusatzfrage: Alternativ würde ich gerne wissen, welche freie API existiert, anhand derer sich zumindest die IMDb-ID anhand des Namens und Jahrs feststellen ließe und gibt es eine Dokumentation zur Anbindung dieser API?

  • Wie wurde bei Ember dieses Problem gelöst? Ich vermute, dass das Scrapen über Webseiteninhalte stattfindet, was nicht nur sehr lange dauert, sondern seitens IMDb auch verboten ist.

    Genauso wird's gemacht.

    Alternativ würde ich gerne wissen, welche freie API existiert, anhand derer sich zumindest die IMDb-ID anhand des Namens und Jahrs feststellen ließe und gibt es eine Dokumentation zur Anbindung dieser API?

    Bei TMDb ist die IMDb hinterlegt, zumindest in nahezu allen Fällen. Die API ist kostenlos und gut dokumentiert: Link
    Alternativ OMDb.

    Mir ist aber keine Webseite/API bekannt, welche auch unterschiedliche Fassungen der Filme führt.

  • Danke für die Info.

    Ich hätte noch 4 Anfragen:

    1. Könntest du ggf. zusätzlich eine einfache Möglichkeit einbauen, um jedem Medium die IMDB-ID direkt zuzuweisen?

    Entweder per optionaler Einblendung der IMDB-ID als Eingabespalte in der Liste links oder als zusätzliches Fenster und dann dort als Liste mit Eingabemöglichkeit? Das Einzeln dauert zu lange - auch, weil er jedesmal erst automatisch sucht, obwohl ich die konkrete ID bereits manuell selbst herausgesucht habe.

    2. Könntest du auch das Scrapen des deutschen IMDB-Titels einbauen oder den Bug beheben, dass er da lediglich den Originaltitel zieht?

    Ich möchte nicht OFDB benutzen, da die Titel hier teilweise stark abweichen (bspw. bei IMDB-ID tt0057546). Aktuell nutze ich TMDB, aber auch das stimmt nicht immer mit IMDB überein, siehe bspw. IMDB-ID tt0316624.

    3. Unter Einstellungen gibt es ein Sperrhäkchen fürs Scrapen von Titeln - wie verhält es sich genau, wenn noch gar kein Titel gesetzt ist und wenn kein deutscher Titel gesetzt ist (wird das abgeglichen)?

    Also ich wünschte mir ein Verhalten, dass der deutsche IMDB-Titel gezogen wird, insofern noch gar kein Titel oder ein anderssprachiger Titel gezogen wurde. Den deutschen Titel möchte ich danach händisch nochmal anpassen können, ohne dass er die Information verliert, dass das immer noch der deutsche Titel ist und letztlich soll er diesen Titel dann für immer und ewig behalten, auch wenn ich später mal die komplette NFO rescrapen will. Ist das umsetzbar?

    Ich frage aus dem Grund, da ich gerne sämtliche Titelformen vereinheitlichen möchte und aus diesem Durcheinander:
    - "Titel - Teil 2: asdf"
    - "Titel II - asdf"
    - "Titel 2: asdf"
    - "Titel - asdf"
    ... gerne durchweg "Titel: asdf" bzw. "Titel 2: asdf" machen möchte.

    Bei Bedarf (bei Filmsets/Filmreihen) würde ich auch direkt die Filmreihe davor schreiben, wie bspw. bei IMDB-ID tt0322259 & tt1596343:
    - aus "2 Fast 2 Furious" würde ich "The Fast and the Furious 2: 2 Fast 2 Furious" machen
    - aus "Fast & Furious Five" würde ich "The Fast and the Furious 5: Fast & Furious Five" machen
    - usw.

    Das sollte dann halt nur nich verloren gehen und als Ausgangstitel benötige ich hierfür jeweils den deutschen IMDB-Titel.

    4. Ist es möglich, mit einem einfachen Klick sämtliche Kurzbeschreibungen (die von OFDB mit der Umlautproblematik, da nicht UFT-8-konform gespeichert) zu entfernen und mit der längeren Beschreibung (die neu von TMDB und mit korrekten Umlauten gezogen wurde) gekürzt zu überschreiben?

  • 1. Könntest du ggf. zusätzlich eine einfache Möglichkeit einbauen, um jedem Medium die IMDB-ID direkt zuzuweisen?

    In Ember 2.0 wird es im Edit Dialog eine Liste mit den Unique-IDs geben. Dort lassen sich beliebige IDs eintragen und auch verändern. Aktuell gibt es keine Möglichkeit, die ID manuell anzupassen oder einzutragen, zumindest nicht über das GUI. Die einzige Möglichkeit eine ID zu Ändern ist über Kontextmenü => Film wechseln. Damit werden alle gespeicherten Infos verworfen und der Film neu gesucht, sprich der Suchresultate Dialog wird gezeigt. Dort lässt sich dann je nach dem, welcher Scraper an erster Stelle steht, eine ID eintragen.

    Für die erste Suche, sprich wenn du einen Film neu zur Bibliothek hinzufügen willst gibt es aber einige Hilfen, die manuelle Zuordnungen überflüssig machen, damit der Film automatisch korrekt gescrapt wird:

    • Falls du mit Downloads arbeitest ist ja immer eine Release-NFO dabei. In dieser NFO ist nach Regeln der Szene immer ein Link zur IMDb Page dabei. Diese beinhaltet somit auch die "tt" Nummer. Wenn die NFO keine XML ist (und das ist sie in diesem Falle nicht) liest Ember den Text aus und sucht nach der Nummer. Wenn diese gefunden wird wird die IMDb ID gespeichert. Somit ist der Film eindeutig identifiziert und kann ohne Suchvorgang gescrapt werden. Unter Einstellungen Otionen => => Allgemein => Überschreibe nicht konforme NFOs kann ausserdem aktiviert werden, dass diese NFO nach dem Scrapen oder dem Editieren automatisch überschrieben werden. Somit musst die NFO danach auch nicht manuell löschen. Wenn diese Option deaktiviert ist werden die Release NFO in *.info umbenannt.
    • Du kannst die IMDb ID auch im Pfad, sprich Ordnernamen oder Dateinnamen verwenden. Wird beim Einlesen die ID gefunden wird sie ebenfalls gespeichert.

    2. Könntest du auch das Scrapen des deutschen IMDB-Titels einbauen oder den Bug beheben, dass er da lediglich den Originaltitel zieht?

    Ich schau mir an, was aktuell das Problem ist. Der IMDb Scraper ist halt sowohl bei Filmen wie auch bei Serien schlecht zu warten. Jede Änderung an der Webseite bedeutet in den meissten Fällen eine Anpassung am Scraper da, wie du ja weisst, keine API vorhanden ist. Ich frage mich aktuell sowieso, ob ich diesen Support in Ember 2.0 überhaupt noch fortführen soll. Mir ist aber bewusst, dass viele unbedingt IMDb wollen, da dort einfach die saubersten Infos hinterlegt sind.

    3. Unter Einstellungen gibt es ein Sperrhäkchen fürs Scrapen von Titeln - wie verhält es sich genau, wenn noch gar kein Titel gesetzt ist und wenn kein deutscher Titel gesetzt ist (wird das abgeglichen)?

    Die Sperrhäkchen bewirken, dass bei Scrapen diese Felder nicht mehr überschrieben werden, wenn dort einmal ein Wert gesetzt wird. DIe Werte können dann nur noch im Edit Dialog von Hand geändert werden. Beim Titel ist die Situation aber noch etwas spezieller als bei den anderen Feldern: wenn ein Film ohne NFO der Bibliothek hinzugefügt wird wird der Titel für die Initial-Indexierung aus dem Ordner- oder Dateinamen (je nach Einstellung der Quelle) gefiltert. Die vordefinierten Filter sind ziemlich gut eingestellt, so dass Angaben wie Videoquelle, Auflösung, Release-Group usw. entfernt werden, ausserdem lassen sich eigene Filter hinzufügen (ist aber mittlerweile kaum mehr nötig). Wenn nun die Sperre für Titel aktiviert ist wird der aus dem Ordner- oder Dateinamen gefilterte Titel beim Scrapen auch nicht mehr verändert. Du könntest nun den Ordnernamen vor dem Einlesen nun so benennen, wie du ihn später haben willst. Zusätzliche Angaben wir IMDb ID oder Videoquelle könntest du trotzdem noch im Titel haben, denn die werden ja ausgelesen und vom Titel entfernt. Wenn du einen Ordner nun "Stirb langsam 3.bluray.tt0112864" nennst wir der Titel auch nach dem Scrapen "Stirb langsam 3" heissen und nicht "Stirb langsam - Jetzt erst recht". Damit lässt sich zwar "Titel 2: asdf" nicht umsetzen, da du kein Doppelpunkt als Ordner- oder Dateinamen verwenden kannst, aber bei den anderen Titel könntest du schonmal den Titel vordefinieren. Leider unterscheided Ember nicht zwischen "gefiltertem" und gescraptem Titel, dazu müsste ich noch ein Flag setzten, damit der "gefilterte" Titel durch den erstmalig gescrapen Titel überschrieben werden kann. Eine gute Idee für Ember 2.0 wie ich finde ;)

    Also ich wünschte mir ein Verhalten, dass der deutsche IMDB-Titel gezogen wird, insofern noch gar kein Titel oder ein anderssprachiger Titel gezogen wurde. Den deutschen Titel möchte ich danach händisch nochmal anpassen können, ohne dass er die Information verliert, dass das immer noch der deutsche Titel ist und letztlich soll er diesen Titel dann für immer und ewig behalten, auch wenn ich später mal die komplette NFO rescrapen will. Ist das umsetzbar?

    Wie vorher gerade genannt könnte ich mir ein entsprechendes Flag in Ember 2.0 vorstellen. Ob sich das dann mit IMDb zu 100% sauber umsetzen lässt denke ich aber nicht. Ohne vernünftige API gibt's halt immer genügend Fehlerquellen. IMDb für bei gewissen Filmen auch immer noch den "East Germany" and "West Germany" Title, wenn die Filme entsprechend alt sind. Wenn ich das sauber für alle Länder umsetzen will... gute Nacht!

    4. Ist es möglich, mit einem einfachen Klick sämtliche Kurzbeschreibungen (die von OFDB mit der Umlautproblematik, da nicht UFT-8-konform gespeichert) zu entfernen und mit der längeren Beschreibung (die neu von TMDB und mit korrekten Umlauten gezogen wurde) gekürzt zu überschreiben?

    Die Umlautproblematik mit OFDb ist in Ember 1.5 gelöst. TMDb bietet keine Kurzbeschreibungen. Eigentlich ist das ein Feature bzw. Überbleibsel von IMDb, denn nur dort gab es vernünftige und auch vom Plot abweichende, echte Kurzbeschreibungen. Ich weiss auch nicht, ob die Kurzbeschreibungen überhaupt noch von einem Kodi Skin verwendet werden. Ich würde auf des Scrapen von Kurzbeschreibungen verzichten und die Option Einstellungen => Filme => Scraper-Daten => Diverses => Benutze Handlung als Kurzbeschreibung mit Limit 350 verwenden. Damit wird einfach der letze Punk (das Satzzeichen) gesucht, der noch innerhalb des Limits liegt und der Plot entsprechend gekürtzt. Eine Ausnahmen wie Dr., Mr. usw. werden dabei auch beachtet. Das Limit kannst du so hoch setzten wie die Anzahl Zeichen, die ein evtl. kompatibler Skin anzeigen kann.


    Wenn du nur einzelne Datenfelder aktualisieren willst kann du dazu das Kontextmenü => Rescrape einzelnes Datenfeld oder Scrape Filme => benutzerdefinierter Scraper (neben dem Datenbank aktualisieren Button) nutzen.

    EDIT: ich hatte schon 3 Bier, Grammatik und Rechschreibung sind in der Bar geblieben

  • In dieser NFO ist nach Regeln der Szene immer ein Link zur IMDb Page dabei.

    Ja, die scrape ich bereits selbst (alle Unterordner vom in "Basis" definierten Pfad) mit ner kleinen Batch-Datei und erzeuge aus der Original-.nfo (die kein Schwein braucht) ein Ur-Kodi-XML-konformes .nfo, insofern der IMDb-Link mit der ID gefunden wird. Hier der Code:


    Ansonsten: klar kann ich das händisch vorab auch manuell in die .nfo oder Ordner-/Dateinamen klatschen. Ist aber halt bekloppt, weil ich dann in Ember jedesmal erst die Datenbank aktualisieren muss. Da wäre eine Liste wesentlich handhaber - aber gut, die kommt ja dann v2.0 :) Bis dahin werd ich nun vorab die nfos erstellen.

    Übrigens funktioniert dein Umbenenn-Tool aus mir unerfindlichen Gründen nicht zuverlässig, d.h. er lässt manche Filme aus und man muss es mehrfach ausführen und dann trotzdem nochmal kontrollieren. Dabei werden abundzu auch 2 .nfos erzeugt (eine mit altem und eine mit neuem Namen, obwohl der Haken bei "Überschreibe nicht konforme NFOs" sitzt).

    Daher hab ich mir vor Ewigkeiten noch ein kleines Powershell-Skript geschrieben, das alles gemäß .nfo-Titel und (Jahr) umbenennt:

    Ansonsten wg. den Titeln: Wie gesagt, ich gehe davon aus, dass die bisherige Datenbankhaltung bzgl. Filmen selbst (fehlende Varianten), damit auch Titeln, Beteiligte, aber auch Streams usw. nicht wirklich "korrekt" gelöst ist, wobei "korrekt" ja Ansichtssache ist. Es müsste meiner Ansicht nach wie folgt umgesetzt werden (sorry, wird länger, daher als Spoiler eingeklappt):


    Spoiler anzeigen

    Tabelle Media: enthält die jeweiligen Nutzereinträge
    - ID
    - MediaTypeID
    - ...

    Tabelle Languages: enthält die Sprachen
    - LanguageID
    - Language

    Dann kommen die ganzen Tabellen für die Metadaten:

    Tabelle MediaVideoStreams:
    - MediaID
    - ID
    - LanguageID
    - Path (absolut oder relativ... ggf. beides)
    - FileSize
    - Name
    - Codec
    - Duration
    - Width
    - Height
    - ScanType
    - AspectDisplayRatio
    - Bitrate
    - MultiViewCount
    - MultiViewLayout
    - StereoMode
    - Chapters (ggf. eigene Tabelle)-
    - Default
    - Forced
    - Compressed
    - Tags

    Tabelle MediaAudioStreams:
    - MediaID
    - ID
    - LanguageID
    - Path (absolut oder relativ... ggf. beides)
    - FileSize
    - Name
    - Codec
    - Channels
    - Bitrate
    - Default
    - Forced
    - Compressed
    - Tags

    Tabelle MediaSubtitles:
    - MediaID
    - ID
    - LanguageID
    - Path (absolut oder relativ... ggf. beides)
    - FileSize
    - Name
    - Charset
    - Default
    - Forced
    - Compressed
    - Tags

    Damit haben wir erstmal die reinen Datei-Metadaten abgehandelt. Nun kommen die Medieninformationen:

    Tabelle MediaTypes: enthält verfügbare Medien-Arten (Movie, Series (=Serie), Season (=Staffel), TV (=Folge), Short, Supplemental)
    - ID
    - Type

    Bei Abbildung mehrerer Varianten wäre noch die Variantenart nötig, wie bei EIDR (Abstraction, Digital, Performance). Lasse ich mal weg.

    Tabelle Providers: enthält die ganzen Anbieterm also IMDb, TMDb, OFDb, Netflix, etc. und den zugehörigen Such-Link, um ihn im Programm nutzen zu können
    - ID
    - Name
    - SearchURL
    - Prefix (könnte bei IMDb "tt" sein und damit könnte man die IMDb-ID als Integer hinterlegen, was die DB flotter macht)
    - Suffix
    - ...

    Tabelle MediaIDs: enthält sämtliche alternativen IDs zu einem Medium (also IMDb-ID, TMDb-ID, etc.)
    - MediaID
    - ProviderID
    - AltID

    Jetzt bedarf es im Grunde für jeden Provider eigener Datenbanktabellen, da die Provider ihre Informationen (leider) völlig unterschiedlich halten.

    Ich stelle mir das für IMDb wie folgt vor:

    Tabelle IMDbTitleBasics:
    - ID
    - TypeID
    - IsAdult
    - StartYear
    - EndYear
    - Runtime
    - AverageRating
    - NumberVotes
    - ...

    Tabelle IMDbTitleAKAs: enthält sämtliche Titel zum IMDb-Eintrag
    - IMDbTitleBasicsID
    - RegionID (braucht eigene Tabelle)
    - LanguageID
    - TypeID (braucht eigene Tabelle)
    - Attributes
    - IsOriginalTitle

    Damit lassen sich sämtliche Titel hinterlegen.

    Tabelle IMDbGenres: sollte klar sein...
    - ID
    - Genre

    Tabelle IMDbTitleGenres:
    - IMDbTitleBasicsID
    - IMDbGenresID
    - HierarchicalLevel (falls Abstufung notwendig, also bspw. eher Thriller und Drama als Action usw.)

    Tabelle IMDbPersons: enthält sämtliche Beteiligte
    - ID
    - DateOfBirth
    - DateOfDeath
    - ...

    Tabelle IMDbPersonsAKAs: enthält alle Namen der Beteiligten
    - IMDbPersonsID
    - ID (Zähler)
    - Name
    - IsLegalName (also der aktuell bekannte, rechtlich gültige Name)

    Tabelle IMDbProfessions: (oder generell Professions) enthält die möglichen Berufe
    - ID
    - Profession

    Tabelle IMDbTitleRoles: enthält die Rollen
    - IMDbTitleBasicsID
    - ID (Zähler)
    - Role

    Tabelle IMDbTitlePersons: enthält die Bezüge zwischen IMDb-Eintrag und den Beteiligten
    - IMDbTitleBasicsID
    - IMDbPersonsID
    - IMDbProfessionsID
    - IMDbTitleRolesID
    - IsPrincipal

    Damit lassen sich je Person mehrere Beteiligungen und Rollen zuweisen, also bspw. kann ein Regisseur auch Autor sein und gleichzeitig 2 Rollen innehaben.

    Dann gibts natürlich noch weitere Tabellen zu den Titeln (Handlungen, Reviews, Auszeichnungen, ...) und Personen (Biographien, Auszeichnungen, Zitate, ...), aber ich lass es erstmal gut sein.


    Im Programm sollte dann einfach erstmal alles in der internen Datenbank abgelegt werden können (damit könnte man theoretisch ja einfach mal alles nach und nach scrapen und hat es dann lokal verfügbar... jaja, theoretisch) und anhand der Settings (so wie wohl jetzt) in das Kodi-konforme Format (was sinnvollerweise entsprechender eigener Tabellen bedarf) übernommen werden.

    Ich mutmaße, dass es aktuell aber zumindest etwas anders läuft, sonst wäre es kein Problem, den jeweiligen Titel einfach rauszufischen.

    Ich würde dir auch gerne helfen, aber ich kenne mich mit C# (und WPF) nicht so gut aus - ist ein ziemliches Gefrickel. Also ich kann gut verstehen, warum neue Releases so lange dauern :)

    Danke erstmal und guts Nächtle (du wirst wohl nach den Biers eh schon schlafen) ;)

    PS: Achso, ich habe noch ein Problem mit den Filmsets... wenn ich einen Film (bzw. mehrere) scrape, scraped er nicht gleich auch das zugehörige Set dazu. Füge ich es händisch in die Set-Liste ein und scrape, erkennt er auch nicht automatisch die Filme, die ich dazu in meiner Liste habe. Irgendwie sinnfrei und mühsam, alles händisch nachzutragen. Da kann ich auch gleich eigene Filmsets anlegen (was für ne Arbeit). Wieso sieht man eigtl in der Film-Detail-Info keine zugewiesenen Filmsets? Hab grad weiter unten den Filmset-Thread gesehen... und v1.5 runtergeladen. Na, ich tüftel mal umher.

  • Ja, die scrape ich bereits selbst (alle Unterordner vom in "Basis" definierten Pfad) mit ner kleinen Batch-Datei und erzeuge aus der Original-.nfo (die kein Schwein braucht) ein Ur-Kodi-XML-konformes .nfo, insofern der IMDb-Link mit der ID gefunden wird.

    Das könntest du dir wie gesagt sparen, denn Ember liest die Release-NFO genauso aus und holt sich dort die IMDb ID.

    Übrigens funktioniert dein Umbenenn-Tool aus mir unerfindlichen Gründen nicht zuverlässig, d.h. er lässt manche Filme aus und man muss es mehrfach ausführen und dann trotzdem nochmal kontrollieren.

    Der Bulk Renamer prüft im Vorfeld, ob eine Datei und der Ordner umbenannt werden kann. Wenn ein Ordner mit dem selben Namen schon besteht und die Quelle auf "jeder Film in separatem Ordner" eingestellt ist wird der Film nicht umbenannt. Es könnte natürlich sein, dass beim ersten Durchlauf ein Ordnername bereits besteht, dieser aber im ersten Durchlauf umbenannt wird und somit im zweiten Durchlauf dann frei ist. Wird aber wohl eher weniger vorkommen. Ich müsste halt schon genau wissen, was das konkrete Problem beim Umbennen ist.

    Dabei werden abundzu auch 2 .nfos erzeugt (eine mit altem und eine mit neuem Namen, obwohl der Haken bei "Überschreibe nicht konforme NFOs" sitzt).

    Es gibt eigentlich kein "umbenennen", es ist ein verschieben mit nachträglichem löschen (macht Windows bzw. .NET aber automatisch beim Befehl "MOVE"). Somit kann es vorkommen, dass die Datei zwar verschoben werden kann, die alte Datei aber aufgrund von Zugriffsrechten oder anderem nicht gelöscht werden kann.
    Die Funktion "Überschreibe nicht konforme NFOs" hat überhaupt nichts damit zu tun, denn die behandelt nur NFOs ohne korrekte XML Struktur.

    Ist aber halt bekloppt, weil ich dann in Ember jedesmal erst die Datenbank aktualisieren muss.

    Verstehe nicht, was du du das meinst.

    Wie gesagt, ich gehe davon aus, dass die bisherige Datenbankhaltung bzgl. Filmen selbst (fehlende Varianten), damit auch Titeln, Beteiligte, aber auch Streams usw. nicht wirklich "korrekt" gelöst ist, wobei "korrekt" ja Ansichtssache ist.

    Das mit den Varianten (unzensiert, Directors Cut usw.) ist ein Punkt, in dem ich dir zustimme. Dies wird in Ember 2.0 auf jeden Fall unterstützt, wenn auch nur mit einem zusätzlichen Feld "Variante".

    Im Programm sollte dann einfach erstmal alles in der internen Datenbank abgelegt werden können (damit könnte man theoretisch ja einfach mal alles nach und nach scrapen und hat es dann lokal verfügbar... jaja, theoretisch)

    Ich weiss auch hier nicht genau, was du mit "nach und nach" scrapen meinst. Es wird ja alles in der Ember-Datenbank gespeichert, was gescrapt wird. Man muss theoretisch auch nicht alle Infos auf einmal scrapen, aber was soll das bringen?

    anhand der Settings (so wie wohl jetzt) in das Kodi-konforme Format (was sinnvollerweise entsprechender eigener Tabellen bedarf)

    Dafür brauchts keine eigene Datenbank, denn das Kodi-konforme XML Schema ist wie vorgesehen als Klasse hinterlegt und holt die nätigen Daten aus der DB. Im Prinzip könnte man mehrere XML-Schemen einbauen, aber das ist aktuell nicht nötig, da sich mehr oder weniger alle MediaCenter an die Kodi-Vorgaben halten oder diese zumindest lesen können.

    Ich würde dir auch gerne helfen, aber ich kenne mich mit C# (und WPF) nicht so gut aus - ist ein ziemliches Gefrickel.

    Es ist vb.NET und nicht C# und auch immer noch WindowsForms und nicht WPF ;) Ich finde vb.NET ziemlich gut lesbar. Die neue Version dauert aber so lange weil ich grundsätzliche Abläufe komplett anderst lösen will und ausserdem die ganzen Features, die in den letzten 10 Jahren nach und nach eingebaut worden sind, endlich mal wieder sauber und allgemein verwendbar machen will. Es gibt im 1.5er Code so extrem viele doppelte Funktionen, die sich nur in wenigen Zeilen unterscheiden, dass die Wartung und Nachvollziehbarkeit des Codes echt langsam kritisch geworden ist.

    Achso, ich habe noch ein Problem mit den Filmsets... wenn ich einen Film (bzw. mehrere) scrape, scraped er nicht gleich auch das zugehörige Set dazu.

    Du musst evtl unter Einstellungen => Filme => Scraper-Daten noch die Option Füge Filme automatisch den Filmset hinzu aktivieren.


    Füge ich es händisch in die Set-Liste ein und scrape, erkennt er auch nicht automatisch die Filme, die ich dazu in meiner Liste habe.

    Dieser Weg funktioniert absichtlich nicht, denn nicht jeder will genau die Filme in einem Filmset, die TMDb vorsieht.

    Wieso sieht man eigtl in der Film-Detail-Info keine zugewiesenen Filmsets?

    Weil's nie in die Themes eingebaut worden ist. Wird aber in Ember 2.0 wie auch Tags und weitere fehlende Angaben vorhanden sein.


    Zu deinem Vorschlag betreffend der DB:
    Es wird auf keinen Fall eine DB für IMDb geben, denn das würde wiederum bedeuten, dass diese Tabelle nur für IMDb funktioniert und/oder ich für jeden anderen Scraper eine eigene Tabelle anlegen müsste. Ich weiss auch nicht wie lange ich IMDb überhaupt so noch supporten will. Aktuell haben sie wieder die Webseite verändert, was jedes Mal zu Fehlern und Anpassungen im Code führt. Irgendwie habe ich keine Lust mehr, alle paar Wochen den Code anzupassen. Was ich halt auch nicht ganz verstehe ist, warum man jede scheiss Info zu einem Film benötigt. Ember soll eine Manager sein, nicht eine komplette Datenbank bzw. lokale Abbildung von IMDb oder anderen Datenbanken. Wen interessiert es, wer die Schauspielerin XY geschminkt hat? Selbst mein Mitarbeiter hat mittlerweile einen Eintrag auf IMDb, weil er als Statist bei "Iron Sky: The Coming Race" mitgespielt hat. Brauch ich die Info wirklich?

    Ich bin der Meinung, dass man sich auf die wichtigsten Daten beschränken soll, denn die meisten anderen Daten kann eh kein MediaCenter anzeigen oder es gibt zumindest wie in Kodi Plugins, die die Daten dann live von TMDb abrufen und anzeigen, sollte man sie mal brauchen. Aber das ist meine Meinung.

    Ein paar deiner Vorschläge sind gute Inputs, die werde ich mir auf jeden Fall merken. Aber ich muss erstmal zusehen, dass das neue System zum Laufen kommt.

  • Das könntest du dir wie gesagt sparen, denn Ember liest die Release-NFO genauso aus und holt sich dort die IMDb ID.

    Alles klar, gut zu wissen.

    Ich müsste halt schon genau wissen, was das konkrete Problem beim Umbennen ist.
    ...
    Verstehe nicht, was du du das meinst.

    Eventuell liegen die Missverständnisse an meiner Vorgehensweise. Ich nutze Ember und dessen Datenbank nicht für mein komplettes Filmarchiv, sondern füge da nur neue Filme hinzu, die nicht im Archiv, sondern in einem eigenständigen Ordner liegen (bspw. "M:\new"). Dort sammle ich erstmal alles und irgendwann in einer ruhigen Nacht öffne ich Ember, aktualisiere die Datenbank (in der als Ordner nur "M:\new" eingestellt ist) und gehe nach und nach die Filme durch:
    - erstmal alle auf gut Glück nur die NFO scrapen lassen
    - dann jeden Film einzeln nochmal checken, ob er überhaupt ne IMDb-ID gefunden hat und ob es denn auch die richtige ist
    - nachdem alle IDs korrekt sind, lasse ich ihn dann nochmal "alles" scrapen
    - dann lasse ich Ember alle Filme umbenennen (alles markieren -> rechtsklick -> umbenennen -> automatisch)
    - das klappt halt nicht immer für alle Ordner korrekt (obwohl ich da keine doppelten Einträge drin habe), d.h. auch hier gugge ich nochmal in Ruhe die Ordnernamen und letztlich die einzelnen Ordner durch
    - wenn dann alles durch ist, schließe ich Ember und verschiebe die Filme ins eigentliche Archiv (da nun alles wesentliche in den NFOs drinsteht)

    Beim nächsten Aufruf von Ember heißt es dann wieder "Datenbank säubern" und "Datenbank aktualisieren" - da ich dort nur neue Filme scrape.

    Abundzu (vielleicht 1x im Jahr) füge ich das ganze Archiv in Ember hinzu. Hauptsächlich, um doppelte Einträge zu entfernen, die beim Verschieben nicht aufgefallen sind (weil sich bspw. Titel zwischen IMDb, TMDB und OMDb unterscheiden) und um eine CSV/Excel-Liste des Archivs zu erstellen und aktuell, weil ich mal alle Filmsets erfassen will (da hakts hier grad mehrfach... mal schauen, eigenes Thema). Dann knall ich das Archiv wieder aus Ember raus.

    Dies wird in Ember 2.0 auf jeden Fall unterstützt, wenn auch nur mit einem zusätzlichen Feld "Variante".

    Super, find ich gut.

    Ich weiss auch hier nicht genau, was du mit "nach und nach" scrapen meinst. Es wird ja alles in der Ember-Datenbank gespeichert, was gescrapt wird. Man muss theoretisch auch nicht alle Infos auf einmal scrapen, aber was soll das bringen?

    Ich meine damit, einfach die gesamten IMDB Titel- & Schauspielerdaten (im Hintergrund) nach und nach abzuscrapen und die Daten lokal abzulegen (die gesamten IMDB-Daten von Stand 2017 umfassen 2 GB gepackt und 8 GB entpackt, die aktuellen TSV-Dateien 900 MB gepackt und 3.5 GB entpackt), damit man später beim Scrapen der eigenen Filme sofortigen Zugriff drauf hätte, was halt wesentlich schneller ginge (man könnte dazu übrigens auch die JMDb-DB einbinden). Ich weiß halt nicht, wie sinnvoll das mit der aktuellen Webseiten-Scrape-Technik wäre - vielleicht könnte man das auch regelmäßig von einem zentralen Ember-Server aus erledigen, der die Daten dann als Paket zum Download bereitstellte (der sollte dann aber wohl in den Bermudas oder so stehen und registriert sein ;) ).

    Dafür brauchts keine eigene Datenbank, denn das Kodi-konforme XML Schema ist wie vorgesehen als Klasse hinterlegt und holt die nätigen Daten aus der DB. Im Prinzip könnte man mehrere XML-Schemen einbauen, aber das ist aktuell nicht nötig, da sich mehr oder weniger alle MediaCenter an die Kodi-Vorgaben halten oder diese zumindest lesen können.

    Ah, okay.

    Du musst evtl unter Einstellungen => Filme => Scraper-Daten noch die Option Füge Filme automatisch den Filmset hinzu aktivieren.

    Danke, aber das war schon aktiviert und funktioniert leider nicht. Das Set händisch hinzuzufügen, ist auch etwas seltsam. Ich muss das:
    - erstmal anlegen (halt irgendwie benennen)
    - dann raus aus dem Set und zum Eintrag gehen, wo er es hingepackt hat (da sonst ein anderes aktiv ist)
    - dort rein, rescrapen, richtigen Name eingeben und scrapen (da zieht er bei mir nur die Set-ID von TMDb, sonst nichts)
    - dann wieder raus, per Rechtsklick das Set auf TMDb aufrufen (um die zugeordneten Filme zu sehen)
    - dann wieder ins Set und dort auf Filme suchen und die Filme nach und nach einfügen

    Ich kann auch eine einmal gescrapte Set-ID nicht auf eine andere ID rescrapen. Muss dazu das vorhandene löschen, ein neues anlegen und neu scrapen.

    Muss doch irgendwie einfacher gehen? ;-=)

    Ich fände es übrigens auch gut für v2.0, wenn in den Optionen beim Mouse-Over eine Info zu den einzelnen Settings erscheinen würde oder per F1 nen Popup aufginge (sicher 'ne Heidenarbeit). Im Hilfsfenster unten links wird mir aktuell auch nichts angezeigt (wurde das verworfen oder liegts an mir?).

    Dieser Weg funktioniert absichtlich nicht, denn nicht jeder will genau die Filme in einem Filmset, die TMDb vorsieht.

    Ah, das ist verständlich. Ich wundere mich auch über manche Zusammenstellungen auf TMDb (bspw. Trennung zwischen Animations- & Realfilmen, manchmal fehlen Teile im Set (bei der Conan Filmreihe fehlen Red Sonja und Conan), zu Eigenbegriffen gibt es gar keine Sets (bspw. Bud Spencer & Terrence Hill Reihe, Louis de Funes, Disney Meisterwerke, usw.)). Dann finde ich, dass Filme grundsätzlich auch mehreren Sets angehören können (bspw. Arielle zu Arielle Filmreihe, Disney Filmreihe, usw.).

    Ich bin der Meinung, dass man sich auf die wichtigsten Daten beschränken soll, denn die meisten anderen Daten kann eh kein MediaCenter anzeigen oder es gibt zumindest wie in Kodi Plugins, die die Daten dann live von TMDb abrufen und anzeigen, sollte man sie mal brauchen. Aber das ist meine Meinung.

    Stimmt auch wieder. Ich sehe halt IMDb als DIE wesentliche DB und alle anderen als Ableger/Nachahmer, aber klar: was interessiert mich der "Post-Production Coordinator" usw. :D

    Wichtiger wären da schon die regionalen Titel, Release-Dates, Laufzeiten, Varianten-Infos.

    Mal noch zum Titel zurück (hab da ja aktuell TMDb eingestellt, weil IMDb nicht korrekt funktioniert). Da zieht es mir bei "Der böse Geist von Jambuj" den russischen Titel "Злой дух Ямбуя". Liegt wohl an TMDb, nicht wahr?

  • Ahso, mal nochwas.

    Ember soll eine Manager sein, nicht eine komplette Datenbank bzw. lokale Abbildung von IMDb oder anderen Datenbanken.

    Als Manager-Tool (also wenn es dazu gedacht ist, das gesamte eigene Archiv zu verwalten), sind wesentliche Funktionen nicht möglich, wenn man nicht auch mehr Daten speichert, die in der jeweiligen NFO fehlen.

    Zur Verwaltung muss man ja einen Film anhand des Titels schnell finden können und da gehen die Probleme schon los, weil der Titel nicht immer eindeutig ist. Der gerade erwähnte Film "Red Sonja" liegt bei OMDb als "Die Rache der Schwertkämpferin" vor. Wenn beide (bzw. halt einfach mal alle vorhandenen) Titel in der DB hinterlegt wären, würde die Suche auch "Red Sonja" und die zugehörige IMDb-ID anzeigen, wenn man "Rache Schwert*" eingeben würde. Auch wenn ich "Geist Jambuj" eingebe, gibt mir Ember aktuell logischerweise keinen Treffer zurück, da der russische Titel drin steht.


    Dann wäre es sinnvoll (da du das Ganze ja eh Release-bezogen aufbaust), wenn man in Version 2.0, wo die Varianten ja unterstützt werden, auch eine Extra-Funktionalität einbauen könnte, die die Varianten nutzt und sich auf das "Besorgen" von Filmen bezieht. Die Varianten müssten erstmal anhand der Release-Infos oder/und der Laufzeit bestimmt werden. Hier wäre ein Abgleich der Meta-Daten mit existierenden Releases sinnvoll - ist aber tricky, da IMDb diese wesentliche Information nicht hat und mir keine freie API für EIDR (wo es diese Infos gibt) bekannt ist. Das hat den Hintergrund, da man beim Pflegen des eigenen Archivs wissen möchte, ob man den Film und die (beste) Variante schon hat und in welcher Quali (Bild+Ton) diese vorliegt, bevor man sich den ausgesuchten "besorgt" ;)

    Ich stelle mir das so vor: ein Ordner wird nach einem bestimmten Dateityp überwacht (der Einfachheit halber erstmal nicht als Service, sondern per manuellem Button in Ember). Der checkt die Dateinamen, fischt anhand dessen den Titel, das Jahr, die Variante und die angegebenen Meta-Daten raus (das ist erstmal der geringste Programmieraufwand und hätte ich sogar schon fertig für dich zum Übernehmen). Dann beginnt der Irrsinn, der nur mit den angedachten Varianten-Infos funktioniert:
    - Checken, ob der ermittelte Filmtitel schon da ist, welche Variante, Laufzeit und Quali
    - Anzeigen in einer Gegenüberstellungs-Liste (links die angedachten "neuen" Filme, rechts die im Archiv gefundenen, vorhandenen Titel)

    Dann kann der Nutzer sich entscheiden, ob er das verwirft oder zum "Besorgen" schickt (also die Datei in einen anderen Ordner verschiebt, wo dann das "Besorgen" von einem anderen Programm getriggert wird) ;)

    Das wäre gigantisch.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!