Lequel convient à un projet de séries

TheTVDB se concentre sur les séries et conserve plusieurs ordres d'épisodes pour une série, dont l'ordre de diffusion, l'ordre DVD et l'ordre absolu, derrière un modèle de clé d'API. Consultez leur documentation sur la licence avant de planifier un produit commercial. Choisissez amodb si vous voulez séries, films et personnes avec une seule clé, des chemins TMDB v3 et 14 langues. Choisissez TheTVDB quand la numérotation alternative exacte est au centre de votre application, car amodb liste les groupes d'épisodes d'une série mais ne sert pas ce qu'ils contiennent.

Comment les données de séries se correspondent

Les concepts se recoupent, mais les noms diffèrent. Ce tableau couvre ce qu'une application de séries lit d'habitude.

BesoinApproche TheTVDBAppel amodb
Une sérieFiche de série par identifiant TVDBGET /3/tv/1396, après une recherche tvdb_id
Liste des saisonsVoir leur documentationTableau seasons dans les détails de la série
Une saison avec ses épisodesVoir leur documentationGET /3/tv/1396/season/1
Un épisodeVoir leur documentationGET /3/tv/1396/season/1/episode/1
Quels ordres existentOrdres de diffusion, DVD et absoluGET /3/tv/1396/episode_groups
Épisodes d'un ordre donnéVoir leur documentationNon proposé, /3/tv/episode_group/{id} répond 404
Prochain épisode à diffuserVoir leur documentationnext_episode_to_air dans les détails de la série

Les champs d'épisode utilisent les noms TMDB : air_date, episode_number, season_number, runtime et still_path. Les external_ids des saisons et des épisodes sont tous nuls, donc l'identifiant TVDB d'une saison ou d'un épisode ne peut pas être lu depuis amodb. Faites plutôt la jointure sur season_number et episode_number. Les détails sont sur saisons et épisodes.

Ce que renvoie la liste des groupes d'épisodes

L'appel de liste montre quels ordres existent pour une série. Il ne renvoie pas les épisodes qu'ils contiennent.

ChampSignification
idIdentifiant du groupe, une chaîne
nameNom de l'ordre, comme DVD / PVOD
descriptionTexte de la source, souvent vide
typeUn nombre qui indique le genre d'ordre
episode_countÉpisodes dans l'ordre
group_countBlocs dans l'ordre, comme des saisons
networkUn objet avec la chaîne, ou null

Voici une vraie réponse pour 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
    }
  ]
}

Certaines séries renvoient un seul ordre de diffusion et d'autres plusieurs, et certaines renvoient un tableau results vide. Testez les séries qui vous importent. Comme le contenu d'un groupe n'est pas proposé, une application qui a besoin du numéro DVD ou absolu de chaque épisode ne peut pas l'obtenir auprès d'amodb.

Comparatif des fonctionnalités

FonctionnalitéTheTVDBamodb
Modèle tarifaireModèle de clé d'API, voir leur documentation pour la licencePériodes prépayées de 1 à 24 mois
Offre gratuiteVoir leur documentationAucune, et pas d'essai
AuthentificationClé d'API, voir leur documentation pour le déroulementapi_key ou en-tête Bearer
Format de réponseJSON, voir leur documentationJSON au format TMDB v3
LanguesVoir leur documentation14 langues d'interface
FilmsVoir leur documentationOui
SériesOui, c'est son objectif principalOui, avec saisons et épisodes
PersonnesVoir leur documentationOui
ImagesVoir leur documentationimg.amodb.dev, sans clé
NotesVoir leur documentationIMDb et quatre autres sources quand elles sont connues
Limite de débitVoir leur documentation20, 40 ou 120 par minute et par clé
Usage commercialVoir leur documentation pour la licenceOffres payantes, voir les tarifs
CompatibilitéSa propre APILectures TMDB v3 et OMDb

Ce qui distingue amodb

  • Une clé pour tout le catalogue. Une série, sa distribution, ses bandes-annonces et un film qui partage un acteur utilisent la même URL de base et la même limite.
  • Les notes à côté du guide des épisodes. append_to_response=ratings sur les détails d'une série ajoute les notes IMDb et d'autres en un seul appel.
  • Des en-têtes simples pour réguler le débit. X-RateLimit-Remaining et X-RateLimit-Reset indiquent à un travail de synchronisation combien de requêtes restent dans la fenêtre de 60 secondes.
  • Noms d'origine conservés. Une série garde original_name pendant que name suit votre language, ce qui aide à afficher un titre dans sa langue d'origine.

Quand TheTVDB convient mieux

  • L'ordre est le produit. Si vos utilisateurs débattent de l'ordre DVD contre l'ordre de diffusion contre l'ordre absolu, TheTVDB en fait un élément central de son modèle. amodb nomme les ordres d'une série mais ne renvoie pas leurs épisodes, et les groupes qui existent diffèrent selon la série.
  • Intégrations existantes. Si votre chaîne de traitement stocke déjà des identifiants TheTVDB et lit ses ordres, gardez cette partie et ajoutez amodb pour les données supplémentaires.
  • Spécialisation séries. Si vous n'affichez jamais de films ni de personnes, une source construite autour des séries a moins de choses à apprendre.

Migrer vers amodb

Associez une fois vos identifiants TVDB stockés. Ensuite, utilisez l'identifiant amodb pour chaque appel. Le point de terminaison find ne résout que les identifiants de séries. Ses tableaux tv_season_results et tv_episode_results sont toujours vides : associez donc les saisons et les épisodes par numéro.

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);
}

La première requête renvoie Breaking Bad avec l'id 1396. La seconde liste les ordres qui existent pour cette série, avec leur taille. Pour comparer la numérotation avec ce que vous stockez aujourd'hui, lisez l'ordre de diffusion depuis /tv/{id}/season/{n} et gardez tout ordre alternatif du côté de TheTVDB. Faites cette vérification sur vos dix séries les plus regardées avant de migrer le reste.

Chaque appel compte pour une requête dans la fenêtre de 60 secondes, et une réponse 429 porte Retry-After. Voir recherche par identifiant externe et limites de débit.

Tarifs

amodb est prépayé, sans renouvellement automatique. Choisissez 1, 3, 6, 12 ou 24 mois et l'une des trois offres à 20, 40 ou 120 requêtes par minute. Les périodes plus longues bénéficient de 10, 20, 30 ou 40 pour cent de réduction, et chaque offre donne accès à toutes les données. Il n'y a pas d'offre gratuite. Les montants sont sur les tarifs.