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.
| Besoin | Approche TheTVDB | Appel amodb |
|---|---|---|
| Une série | Fiche de série par identifiant TVDB | GET /3/tv/1396, après une recherche tvdb_id |
| Liste des saisons | Voir leur documentation | Tableau seasons dans les détails de la série |
| Une saison avec ses épisodes | Voir leur documentation | GET / |
| Un épisode | Voir leur documentation | GET / |
| Quels ordres existent | Ordres de diffusion, DVD et absolu | GET / |
| Épisodes d'un ordre donné | Voir leur documentation | Non proposé, / répond 404 |
| Prochain épisode à diffuser | Voir leur documentation | next_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.
| Champ | Signification |
|---|---|
id | Identifiant du groupe, une chaîne |
name | Nom de l'ordre, comme DVD / PVOD |
description | Texte de la source, souvent vide |
type | Un nombre qui indique le genre d'ordre |
episode_count | Épisodes dans l'ordre |
group_count | Blocs dans l'ordre, comme des saisons |
network | Un objet avec la chaîne, ou null |
Voici une vraie réponse pour Breaking Bad.
{
"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é | TheTVDB | amodb |
|---|---|---|
| Modèle tarifaire | Modèle de clé d'API, voir leur documentation pour la licence | Périodes prépayées de 1 à 24 mois |
| Offre gratuite | Voir leur documentation | Aucune, et pas d'essai |
| Authentification | Clé d'API, voir leur documentation pour le déroulement | api_key ou en-tête Bearer |
| Format de réponse | JSON, voir leur documentation | JSON au format TMDB v3 |
| Langues | Voir leur documentation | 14 langues d'interface |
| Films | Voir leur documentation | Oui |
| Séries | Oui, c'est son objectif principal | Oui, avec saisons et épisodes |
| Personnes | Voir leur documentation | Oui |
| Images | Voir leur documentation | img.amodb.dev, sans clé |
| Notes | Voir leur documentation | IMDb et quatre autres sources quand elles sont connues |
| Limite de débit | Voir leur documentation | 20, 40 ou 120 par minute et par clé |
| Usage commercial | Voir leur documentation pour la licence | Offres payantes, voir les tarifs |
| Compatibilité | Sa propre API | Lectures 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_sur les détails d'une série ajoute les notes IMDb et d'autres en un seul appel.to_ response= ratings - Des en-têtes simples pour réguler le débit.
X-RateLimit-RemainingetX-RateLimit-Resetindiquent à 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_namependant quenamesuit votrelanguage, 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.
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.