Watch It? Track It.

Bir dizinin base.json dosyası tüm sezonlarını ve bölümlerini içerir, böylece tek bir istekle dizinin tamamı alınır. Dizinin, sezonlarının ve bölümlerinin adları ve açıklamaları dil dosyalarındadır.

Dosyalar

  • https://api.watchittrackit.com/v1/tv/{id}/base.json
  • https://api.watchittrackit.com/v1/tv/{id}/{lang}.json
  • https://api.watchittrackit.com/v1/tv/slugs/{shard}.json

Görsel, full ve thumb yollarına sahip bir nesnedir.

base.json

AlanTürAçıklama
typestringKayıt türü.
idnumberTheTVDB kimliği.
slugstringURL slug'ı, tür içinde benzersiz.
popularitynumberTheTVDB popülerlik puanı; yüksek olan daha popülerdir. Puanlar yalnızca aynı tür içinde karşılaştırılabilir.
deletedbooleanKayıt kaldırıldıysa true. Dosyaları yayımlanmaya devam eder.
firstAiredstringİlk bölümün tarihi (YYYY-MM-DD).
lastAiredstringEn son bölümün tarihi.
statusstringTheTVDB'deki yayın durumu, örneğin Continuing veya Ended.
networkstringKanal.
originalLanguagestringOrijinal dil kodu.
originalCountrystringOrijinal ülke (üç harfli kod).
imageimageAna görsel: yapımlar için afiş, kişiler için fotoğraf.
images{ [kind]: image }Her türün en iyi görseli: poster, background, banner, icon, clearart, clearlogo.
imagesByLang{ [kind]: image[] }Tür başına, her dildeki en iyi görsel; dil kodu, boyutu ve puanıyla birlikte.
castcredit[]Jenerik sırasına göre oyuncular.
crewcredit[]Görevleriyle birlikte diğer tüm katkıda bulunanlar.
topBilledIdsnumber[]Önce gösterilecek kişilerin kimlikleri.
seasonsseason[]Yayın sırasına göre sezonlar, her biri bölümleriyle birlikte.
genresstring[]TheTVDB'nin tanımladığı şekliyle tür slug'ları.
languagesstring[]Bu kaydın dosyası bulunan diller.
remoteIds{ [site]: string }Diğer sitelerdeki kimlikler (imdb, tmdb, wikidata, …), siteye göre anahtarlanmış.

Örnek

{
  "type": "tv",
  "id": 81189,
  "slug": "breaking-bad",
  "popularity": 3287090,
  "deleted": false,
  "firstAired": "2008-01-20",
  "lastAired": "2013-09-29",
  "status": "Ended",
  "images": {
    "poster": { "full": "/images/tv/81189/1340353429.jpg", "thumb": "/images/tv/81189/1340353429.t.jpg" }
  },
  "cast": [
    { "id": 255211, "activityId": 180, "role": "Walter White", "slug": "bryan-cranston", "topBilled": false, "deleted": false }
  ],
  "seasons": [
    {
      "id": 30272, "number": 1, "deleted": false,
      "episodes": [{ "id": 349232, "number": 1, "aired": "2008-01-20", "runtime": 58, "deleted": false }]
    }
  ],
  "genres": ["drama", "crime"],
  "languages": ["de", "en", "fr"],
  "remoteIds": { "imdb": "tt0903747" }
}

Sezonlar

AlanTürAçıklama
idnumberTheTVDB kimliği.
numbernumberSezon numarası; 0 özel bölümlerdir.
deletedbooleanKayıt kaldırıldıysa true. Dosyaları yayımlanmaya devam eder.
imageimageAna görsel: yapımlar için afiş, kişiler için fotoğraf.
images{ [kind]: image }Her türün en iyi görseli: poster, background, banner, icon, clearart, clearlogo.
imagesByLang{ [kind]: image[] }Tür başına, her dildeki en iyi görsel; dil kodu, boyutu ve puanıyla birlikte.
episodesepisode[]Sezonun bölümleri.

Bölümler

AlanTürAçıklama
idnumberTheTVDB kimliği.
numbernumberSezon içindeki bölüm numarası.
airedstringYayın tarihi (YYYY-MM-DD).
runtimenumberDakika cinsinden süre.
imageimageAna görsel: yapımlar için afiş, kişiler için fotoğraf.
criticalToStorybooleanHikâye için önemli olarak işaretlenmiş.
specialTypestringÖzel bölümün türü (0. sezon bölümleri).
deletedbooleanKayıt kaldırıldıysa true. Dosyaları yayımlanmaya devam eder.

Katkıda bulunanlar

cast ve crew içindeki her öğe:

AlanTürAçıklama
idnumberKişi kimliği.
activityIdnumberKatkı kimliği, her katkı için benzersiz.
rolestringCanlandırılan karakter (oyuncular).
jobstringGörev (ekip): director, writer, producer, …
slugstringKişinin slug'ı.
imageimageKişinin fotoğrafı.
topBilledbooleanÖne çıkan bir katkı.
deletedbooleanKişi kaldırıldıysa true.

Dil dosyaları

AlanTürAçıklama
typestringKayıt türü.
idnumberTheTVDB kimliği.
langstringBu dosyanın dili.
namestringBu dildeki ad.
overviewstringBu dildeki açıklama.
credits{ [personId]: { name, role } }Kişi kimliğine göre: kişinin bu dildeki adı ve rolü.
seasons{ [seasonId]: { name, overview } }Sezon kimliğine göre: sezonun adı ve açıklaması.
episodes{ [episodeId]: { name, overview } }Bölüm kimliğine göre: bölümün adı ve açıklaması.

Örnek

{
  "type": "tv",
  "id": 81189,
  "lang": "en",
  "name": "Breaking Bad",
  "overview": "When Walter White, a chemistry teacher, …",
  "credits": { "255211": { "name": "Bryan Cranston", "role": "Walter White" } },
  "seasons": { "30272": { "overview": "High school chemistry teacher Walter White…" } },
  "episodes": { "349232": { "name": "Pilot", "overview": "When an unassuming high school chemistry teacher…" } }
}

Bir yapımı slug'ıyla bulma

Dizi ve film URL'leri slug kullanır (breaking-bad). Slug dizini her slug'ı kimliğiyle eşler ve 256 küçük dosyaya bölünmüştür: bir slug'ın dosyası, slug'ın SHA-1 değerinin ilk iki onaltılık karakteriyle adlandırılır.

// Node.js
import { createHash } from "node:crypto"

const slug = "breaking-bad"
const shard = createHash("sha1").update(slug, "utf8").digest("hex").slice(0, 2)
const index = await fetch(`https://api.watchittrackit.com/v1/tv/slugs/${shard}.json`).then((r) => r.json())
const id = index[slug]
const record = await fetch(`https://api.watchittrackit.com/v1/tv/${id}/base.json`).then((r) => r.json())