API
El catálogo enumera todos los registros, primero los más populares: en un archivo por tipo para descargas masivas y en páginas de 250 para explorar. Se reconstruye cada día en una carpeta nueva, así que los archivos de un build nunca cambian; solo cambia el manifiesto.
Archivos
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
Cómo leerlo
- Lee
v1/catalog/manifest.jsonpara obtener el id del build actual, el tamaño de página y el número de registros y de páginas de cada tipo. - Descarga
v1/catalog/{build}/{type}/all.jsonpara todos los registros de un tipo, ov1/catalog/{build}/{type}/{n}.jsonpara la página n (empezando por 1).
Los archivos completos son grandes: unos 7 MB cada uno para series y películas y 30 MB para personas, un tercio de eso o menos comprimidos.
Entradas
Cada entrada es un array:
| Posición | Tipo | Descripción |
|---|---|---|
| 0 | number | Id del registro. |
| 1 | string | Slug del registro. |
| 2 | string | Nombre en inglés, u otro nombre si no hay uno en inglés. |
| 3 | number | null | Año, en el caso de los títulos. |
| 4 | number | Puntuación de popularidad de TheTVDB. La lista está ordenada por ella. |
| 5 | string | null | Ruta de la miniatura. |
Ejemplo
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())