Tags

#Kirby & CMS

Kirby, WordPress und andere Redaktionssysteme samt Plugins, Templates und Arbeitsweisen.

Trakt.tv macht die API dicht

https://bielinski.de/2026/08/trakt-tv-macht-die-api-dicht/

Heiko hat mit Trakt das selbe Problem und… Kirby kann ja doch übersichtlich aussehen; er trackt jetzt ganz ohne Fremddienst.

Von Trakt zu Floppy: Mein Medientracking zieht nach Hause

Von Trakt zu Floppy: Mein Medientracking zieht nach Hause

Ich hasse es, wenn Sachen nicht funktionieren. Trakt hat ja einfach so die API eingestellt und dadurch wurden bei mir plötzlich keine geschauten Folgen mehr auf der Seite veröffentlicht.

Kein Weltuntergang, aber ärgerlich. Vor allem, weil ich damals ganz bewusst die Entscheidung getroffen hatte, für diesen Teil einen Fremddienst zu nutzen.

Warum überhaupt ein Fremddienst?

Kirby ist geil. Aber für manche Zwecke sind andere Dienste einfach besser darin, Daten einzugeben.

Ich veröffentliche zum Beispiel lieber ein Bild auf Pixelfed, weil die Oberfläche genau dafür gebaut ist. Und genauso habe ich Trakt genutzt: Die nächsten Folgen einer Serie wurden mir direkt angezeigt, mit Bild, Beschreibung und einer simplen Möglichkeit, sie als gesehen zu markieren und zu bewerten.

Hätte ich das alles auch manuell auf hnz.io machen können? Klar.

Hätte ich das dauerhaft durchgehalten? Niemals.

Also hat Trakt mir die gesehenen Folgen samt TMDB-ID geliefert und ich habe die Daten auf hnz.io anschließend über die TMDB API angereichert. Von dort kamen unter anderem Beschreibungstexte und Vorschaubilder.

Trakt war für mich damit eigentlich gar nicht die Datenquelle, sondern vor allem eine bequeme Oberfläche zum Tracken.

Also Alternativen suchen

Nachdem die Trakt-API weggefallen war, musste etwas Neues her.

RYOT war nicht so meins und eigentlich wollte ich nicht noch einen Dienst selbst hosten. Also habe ich mir zunächst einen Account bei Simkl geklickt.

Sieht gut aus. Gefällt mir.

Aus Spaß habe ich dann versucht, meinen kompletten Trakt-Export hochzuladen. Schließlich wirbt Simkl genau mit dieser Möglichkeit. Und dann erschien ein Popup: Der Import funktioniert nur mit einem Bezahl-Account.

Die Begründung dafür fand ich sogar ziemlich sympathisch. Sinngemäß: Wir haben nicht damit gerechnet, dass so viele Daten importiert werden, und jetzt geht uns schlicht der Speicher aus.

Trotzdem war das für mich der letzte Tropfen.

Denn am Ende bleibt Simkl eben auch ein Fremddienst. Theoretisch können sie morgen genauso entscheiden wie Trakt. Oder plötzlich fünf Euro im Monat dafür verlangen, dass ich Sterne vergeben darf.

Also bin ich weiter auf die Suche gegangen.

Yamtrack, nur mit dem einen Feature mehr

Yamtrack sah ziemlich gut aus. Es hatte für mich allerdings ein entscheidendes Manko: Episoden lassen sich nicht bewerten.

Dafür gibt es zwar bereits einen Feature Request, aber ich wollte jetzt eine Lösung und nicht irgendwann.

Dabei bin ich auf Floppygestoßen, einen Fork von Yamtrack, der genau das bereits kann.

Also mit meiner generativen Assistenz schnell einen Build für Cloudron erstellt und installiert.

Und ja: geil. Gefällt mir.

Trakt und Letterboxd einfach importiert

Als Nächstes konnte ich meine Trakt-Daten ohne größere Komplikationen in Floppy importieren. Und weil ich schon dabei war, habe ich direkt auch meine Daten aus Letterboxd hinterhergeschoben.

Selbst meine Watchlist konnte ich damit retten.

Damit liegt jetzt ein ziemlich großer Teil meiner Medienhistorie in einer Anwendung, die ich selbst betreibe.

Podcasts kommen jetzt automatisch dazu

Noch schöner: Meine Podcast-App Pocket Casts bietet ebenfalls eine API.

Dadurch kann ich jetzt auch automatisch erfassen, welche Podcast-Episoden ich gehört habe, und sie anschließend auf hnz.io ins Audiolog übernehmen.

Bisher brauchte ich dafür noch einen Apple Shortcut. Das war nicht wahnsinnig umständlich, aber eben trotzdem ein zusätzlicher Schritt.

Der entfällt jetzt komplett.

Sobald ich eine Episode zu mehr als 50 Prozent gehört habe, landet sie automatisch im Audiolog.

Etwas gewöhnungsbedürftig ist dabei die Darstellung in Floppy. Ähnlich wie bei Serien werden nicht einfach die neuesten Episoden untereinander angezeigt. Stattdessen sieht man zunächst die einzelnen Podcasts und muss sie öffnen, um die jeweiligen Episoden zu sehen.

Das ist eine bewusste Entscheidung und damit kann ich leben.

Gut zu wissen ist außerdem: Der Sync funktioniert nur bei Podcasts, die man in Pocket Casts abonniert hat. Hört man einfach nur spontan eine einzelne Folge eines nicht abonnierten Podcasts, wird sie nicht synchronisiert.

Muss man wissen.

Und plötzlich sind da auch meine Spiele

Zusätzlich lässt sich Floppy unter anderem mit meinem Xbox-Account und Steam verbinden. Überhaupt werden ziemlich viele Dienste unterstützt.

Damit ergeben sich für hnz.io direkt neue Möglichkeiten.

Ich kann zum Beispiel endlich meinen ganz persönlichen Pile of Shame veröffentlichen: Spiele, die längst in meiner Bibliothek liegen, die ich gekauft habe und trotzdem noch nie gestartet habe.

Oder irgendwann meine meistgespielten Spiele nach Stunden.

Das sind genau diese kleinen Datenspielereien, die ich auf meiner eigenen Seite ziemlich spannend finde.

Der Umstieg war erstaunlich unspektakulär

Das eigentliche Umschalten auf hnz.io ging mithilfe meiner generativen Assistenz ziemlich einfach.

Ein paar Werte in der config.php ändern, ein neues Import-Skript schreiben, API-Zugang eintragen, fertig.

Kommentare aus Floppy werden übernommen, die Bewertung auf einer Zehn-Punkte-Skala wird für hnz.io in fünf Sterne umgerechnet und das Skript merkt sich, welche Einträge es bereits importiert hat.

Und damit bin ich wieder ziemlich genau da, wo ich hinwollte:

Die komfortable Oberfläche zum Tracken darf ruhig eine spezialisierte Anwendung übernehmen. Meine eigentlichen Daten und das, was ich daraus veröffentliche, landen aber wieder bei mir.

Und dieses Mal läuft auch die Anwendung dazwischen auf meinem eigenen Server.

Das macht man doch nicht, Trakt

Das macht man doch nicht, Trakt

Auf hnz.io werden gerade keine zuletzt gesehenen Serien mehr importiert. Und es liegt diesmal nicht an mir! Wirklich!Diesmal jedenfalls nicht. Trakt hat meiner kleinen Anbindung schlicht den Stecker gezogen.

Ich finde es völlig in Ordnung, wenn ein Dienst versucht, Geld zu verdienen. Im Gegenteil: Bei vielen Projekten drücke ich sogar die Daumen, dass sie ein tragfähiges Geschäftsmodell finden. Server, Entwicklung und Support bezahlen sich nicht von freundlichen Gedanken. Ich weiß allerdings auch, wie oft genau an diesem Punkt die Enshittification beginnt: Ein Dienst wird erst nützlich, dann unverzichtbar und schließlich Stück für Stück schlechter oder geschlossener.

Monetarisierung allein ist noch keine Enshittification. Heimliche Verschlechterung kommt ihr aber schon ziemlich nahe.

Vorübergehend, aber ohne Vorwarnung

Noch im Februar erklärte Trakt im eigenen Forum, die öffentliche API sei kostenlos und auch ihre kommerzielle Nutzung nicht grundsätzlich eingeschränkt. Anfang August sah die Welt plötzlich anders aus. Kostenlose Konten konnten keine neuen API-Anwendungen mehr anlegen. Bei einigen verschwanden sogar bestehende Anwendungen, die zuvor funktioniert hatten. Wer eine neue App anlegen wollte, bekam stattdessen den Hinweis auf Trakt VIP.

Ganz abgeschaltet hat Trakt seine API also nicht. Der Zugang für kostenlose Entwicklerkonten wurde eingeschränkt und mein Serienimport ist dabei auf der Strecke geblieben. Trakt selbst bezeichnet das als vorübergehende Maßnahme, um Missbrauch zu verhindern. Das kann ein nachvollziehbarer Grund sein. Nur gab es offenbar weder eine vorherige Ankündigung noch einen Zeitplan und nicht einmal eine brauchbare Erklärung für die Menschen, deren Anwendungen plötzlich verschwunden waren.

Das ist der Teil, der mich ärgert. <dass Trakt Geld verdienen möchte: schön und gut. Dass ein Dienst seine Regeln ändert: Schon häufiger erlebt, komme ich mit klar. Aber dass ich die Änderung erst bemerke, weil auf meiner Website nichts mehr ankommt, das ist etwas Blöde.

Und dann war auch der RSS-Feed weg

Als Ausweichroute hätte mir sogar der Verlauf als RSS-Feed gereicht, hatte ich so designt. Wenn die API down ist, war das mein Fallback. Aber wenn ich die Seite jetzt ansurfe, begrüßt mich ein nicht ganz so freundlicher 404-Fehler. Seite nicht gefunden. Und das offenbar nicht nur bei kostenlosen Konten. Selbst Menschen mit laufendem VIP-Abo berichten von plötzlich nicht mehr funktionierenden RSS-Feeds. Eine offizielle Ankündigung dazu habe ich nicht gefunden.

Die API ohne Vorwarnung einschränken und gleichzeitig den RSS-Ausgang zumauern: Das macht man doch nicht. Trakt.

Zum Glück gibt es Ryot nicht bei Cloudron

Zum Glück bietet Cloudron Ryot nicht als fertige App an. Das meine ich nur halb ironisch. Sonst hätte ich vermutlich längst einen Abend, eine Nacht und den darauffolgenden Vormittag damit verbracht, meinen eigenen Medien-Tracker aufzusetzen.

Ryot steht für „Roll Your Own Tracker“ und ist genau die Sorte Projekt, bei der ich gefährlich schnell schwach werde. Die freie, selbst hostbare Anwendung verwaltet nicht nur Filme und Serien, sondern auch Bücher, Spiele, Musik, Podcasts und sogar Trainingseinheiten. Sie kann Daten unter anderem aus Trakt übernehmen, lässt sich mit Jellyfin, Plex, Kodi oder Emby verbinden und bringt Statistiken sowie eine eigene API mit. Die Daten liegen dabei auf dem eigenen Server.

Allerdings ist Ryot kein kleiner Schalter, den ich in Cloudron umlege. Die Installation läuft regulär über Docker, braucht PostgreSQL und je nach Medienart weitere Zugangsschlüssel, etwa für TMDB. Das wäre machbar. Und genau deshalb gefährlich. Ich möchte gerade eigentlich nur wieder drei Serien auf meiner Website anzeigen und nicht aus Versehen eine neue Infrastruktur betreiben.

Erst einmal Simkl

Wahrscheinlich lande ich deshalb vorerst bei Simkl. Der Dienst kann den Trakt-Export als ZIP-Datei übernehmen, einschließlich Verlauf, Merkliste und Bewertungen. Außerdem gibt es eine öffentliche API, über die ich den Serienimport für hnz.io neu bauen kann. Das klingt nach dem deutlich kürzeren Weg.

Natürlich ziehe ich damit erst einmal nur von einem fremden Dienst zum nächsten. Das ist keine große digitale Unabhängigkeitserklärung. Es ist eine pragmatische Lösung, während ich mir in Ruhe anschaue, was dauerhaft funktioniert und wie gut ich meine Daten dort wieder herausbekomme.

Bis dahin gibt es auf hnz.io keinen Serienimport. Ich arbeite dran, da soll sich ZUkunfts-Flo drum kümmern. Und Gegenwarts-Flo ärgert sich leise weiter, dass Trakt nicht nur die Tür abgeschlossen, sondern auch noch den RSS-Fallback zugeschraubt hat.

Was ich stattdessen vorziehe

Viel wichtiger als der Serienimport, ist die neue Blockroll, die ich hier als nächstes ausrollen will. Frank hat drüben bei rivva geschrieben, warum das wichtig ist.. Und Felix hat das Plugin von Christian Pfefferle gleich schon mal für Kirby quasi in Nullzeit angepasst und auf Github veröffentlicht. Danke dir! Und wenn dass dann bei mir ausgerollt ist und funktioniert, dann kümmere ich mich um mein neues, altes Medientracking.

Update: Blockroll ist drin.

Bleib beim CMS, denn Schreiben ist kein Deployment - mkln.org

https://mkln.org/p/bleib-beim-cms-denn-schreiben-ist-kein-deployment

Plädoyer fürs CMS statt Entwickler-Workflow: Schreiben braucht möglichst wenig Reibung, kein Git-Deployment. Guter Gedanke: Das Werkzeug soll dem Inhalt dienen – nicht umgekehrt.