Aufbau der Filmliste
-
Ich habe mir in den letzten Jahren etliche Filme via MV heruntergeladen - meist Reportagen und Dokus. Leider habe ich die Filminfos nicht kopiert und moechte diese jetzt aus den Filmlisten extrahieren. Sehr viele der Filme sind nicht mehr in der aktuellen Liste, so dass ich mir die alten Filmlisten aus dem Archiv heraussuchen muss. Ich weiss, dass das viel Arbeit ist, aber es muss nur einmal gemacht werden und ich habe Spass daran…
Meine Fragen:
1.) In der aktuellen Filmliste sind nur solche Filme, die noch zur Verfuegung stehen. Alle anderen werden entfernt. Ist das richtig?
2.) Die aktuelle Filmliste habe ich in eine Datenbank importiert. Nimmt man die " " -Zeichen als Feldtrennung, erhaelt man ca 50 Felder pro Datensatz. Gibt es eine eindeutige ID pro Film? In einem Feld ist eine 10-stellige Zahl, aber leider nicht eindeutig. In einem anderen Feld finde ich (vermutlich) den DL-link, z.B.: http://mediathek.rbb-online.de/tv/rbb-Gartenzeit/Tipps/rbb-Fernsehen/Video?documentId=37946568&topRessort=tv&bcastId=3913628. Ist die dort enthaltene documentId eindeutig ueber alle Sender? Falls nicht, wie kann ich einen Datensatz eindeutig identifizieren (ueber alle Filmlisten, d.h. diese ID muesste auch in alten Filmlisten wiederzufinden sein, falls der Film auch dort existiert.
3.) Gibt es eine Beschreibung ueber den Aufbau der Filmlisten? -
- Ja
- Nein, es gibt kein eindeutiges Feld in der Filmliste. Die selben URLs können mehrfach vorkommen. Die IDs in Parametern der Mediatheken sind, wenn überhaupt, nur pro Sender eindeutig.
In MVW 2 erstelle ich mir eine eindeutige ID so:
const urlsString = `${url_small}_${url}_${url_hd}`; const hashString = [entry.channel, entry.topic, entry.title, entry.timestamp, entry.duration, entry.website, urlsString].join(' _ '); const idBuffer = Crypto.createHash('sha1').update(hashString).digest(); entry.id = base62Encode(idBuffer);
Diese kann sich jedoch ändern, wenn die Sender bspw. den Titel anpassen würden.
- Du könntest dir den Parser von MVW 2 anschauen: https://github.com/mediathekview/mediathekviewweb/blob/backup/server/src/entry-source/filmlist/parser.ts
-
Danke fuer die Info. So etwas habe ich schon vermutet. Warum solten sich die Sender mit irgendwelchen IDs und templates fuer die URL absprechen? Und fuer MV waere der Aufwand viel zu gross, den Filmen eindeutige IDs zu geben.
Waere ja schoen, wenn man eine DB haette mit ALLEN Filmen. Aber dafuer ist die Anzahl der Interessenten zu gering.
Ich werde mir im ersten Schritt ausgewaehlte Filmlisten (vom 15. und 30. jeden Monats) aus dem Archiv ziehen und in eine DB einlesen. Dann werde ich wohl hoffentlich ueber 95% der fehlenden Beschreibungen erwischen. Ist halt viel Handarbeit… -
In MVW 2 (https://testing.mediathekviewweb.de/), habe ich die Möglichkeit mehrere Filmlisten zu importieren implementiert. (Momentan sind auch ~350k statt den aktuellen etwa 250k vorhandenen).
Wenn du mir die Filmlisten nennst, könnte ich was kleines schreiben um sie zu importieren und dann könntest du die Datenbank per Query unter https://testing.mediathekviewweb.de/dev oder alternativ per REST-API nach deinen gesuchten Beiträgen abfragen. Die Daten hast du dann im JSON-Format.
Mögliche Queries findest du hier: https://github.com/mediathekview/mediathekviewweb/blob/backup/common/search-engine/query/definition.ts
-
@bagbag
Danke fuer das Angebot!
Die Filmlisten von Maerz 2015 bis heute (jeweils vom 15. und 30. eines Monats) habe ich bereits heruntergeladen und auch schon teilweise in die DB importiert. Meine Filmesammlung umfasst zwar viele Filme, beschraenkt sich aber auf ca 60 Sender/Titel. Mit der Suche ueber den Filmtitel kann ich wohl fast alle Filme identifizieren und danach die Beschreibung aus der DB mit der Filmdatei verknuepfen. -
Moin,
nachdem einige Jahre vergangen sind, bleibt die Frage nach der Struktur der Filmliste leider immer noch unbeantwortet. Der link im Beitrag 3 fürhrt leider ins Nichts.Ich weis das Dokumentation lästig ist, aber es wäre wirklich hilfreich eine nachvollziehbare Struktur der Liste zu haben. Es sind immerhin min 20 Felder die zu berücksichtigen sind.
Einige davon sind halbwegs selbsterklärend, andere überhaupt nicht.
Außerdem scheint es einige Inkonsistenzen zu geben. So sind leere Felder nicht zwangsläufig Felder, deren Inhalt vom vorherigen Eintrag übernommen werden kann.Die Zählweise zur Ersetzung von Strings (NN|text) scheint auch nicht so ganz konsistent zu sein. (+/-1)
Bsp.:"X":["3Sat","37 Grad","37°: Stuntfrauen – Spiel mit dem Risiko (S2025/E05) Audiodeskription)","04.02.2025","22:15","00:28:37","574","Spielfilme ohne Stuntleute - undenkbar. Tanja, Angie und Cecilia gehören zu den knapp 30 Stuntfrauen, die in Deutschland in der Filmbranche arbeiten.", "https://nrodlzdf-a.akamaihd.net/none/zdf/25/02/250204_2215_sendung_37g/3/250204_2215_sendung_37g_a3a4_3360k_p36v17.mp4", "https://www.3sat.de/gesellschaft/37-grad/37-stuntfrauen--spiel-mit-dem-risiko-102.html", "","", "8|rodlzdf-a.akamaihd.net/none/zdf/25/02/250204_2215_sendung_37g/3/250204_2215_sendung_37g_a3a4_808k_p11v17.mp4","", "102|6660k_p37v17.mp4","","1738703700","","","false"]
ich gehe davon aus, dass
"https://nrodlzdf-a.akamaihd.net/none/zdf/25/02/250204_2215_sendung_37g/3/250204_2215_sendung_37g_a3a4_3360k_p36v17.mp4",
der Basisstring ist und
"8|rodlzdf-a.akamaihd.net/none/zdf/25/02/250204_2215_sendung_37g/3/250204_2215_sendung_37g_a3a4_808k_p11v17.mp4",
Angibt, das die ersten 8 Zeichen des Basisstrings unverändert bleiben, dann passt das nur wenn die Zählung mit 0 für das h anfängt. Wende ich die gleiche Logik auf
"102|6660k_p37v17.mp4"
an, dann funktiniert das nicht weil dann der URL
https://nrodlzdf-a.akamaihd.net/none/zdf/25/02/250204_2215_sendung_37g/3/250204_2215_sendung_37g_a1a2_36660k_p37v17.mp4
lautet und nicht
https://nrodlzdf-a.akamaihd.net/none/zdf/25/02/250204_2215_sendung_37g/3/250204_2215_sendung_37g_a1a2_6660k_p37v17.mp4
Ich habe nicht überprüft ob die Zählweise auch bei anderen Einträgen sich in der gleichen Weise unterscheidet. Also ob da eine Systematik hintersteckt. Wenn dem so wäre, wäre es sehr schön wenn diese dann auch dokumentiert wäre.
Zum Schluss noch einen herzlichen Dank an die Entwickler, die sicher eine Menge Zeit und Aufwand in diese Software gesteckt haben. Und ich weis aus eigener Erfahrung das für die Dokumentation immer zu wenig Zeit ist. Aber schön wäre es doch
Viele Grüße
Dexli