API
Il catalogo elenca tutti i record, prima i più popolari: in un file per tipo per i download in blocco e in pagine da 250 per la consultazione. Viene ricostruito ogni giorno in una nuova cartella, quindi i file di una build non cambiano mai; cambia solo il manifest.
File
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
Come leggerlo
- Leggi
v1/catalog/manifest.jsonper ottenere l'id della build corrente, la dimensione delle pagine e il numero di record e di pagine di ciascun tipo. - Scarica
v1/catalog/{build}/{type}/all.jsonper tutti i record di un tipo, oppurev1/catalog/{build}/{type}/{n}.jsonper la pagina n (a partire da 1).
I file completi sono grandi: circa 7 MB ciascuno per serie TV e film e 30 MB per le persone, un terzo di questo o meno se compressi.
Voci
Ogni voce è un array:
| Posizione | Tipo | Descrizione |
|---|---|---|
| 0 | number | Id del record. |
| 1 | string | Slug del record. |
| 2 | string | Nome inglese, o un altro nome se non ne esiste uno inglese. |
| 3 | number | null | Anno, per i titoli. |
| 4 | number | Punteggio di popolarità di TheTVDB. L'elenco è ordinato in base a questo valore. |
| 5 | string | null | Percorso della miniatura. |
Esempio
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())