Files
Marvel-Playlist-f-r-Jellyfi…/README-marvel-playlist.md
T
2026-08-03 16:20:45 +02:00

3.8 KiB

Marvel-Playlist für Jellyfin + Seerr

Das Script prüft deine Jellyfin-Bibliothek, fordert fehlende Medien über Seerr an und baut eine chronologisch sortierte Jellyfin-Playlist. Serien werden als einzelne Episoden in Staffel-/Episodenreihenfolge eingefügt.

Version 2026.08.03-r2

Die Timeline enthält nun feste TMDB-IDs für alle ausgelieferten MCU- und Legacy-Einträge. Dadurch ist das Script nicht mehr von lokalisierten oder je nach Seerr-Version unterschiedlich aufgebauten Suchergebnissen abhängig.

Wichtig: Seerr fordert Medien über TMDB-IDs, nicht über IMDb-IDs, an.

Weitere Korrekturen:

  • Jellyfin-Medien ohne Provider-ID werden über Titel und Erscheinungsjahr erkannt.
  • Eine fehlende TMDB-ID zählt nicht mehr automatisch als harter Fehler.
  • Nicht auflösbare fehlende Medien erscheinen separat unter Nicht auflösbar.
  • Nur wirkliche HTTP-, API- oder Playlist-Probleme erscheinen unter Fehler.
  • Die Seerr-Suche versteht als Fallback CamelCase- und snake_case-Antworten.

Installation

mkdir -p /opt/marvel-playlist
cp marvel_jellyfin_seerr.py marvel.env.example /opt/marvel-playlist/
cd /opt/marvel-playlist
cp marvel.env.example marvel.env
chmod 600 marvel.env
chmod +x marvel_jellyfin_seerr.py
nano marvel.env

Es werden keine Python-Pakete benötigt.

Upgrade von der ersten Version

Die vorhandene marvel.env bleibt erhalten. Ersetze nur das Script und lösche optional den alten Suchcache:

cd /opt/marvel-playlist
cp marvel_jellyfin_seerr.py marvel_jellyfin_seerr.py.bak
cp /root/marvel_jellyfin_seerr.py ./marvel_jellyfin_seerr.py
chmod +x marvel_jellyfin_seerr.py
rm -f .cache/marvel-playlist/tmdb.json

Erst prüfen

cd /opt/marvel-playlist
./marvel_jellyfin_seerr.py \
  --dry-run \
  --request-missing \
  --sync-playlist \
  --profile mcu-complete

--dry-run verhindert sowohl Seerr-Requests als auch Playlist-Änderungen. Die zusätzlichen Schalter zeigen an, welche Aktionen später ausgeführt würden.

Fehlende Medien anfragen

cd /opt/marvel-playlist
./marvel_jellyfin_seerr.py --request-missing --profile mcu-complete

Playlist synchronisieren

cd /opt/marvel-playlist
./marvel_jellyfin_seerr.py --sync-playlist --profile mcu-complete

Beides in einem Lauf

cd /opt/marvel-playlist
./marvel_jellyfin_seerr.py --request-missing --sync-playlist --profile mcu-complete

Profile

  • mcu-complete: MCU inklusive Defenders-Saga, Agent Carter und One-Shots.
  • mcu-core: MCU-Filme und Marvel-Studios-Serien ohne ältere Defenders-/One-Shot-Blöcke.
  • legacy: X-Men-, ältere Spider-Man- und Fantastic-Four-Filme als separate Doomsday-Vorbereitung.
  • all: Erstellt mcu-complete und legacy als zwei getrennte Playlists.

Die Legacy-Liste bleibt absichtlich separat, weil die Fox-X-Men-Zeitlinien verzweigt sind und sich nicht widerspruchsfrei in eine einzige MCU-Chronologie einordnen lassen.

Optionaler täglicher Cronjob

Erst verwenden, nachdem ein manueller Dry-Run und ein manueller schreibender Lauf funktioniert haben:

17 4 * * * cd /opt/marvel-playlist && /usr/bin/python3 ./marvel_jellyfin_seerr.py --request-missing --sync-playlist --profile all >> /var/log/marvel-playlist.log 2>&1

Jellyfin-Playlist-Fehler parentFolder

Falls Jellyfin beim Erstellen einer Playlist mit parentFolder abbricht, prüfe das Jellyfin-Datenverzeichnis. Bei betroffenen Installationen muss dort ein Ordner Playlists mit passenden Eigentümerrechten existieren.

Hinweis zu Sonderzeichen

Ab Version 2026.08.03-r3 werden sämtliche URL-Query-Parameter strikt percent-encodiert. Dadurch funktionieren Titel mit Sonderzeichen wie :, &, ?, #, Apostrophen, Sternchen, Schrägstrichen, Umlauten und Unicode-Zeichen auch mit Seerrs strenger API-Validierung. Leerzeichen werden als %20 statt + übertragen.