Eine Emby-DB selbst auswerten

Emby muss seine Daten ja irgendwo speichern. Warum sollte es also nicht möglich sein, auch ohne die Emby-GUI in die Daten zu schauen? Irgendwo hatte ich gelesen, dass es sich um eine SQLite-Datenbank handelt, die die Daten verwaltet. Nach kurzer Recherche wurde klar, dass die relevante Datei library.db ist.

Läuft Emby auf einem aktuellen Synology-NAS, stößt man hier auf ein erstes Hindernis. Die Daten der App-Installationen ist nicht mehr so einfach zu erreichen. Um trotzdem an die Daten zu kommen, gibt es sicherlich viele Wege.

1.) in Emby ein Backup (Backup&Restore) einrichten. Hier kann man ein Zielverzeichnis wählen, dass auf normalem Weg zu erreichen ist. Ist aber langweilig und: es wird das gesamte Anwendungsverzeichnis gesichert. Das ist mir zuviel.

2.) Eine Möglichkeit finden, schnell und einfach via GUI auf die Daten zuzugreifen: Root File Browser

3.) Einen Backupjob einrichten, der nur die Datei library.db sichert. Idealerweise sehr leicht erreichbar.

Root File Browser auf Synology einrichten

Folgt bitte meiner Anleitung zur Einrichtung des Root File Browsers

Nun könnt ihr in das Verzeichnis /volume1/@appdata/EmbyServer/data browsen und euch die Datei library.db herunterladen:

Backupjob für library.db nach google drive einrichten

Dieser Weg hat mir irgendwie am besten gefallen. Dazu habe ich die folgende kleine Anleitung geschrieben.

Wenn du die Datei über das Backupscript gesichert hast, dann muss die Datei zuerst entpackt werden. In diesem Fall geht das mit 7zip.

Auswerten der Library.db

Es handelt sich, wie bereits erwähnt, um eine SQLite-Datenbank. Zur Auswertung einer solchen DB bieten sich diverse Wege an. Der für mich komfortabelste ist der SQLite-Browser:

ladet also https://sqlitebrowser.org/dl/ herunter.

Mit diesem Programm kann man nun die Datei library.db öffnen. Dort finden wir eine ganze Menge Tabellen. Zur Orientierung für euch empfehle ich die Tabellen Mediaitems und Mediastreams2. In die Tabellen kann man einfach so reinschauen. Die Datenbank (um ein solche handelt es sich) bietet den Vorteil, SQL-Abfragen zu definieren, die einem dann eine tolle Auswertungsmöglichkeit gibt. Ich habe für meinen Fall folgendes Select zusammengestellt.

select distinct items.name, items.OriginalTitle, ProductionYear
from mediastreams2 streams, mediaitems items
where (lower(streams.title) like '%kommentar%' or lower(streams.title) like '%commentary%')#####
and streams.itemid = items.id
and items.type=5
order by lower(items.name)

Diese Abfrage liefert mir alle Filme, in denen es Audiostreams gibt, die den Begriff „Kommentar“ oder „commentary“ enthalten.

Einen Überblick verschaffen kann man sich mit

select path, OriginalTitle, name, type from MediaItems order by type

Wir finden dort beispielsweise folgende Typen:

  • Type 3 Verzeichnisnamen
  • Type 4 Libraries
  • Type 5 Filme
  • Type 6 Serien
  • Type 8 Episodes
  • Type 11 musik tracks
  • Type 12 Hörbücher
  • Type 13 Musik/Hörbuch-Interpreten
  • Type 23 Cast & Crew
  • Type 25 Fotos

Viel Spaß beim Erkunden

Root File Explorer einrichten

Dafür habe ich keinen anderen Weg gefunden als den nun beschriebenen. Root File Browser bekomme ich als Docker Image. Über den Containermanager habe ich das Programm nicht ans Laufen gebracht. Mein Weg  geht über die Shell und Docker Compose.

Zuerst muss ein SSH-Zugang eingerichtet werden. Das erkläre ich hier. Außerdem habe ich mir den Editor nano eingerichtet.

Dann geht’s jetzt ans Eingemachte:

Wir brauchen root-Rechte:

sudo -i

EIn Verzeichnis für die Softwareconfiguration dort anlegen, wo wir Zugriff haben, dann dahin wechseln und die korrekten Rechte setzen:

mkdir -p /volume1/docker/filebrowser
cd /volume1/docker/filebrowser
chmod -R 777 /volume1/docker/filebrowser

Nun legen wir mit einem Editor die Konfigurationsdatei für docker an:

nano docker-compose.yml

Macht euch kurz mit nano vertraut und dann fügt in die Datei folgenden Code ein:

services:
  filebrowser:
    image: filebrowser/filebrowser:latest
    container_name: filebrowser
    command: ["--port", "8080"]
    ports:
      - "8081:8080"
    volumes:
      - /volume1/docker/filebrowser:/config
      - /volume1:/srv
    restart: unless-stopped

Dann abspeichern und nano verlassen.

So wird der File Browser gestartet:

docker compose up -d

Und dann sollte es funktionieren. Startet in eurem Browser http://nas-ip:8081/files/

Damit der File Browser auch immer beim Neustart des NAS mitgestartet wird, erstellen wir noch eine Aufgabe im Aufgabenplaner vom Typ „ausgelöste Aufgabe“|benutzerdefiniertes Script. Dort stellen wir den Benutzer „root“ ein, den Trigger „Hochfahren“ und unter Aufgabeneinstellungen hinterlegen wir das Script:

sleep 30
cd /volume1/docker/filebrowser
docker compose up -d