Quelle API choisir
TMDB propose une API gratuite pour un usage admissible selon ses propres conditions, avec des clés d'API v3 et des jetons v4. Lisez ces conditions sur l'usage commercial et l'attribution avant de livrer. Choisissez une alternative quand vous voulez un contrat payant, une limite sur laquelle planifier ou plus de données par réponse. amodb est une API indépendante qui parle le protocole TMDB v3 en lecture : passer chez lui revient à changer l'URL de base et la clé. Il est en lecture seule, et quelques chemins TMDB ne sont pas proposés, comme indiqué plus bas.
Restez sur TMDB si les conditions gratuites conviennent à votre projet et que rien dans la section suivante ne vous concerne.
Signes qu'il vous faut une alternative
Cinq vérifications aident à décider. Faites-les sur votre propre trafic et votre propre contrat, pas sur une liste de fonctionnalités.
| Signe | Que tester | Réponse d'amodb |
|---|---|---|
| Conditions commerciales | Lire les conditions de l'API utilisée aujourd'hui pour l'usage commercial et l'attribution | Offres payantes, prépayées, sans renouvellement automatique |
| Trafic de pointe | Compter les requêtes de votre minute la plus chargée | Une limite fixe de 20, 40 ou 120 requêtes par minute et par clé |
| Données par écran | Lister les appels supplémentaires derrière une page de titre | append_to_response accepte aussi ratings, moods, soundtracks, wikidata et showtimes |
| Langue de l'interface | Vérifier chaque langue que vous livrez | 14 langues, toute autre se replie sur en |
| Coût de sortie | Compter les lignes de code qui nomment un fournisseur | Mêmes chemins et même JSON sur les points de terminaison servis : partir est aussi un changement d'URL de base |
Les réponses servies depuis le cache comptent aussi. La vérification de la clé et la limite de débit passent avant le cache de périphérie, donc une requête répétée consomme quand même l'une de vos requêtes par minute. Prévoyez le total des requêtes, pas seulement les échecs de cache.
Comparatif des fonctionnalités
| Fonctionnalité | TMDB | amodb |
|---|---|---|
| Modèle tarifaire | API gratuite pour un usage admissible selon ses propres conditions | Périodes prépayées de 1, 3, 6, 12 ou 24 mois |
| Offre gratuite | Oui, pour un usage admissible | Aucune, et pas d'essai |
| Authentification | Clé v3 dans api_key, ou jeton v4 en Bearer | api_key ou Bearer, clé de 32 caractères hexadécimaux |
| Format de réponse | JSON | JSON au format TMDB v3 |
| Langues | Voir leur documentation | 14 langues d'interface |
| Films | Oui | Oui |
| Séries | Oui | Oui, avec saisons et épisodes |
| Personnes | Oui | Oui |
| Images | Oui, depuis son propre hôte d'images | img.amodb.dev, mêmes jetons de taille, sans clé |
| Notes | Note des utilisateurs TMDB, voir leur documentation pour les autres sources | Note TMDB plus IMDb, Kinopoisk, Metacritic et Rotten Tomatoes quand elles sont connues |
| Méthodes d'écriture | Méthodes de compte, de liste et de notation | Non proposées, elles répondent 405 |
| Limite de débit | Voir leur documentation | 20, 40 ou 120 par minute et par clé |
| Usage commercial | Voir leurs conditions sur l'usage commercial et l'attribution | Vendu comme API payante, voir les tarifs |
| Compatibilité | Définit le protocole v3 | La plupart des chemins de lecture v3, plus OMDb |
Ce qui distingue amodb
- Des limites lisibles. Chaque réponse avec clé porte
X-RateLimit-Limit,X-RateLimit-RemainingetX-RateLimit-Reseten secondes. Une réponse 429 ajouteRetry-After. Les valeurs sont expliquées sur limites de débit. - Des blocs supplémentaires en un appel. Les notes de cinq sources, les ambiances, les bandes originales, les faits Wikidata et les séances de cinéma arrivent via
append_to_response, si bien qu'une page de titre peut se contenter d'une seule requête. - Plus de sources d'identifiants externes.
/3/findrésoutimdb_id,tvdb_id,wikidata_idetkinopoisk_id, ainsi quefacebook_id,twitter_idetinstagram_id. Voir recherche par identifiant externe. - OMDb sur la même clé.
https:/répond aux appels de style OMDb avec un paramètre/ api.amodb.dev/ omdb/ apikey, ce qui aide quand deux de vos systèmes utilisent des protocoles différents. - Des durées de cache connues. Les détails et les crédits restent 6 heures en périphérie, les tendances et la découverte 30 minutes, la recherche 10 minutes, la configuration 24 heures et les images 30 jours.
Quand TMDB convient mieux
- Les projets gratuits. Si votre usage est admissible selon les conditions gratuites, TMDB ne coûte rien et amodb ne peut pas rivaliser.
- Les méthodes d'écriture des utilisateurs. TMDB propose des méthodes d'écriture de compte, de session, de notation et de liste. amodb y répond par 405 et status_code 37 : une application qui permet de se connecter et de noter des titres doit garder TMDB pour cette partie.
- Les flux de changements. TMDB liste les identifiants modifiés. amodb n'a pas de tel flux, vous actualisez donc selon votre propre calendrier.
- Plus de 14 langues. amodb ne sert pas l'interface en allemand, en japonais ou en coréen et se replie sur l'anglais. Les titres originaux arrivent quand même dans
original_titleetoriginal_name. Pour les autres langues chez TMDB, voir leur documentation. - Des conditions déjà acceptées. Si la revue juridique est faite pour TMDB, changer vous coûte une nouvelle revue.
Ce qu'amodb ne propose pas
Vérifiez votre code avec cette liste avant la bascule. Le tableau complet est sur amodb et TMDB.
| Appel TMDB | Réponse d'amodb |
|---|---|
| Écritures de compte, de session, de notation et de liste | 405, status_code 37 |
| Changements, crédits agrégés, recherches de crédit et de critique, contenu des groupes d'épisodes | 404, status_code 34 |
| Traductions de personnes, images et traductions de collections, de sociétés et de chaînes | 404, status_code 34 |
| Liste des critiques d'un film ou d'une série | 200, vide pour la plupart des titres |
| Images, vidéos et traductions de saisons | 200, vide |
| Identifiants externes de saisons et d'épisodes | 200, tous nuls |
Deux comportements sont silencieux. Un nom d'append_to_response qu'amodb ne connaît pas, comme aggregate_credits, est ignoré sans erreur. Le paramètre include_adult est lui aussi ignoré, car les titres et les personnes pour adultes ne sont jamais servis.
Migrer vers amodb
- Choisissez une offre sur les tarifs et créez une clé dans le tableau de bord de votre compte.
- Remplacez l'URL de base et la clé à un seul endroit, comme ci-dessous.
- Lisez
images.secure_base_urldans/3/configurationpour que les liens d'images utilisentimg.amodb.dev. - Supprimez les appels aux méthodes d'écriture et aux chemins du tableau ci-dessus.
- Gérez le 429 en attendant le nombre de secondes de
Retry-After.
const config = {
// before: baseUrl held your current TMDB v3 base URL
baseUrl: 'https://api.amodb.dev/3',
apiKey: process.env.AMODB_KEY,
};
const res = await fetch(`${config.baseUrl}/movie/550?language=en-US`, {
headers: { Authorization: `Bearer ${config.apiKey}` },
});
if (!res.ok) throw new Error(`request failed with status ${res.status}`);
const movie = await res.json();
console.log(movie.title, movie.release_date);Lancez vos tests existants sur les deux URL de base avant la bascule. Une forme commune ne garantit pas des valeurs identiques, donc comparez un échantillon de vos propres titres. Le pas à pas complet est dans le démarrage rapide, et un tableau comparatif est sur amodb et TMDB.
La gestion des erreurs se transpose
Les appels en échec renvoient le corps TMDB {"success": false,, si bien que le code qui se branche sur status_code n'a pas besoin d'être réécrit.
| HTTP | status_code | Cause typique |
|---|---|---|
| 401 | 7 | Clé absente ou mal saisie |
| 401 | 10 | Clé suspendue |
| 402 | 36 | Période prépayée terminée |
| 404 | 34 | Id introuvable, ou chemin qu'amodb ne propose pas |
| 405 | 37 | Une méthode d'écriture que votre code appelle encore |
| 429 | 25 | Plus de requêtes que l'offre n'en autorise en 60 secondes |
Considérez le 402 comme un signal pour renouveler à la main, car rien ne se renouvelle automatiquement. La liste complète est sur erreurs.
Tarifs
amodb est prépayé. Choisissez une période de 1, 3, 6, 12 ou 24 mois, qui donne 0, 10, 20, 30 ou 40 pour cent de réduction, et l'une des trois offres à 20, 40 ou 120 requêtes par minute. Chaque offre donne accès à toutes les données et rien ne se renouvelle automatiquement. Il n'y a ni offre gratuite ni essai. Les montants actuels sont sur les tarifs.