API
카탈로그에는 모든 레코드가 인기순으로 나열됩니다. 대량 다운로드용으로 유형별 파일 하나에, 둘러보기용으로 250개씩 페이지로 제공됩니다. 매일 새 폴더에 다시 빌드되므로 한 빌드의 파일은 절대 바뀌지 않으며, 매니페스트만 바뀝니다.
파일
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
읽는 방법
v1/catalog/manifest.json을 읽어 현재 빌드 id, 페이지 크기, 유형별 레코드 수와 페이지 수를 확인합니다.- 한 유형의 모든 레코드는
v1/catalog/{build}/{type}/all.json을, n번째 페이지(1부터 시작)는v1/catalog/{build}/{type}/{n}.json을 내려받습니다.
전체 파일은 용량이 큽니다. TV와 영화는 각각 약 7 MB, 인물은 약 30 MB이며, 압축하면 그 3분의 1 이하입니다.
항목
각 항목은 배열입니다:
| 위치 | 유형 | 설명 |
|---|---|---|
| 0 | number | 레코드 id. |
| 1 | string | 레코드 슬러그. |
| 2 | string | 영어 이름. 영어 이름이 없으면 다른 이름. |
| 3 | number | null | 연도(작품의 경우). |
| 4 | number | TheTVDB 인기 점수. 목록은 이 점수로 정렬됩니다. |
| 5 | string | null | 썸네일 경로. |
예시
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())