API
Der Katalog listet alle Datensätze auf, die beliebtesten zuerst: in einer Datei pro Typ für Massendownloads und in Seiten zu je 250 zum Durchblättern. Er wird täglich in einem neuen Ordner neu erstellt, daher ändern sich die Dateien eines Builds nie; nur das Manifest ändert sich.
Dateien
https://api.watchittrackit.com/v1/catalog/manifest.jsonhttps://api.watchittrackit.com/v1/catalog/{build}/{type}/all.jsonhttps://api.watchittrackit.com/v1/catalog/{build}/{type}/{n}.json
So liest du ihn
- Lies
v1/catalog/manifest.jsonfür die aktuelle Build-ID, die Seitengröße und die Anzahl der Datensätze und Seiten pro Typ. - Lade
v1/catalog/{build}/{type}/all.jsonfür alle Datensätze eines Typs herunter oderv1/catalog/{build}/{type}/{n}.jsonfür Seite n (beginnend bei 1).
Die vollständigen Dateien sind groß: etwa 7 MB je für Serien und Filme und 30 MB für Personen, komprimiert ein Drittel davon oder weniger.
Einträge
Jeder Eintrag ist ein Array:
| Position | Typ | Beschreibung |
|---|---|---|
| 0 | number | ID des Datensatzes. |
| 1 | string | Slug des Datensatzes. |
| 2 | string | Englischer Name oder ein anderer Name, wenn es keinen englischen gibt. |
| 3 | number | null | Jahr, bei Titeln. |
| 4 | number | Beliebtheitswert von TheTVDB. Die Liste ist danach sortiert. |
| 5 | string | null | Pfad des Vorschaubilds. |
Beispiel
const BASE = "https://api.watchittrackit.com/v1/catalog"
const manifest = await fetch(`${BASE}/manifest.json`).then((r) => r.json())
// { "build": "20261001-063000", "pageSize": 250,
// "types": { "tv": { "count": 70734, "pages": 283 }, "movie": { … }, "person": { … } } }
// Page 1 of TV shows, most popular first
const page = await fetch(`${BASE}/${manifest.build}/tv/1.json`).then((r) => r.json())
// [[81189, "breaking-bad", "Breaking Bad", 2008, 3287090, "/images/tv/81189/….t.jpg"], …]
// Every movie at once
const movies = await fetch(`${BASE}/${manifest.build}/movie/all.json`).then((r) => r.json())