Was ich bastle — Juli 2026

Screening Room: Film-Daten-Pipeline

Trakt-Historie und TMDB-Metadaten, gebündelt zu einem Sehprofil für Claude-Empfehlungen

Worum es geht

Das Projekt überträgt den Ansatz der Musik-Pipeline auf Filme und Serien. Datenquelle ist Trakt, wo alle Sichtungen auflaufen. Gegenüber Apple Music ist die Lage komfortabler: offene API, exakte Sichtungs-Timestamps statt Playlist-Monaten, echte Rewatch-Zähler und eine Bewertungsskala von 1 bis 10.

Die Pipeline

Trakt (History + Ratings) → TMDB (Metadaten) → Master-CSV → Sehprofil

  • trakt_auth.py — einmaliger OAuth Device Flow, danach automatischer Token-Refresh
  • monthly_update.py — holt die History inkrementell (jede Sichtung mit Zeitstempel), dazu Bewertungen und Play Counts, und mergt nur Neues in die CSV
  • TMDB-Anreicherung — Genres, Regie und Laufzeiten; ein Cache hält die Abfragen unter den Rate Limits

Jeder Eintrag führt Titel, Typ, Jahr, Genres, Regie, Laufzeit, Sichtungszeitpunkt, Plays und Bewertung.

Automatisierung

Ein launchd-Job startet den Lauf am Ersten des Monats um 11 Uhr und zusätzlich bei jedem Login; ein Guard lässt nur alle 25 und mehr Tage einen Lauf durch. Ist der Rechner am Stichtag aus, wird beim nächsten Login nachgeholt. Manuelle Schritte gibt es im laufenden Betrieb keine.

Das Sehprofil

Die Roh-CSV ist 3,8 MB groß und taugt damit nicht als Chat-Grundlage. build_taste_profile.py verdichtet sie auf ein 16-KB-Profil: Genre-Verteilung, Regie-Favoriten, Rewatches, Serien-Bindung, vergessene Favoriten und Sehzeiten. Das Profil liegt als Wissensdatei im Claude-Projekt „Screening Room", die zugehörigen Anweisungen kommen aus screen_analyst_instructions.md. Empfehlungen basieren damit auf dem tatsächlichen Sehverhalten.

Zahlen aus dem Erstlauf

11.090
Sichtungen
270
Filme
10.820
Episoden
16 KB
Sehprofil

Beim Erstlauf wurden 506 Titel über TMDB angereichert. Der inkrementelle Testlauf danach brachte null Duplikate und lief komplett aus dem Cache, der launchd-Job durchlief den End-to-End-Test.

Tech Stack

  • Python 3trakt_auth.py, monthly_update.py, build_taste_profile.py
  • Trakt API/history, /watched, /ratings
  • TMDB APIGenres, Regie, Laufzeiten (gecacht)
  • launchdMonatslauf mit Nachhol-Logik
  • Claude-Projekttaste_profile_screen.md + Projekt-Anweisungen