​VideoDB: Automatische Pfad-Playlist Zuordnung

    • ​VideoDB: Automatische Pfad-Playlist Zuordnung

      Ein kleines Tutorial, um in VideoDB automatisch für neue Filme die Playlist anhand des Pfades zu setzen.

      1. Voraussetzung
      • VideoDB auf der Dreambox
      • Zugriff auf die Datenbank videodb.db (Pfad findet man im VideoDB Setup)
      • Man sollte wissen, was eine Datenbank ist und wofür man IDs verwendet... ;)
      2. Tools
      Man benötigt mindestens einfachen SQL Zugriff auf die Datenbank. Ich bevorzuge Tools, wie für Windows: sqlitebrowser.org/ oder unter Android: play.google.com/store/apps/det…dastech.sqlitemasterlight

      3. Datenbank vorbereiten
      Damit das alles funktioniert, muss pro Pfad mindestens ein Film in der Datenbank sein, sonst gibt es noch keine IDs.
      Die Datenbank am Besten von der Dreambox über ftp herunterladen und sicherheitshalber gleich noch kopieren.
      Nun die Datenbank im Editor öffnen.

      4. (optional) Aktuelle Zuordnung prüfen:
      Um zu sehen, welcher Film, welcher Playlist zugeordnet ist, folgenden SQL Befehl ausführen:

      Quellcode

      1. select mp.mountpoint, p.path, m.filename, m.name, pl.playlist_text, m.movie_id, m.path_id, pm.playlist_id from movies m join Playlist_Movies pm on m.movie_id = pm.movie_id join Paths p on p.path_id = m.path_id join Playlists pl on pl.playlist_id = pm.playlist_id join Mountpoints mp on mp.link_id = p.link_id order by 1,2,3

      5. Pfad-Playlist Zuordnung erstellen
      Für die Zuordnung benötigt man eine Hilfstabelle:

      Quellcode

      1. CREATE TABLE "Path_Playlist" (path_playlist_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, path_id INTEGER NOT NULL, playlist_id INTEGER NOT NULL, UNIQUE(path_id,playlist_id))

      Nun muss diese Tabelle entsprechend befüllt werden, mit der path_id und der gewünschten playlist_id.
      Die vorhandenen plath_id Werte erhält man über folgenden Befehl:

      SQL-Abfrage

      1. SELECT * FROM PATHS

      Die playlist_id Werte über:

      SQL-Abfrage

      1. SELECT * FROM PLAYLISTS

      Nun kann man die Zuordnung über das Tool oder über SQL eintragen:

      SQL-Abfrage

      1. INSERT INTO Path_Playlist (path_id, playlist_id) VALUES (1,2)

      Wobei 1 die path_id ist und 2 die playlist_id. Natürlich entsprechend ändern.

      6. Automatische Zuordnung für neue Filme
      Damit die Playlist nun automatisch zugeordnet wird, wenn ein neuer Film in die Datenbank kommt, muss man einen Trigger erstellen:

      Quellcode

      1. CREATE TRIGGER fkd_after_movie_insert_update_playlist AFTER INSERT ON Movies FOR EACH ROW BEGIN insert or ignore into playlist_movies (playlist_id, movie_id) select p.playlist_id, movie_id from movies m join Path_Playlist p on p.path_id = m.path_id WHERE movie_id = NEW.movie_id; END

      7. (optional) Vorhandene Filme anpassen
      Wenn man auch die vorhandene Filme in der Datenbank entsprechend anpassen möchte, dann kann man dies natürlich auch tun.

      Das zu erwartende Ergebnis kann man über folgenden Befehl prüfen:

      Quellcode

      1. select mp.mountpoint, p.path, filename, pl.playlist_text, movie_id, m.path_id, pp.playlist_id from movies m join Path_Playlist pp on pp.path_id = m.path_id join Paths p on p.path_id = m.path_id join Playlists pl on pl.playlist_id = pp.playlist_id join Mountpoints mp on mp.link_id = p.link_id order by 1,2,3

      Um erstmal alle Playlist Zuordnungen (nur!) für die Filme mit den Pfaden aus 5. zu entfernen:

      Quellcode

      1. delete from playlist_movies where movie_id in (select movie_id from movies m join Path_Playlist p on p.path_id = m.path_id)

      Danach die Zuordnung erstellen:

      Quellcode

      1. insert or ignore into playlist_movies (playlist_id, movie_id) select p.playlist_id, m.movie_id from movies m join Path_Playlist p on p.path_id = m.path_id
      Mit dem Befehl aus 4. kann man das Ergebnis prüfen.

      8. Datenbank zurückspielen
      Nun muss man die angepasste Datenbank nur noch auf die Dreambox hochladen und VideoDB öffnen. Die angepasste Zuordnung aus 7. sollte sichtbar sein und wenn man einen neuen Film aus einen der Pfade aufnimmt, sollte dieser automatisch in der entsprechenden Playlist erscheinen.

      Natürlich kann man auch im Nachhinein weitere Pfad-Playlist Zuordnungen aufnehmen!

      Fertig!