Care se potrivește unui proiect TV

TheTVDB este axat pe TV și păstrează mai multe ordini de episoade pentru un serial, inclusiv cea de difuzare, DVD și absolută, în spatele unui model cu cheie API. Vezi documentația lor pentru licențiere înainte să planifici un produs comercial. Alege amodb când vrei seriale, filme și persoane dintr-o singură cheie, căi TMDB v3 și 14 limbi. Alege TheTVDB când numerotarea alternativă exactă este centrul aplicației tale, pentru că amodb listează grupurile de episoade ale unui serial, dar nu servește ce se află în ele.

Cum se potrivesc datele TV între cele două

Conceptele se aliniază, dar numele diferă. Acest tabel acoperă ce citește de obicei o aplicație TV.

NevoieAbordarea TheTVDBApelul amodb
Un serialFișa serialului după ID TVDBGET /3/tv/1396, după o căutare tvdb_id
Lista de sezoaneVezi documentația lorarray-ul seasons din detaliile serialului
Un sezon cu episoadeVezi documentația lorGET /3/tv/1396/season/1
Un episodVezi documentația lorGET /3/tv/1396/season/1/episode/1
Ce ordini existăOrdini de difuzare, DVD și absolutăGET /3/tv/1396/episode_groups
Episoadele dintr-o ordineVezi documentația lorNu este oferit, /3/tv/episode_group/{id} răspunde 404
Următorul episod difuzatVezi documentația lornext_episode_to_air în detaliile serialului

Câmpurile de episod folosesc numele TMDB: air_date, episode_number, season_number, runtime și still_path. external_ids de sezon și de episod sunt toate null, deci un ID TVDB al unui singur sezon sau episod nu poate fi citit de la amodb. Fă legătura după season_number și episode_number. Detaliile sunt la sezoane și episoade.

Ce întoarce lista grupurilor de episoade

Apelul de listă arată ce ordini există pentru un serial. Nu întoarce episoadele din ele.

CâmpSemnificație
idID-ul grupului, un șir
nameNumele ordinii, precum DVD / PVOD
descriptionText din sursă, adesea gol
typeUn număr care spune ce fel de ordine este
episode_countEpisoadele din ordine
group_countBlocurile din ordine, precum sezoanele
networkUn obiect cu rețeaua, sau null

Acesta este un răspuns real pentru Breaking Bad.

JSON
{
  "id": 1396,
  "results": [
    {
      "description": "Seasons grouped as they appear on DVD, as well as paid video-on-demand services, such as Prime Video and YouTube.",
      "episode_count": 62,
      "group_count": 6,
      "id": "69f50757054263b7bc87e32a",
      "name": "DVD / PVOD",
      "network": null,
      "type": 3
    }
  ]
}

Unele seriale întorc o singură ordine de difuzare, iar altele mai multe, iar unele întorc un array results gol. Testează serialele care te interesează. Pentru că conținutul unui grup nu este oferit, o aplicație care are nevoie de numărul DVD sau absolut al fiecărui episod nu îl poate obține de la amodb.

Comparația funcțiilor

FuncțieTheTVDBamodb
Model de prețModel cu cheie API, vezi documentația lor pentru licențierePerioade plătite în avans de la 1 la 24 de luni
Nivel gratuitVezi documentația lorNiciunul, și fără perioadă de probă
AutentificareCheie API, vezi documentația lor pentru fluxapi_key sau antet Bearer
Format de răspunsJSON, vezi documentația lorJSON în structura TMDB v3
LimbiVezi documentația lor14 limbi de interfață
FilmeVezi documentația lorDa
TVDa, accentul său principalDa, cu sezoane și episoade
PersoaneVezi documentația lorDa
ImaginiVezi documentația lorimg.amodb.dev, fără cheie
EvaluăriVezi documentația lorIMDb și alte patru surse, unde se știu
Limită de cereriVezi documentația lor20, 40 sau 120 pe minut pe cheie
Utilizare comercialăVezi documentația lor pentru licențierePlanuri cu plată, vezi prețuri
CompatibilitatePropriul APICitiri TMDB v3 și OMDb

Prin ce diferă amodb

  • O cheie pentru tot catalogul. Un serial, distribuția lui, trailerele lui și un film care împarte un actor folosesc același URL de bază și aceeași limită.
  • Evaluări lângă ghidul de episoade. append_to_response=ratings pe detaliile serialului adaugă IMDb și alte scoruri într-un singur apel.
  • Antete simple pentru ritm. X-RateLimit-Remaining și X-RateLimit-Reset spun unui job de sincronizare câte cereri au mai rămas în fereastra de 60 de secunde.
  • Nume originale păstrate. Un serial păstrează original_name, în timp ce name urmează language, ceea ce ajută când arăți un titlu nativ.

Când TheTVDB se potrivește mai bine

  • Ordinea este produsul. Dacă utilizatorii tăi se ceartă pe ordinea DVD față de cea de difuzare față de cea absolută, TheTVDB o tratează ca pe o parte centrală a modelului său. amodb numește ordinile unui serial, dar nu le întoarce episoadele, iar grupurile existente diferă de la un serial la altul.
  • Integrări existente. Dacă fluxul tău stochează deja ID-uri TheTVDB și citește ordinile lui, păstrează acea parte și adaugă amodb pentru datele suplimentare.
  • Accent pe TV. Dacă nu arăți niciodată filme sau persoane, o sursă construită în jurul TV are mai puțin de învățat.

Migrarea la amodb

Mapează o singură dată ID-urile TVDB stocate. După aceea, folosește ID-ul amodb pentru fiecare apel. Endpoint-ul find rezolvă doar ID-uri de seriale. Array-urile lui tv_season_results și tv_episode_results sunt mereu goale, așa că mapează sezoanele și episoadele după număr.

JavaScript
const key = process.env.AMODB_KEY;
const headers = { Authorization: `Bearer ${key}` };
const base = 'https://api.amodb.dev/3';

async function getJson(path) {
  const res = await fetch(`${base}${path}`, { headers });
  if (!res.ok) throw new Error(`${path} returned ${res.status}`);
  return res.json();
}

const found = await getJson('/find/81189?external_source=tvdb_id');
const show = found.tv_results[0];
console.log(show.id, show.name);

const groups = await getJson(`/tv/${show.id}/episode_groups`);
for (const g of groups.results) {
  console.log(g.name, g.type, g.episode_count);
}

Prima cerere întoarce Breaking Bad cu ID-ul 1396. A doua listează ordinile care există pentru acel serial, cu dimensiunile lor. Ca să compari numerotarea cu ce stochezi acum, citește ordinea de difuzare din /tv/{id}/season/{n} și păstrează orice ordine alternativă pe partea TheTVDB. Fă această verificare pe cele zece seriale cele mai urmărite înainte să muți restul.

Fiecare apel se numără ca o cerere în fereastra de 60 de secunde, iar un 429 poartă Retry-After. Vezi căutare după ID extern și limite de cereri.

Prețuri

amodb este plătit în avans, fără reînnoire automată. Alege 1, 3, 6, 12 sau 24 de luni și unul dintre trei planuri de 20, 40 sau 120 de cereri pe minut. Perioadele mai lungi au reduceri de 10, 20, 30 sau 40 la sută, iar fiecare plan primește toate datele. Nu există nivel gratuit. Sumele sunt la prețuri.