La comparaison en bref
amodb est une API indépendante qui parle le même protocole que TMDB v3. Un client écrit pour TMDB lit depuis amodb après le changement de l'URL de base et de la clé, tant qu'il n'appelle aucun chemin du tableau des éléments non proposés ci-dessous. Le choix porte donc sur les conditions, les extras et quelques manques. TMDB propose une API gratuite pour un usage admissible selon ses propres conditions. amodb est une API payante en lecture seule, avec 14 langues, cinq blocs de données supplémentaires et une limite comptée par clé.
Parité des points de terminaison
Chaque ligne montre un chemin de lecture TMDB v3 et son comportement sur https:/.
| Domaine | Chemin TMDB v3 | Sur amodb |
|---|---|---|
| Détails d'un film | /movie/{movie_id} | Identique, avec cinq valeurs append_to_response en plus |
| Détails d'une série | /tv/{series_id} | Identique, mais sans champ type, et created_by est vide pour la plupart des séries |
| Saisons et épisodes | / | Même forme. Les images, vidéos et traductions de saisons sont vides, et les external_ids des saisons et des épisodes sont nuls |
| Personnes | /person/{person_id} | Identique, avec combined_credits, movie_credits, tv_credits, external_ids et images (profils uniquement) |
| Crédits | / | Identique. Sur les épisodes, cast est vide |
| Recherche | /search/multi | Identique, en cache 10 minutes |
| Découverte | /discover/movie | Identique, en cache 30 minutes |
| Tendances | / | Identique, en cache 30 minutes |
| Listes | /movie/popular | Identique, page de 1 à 500 |
| Images | / | Même forme, les fichiers se chargent depuis img.amodb.dev |
| Vidéos | / | Identique |
| Traductions | / | Identique, 14 langues servies |
| Mots-clés | / | Identique |
| Critiques | / | Répond 200, mais seuls quelques titres ont des critiques : une liste vide est normale |
| Collections | / | Identique, parts triés par date de sortie |
| Sociétés et chaînes | /company/{company_id} | Mêmes clés. La description d'une société est vide et parent_company est null |
| Genres | /genre/movie/list | Identique |
| Configuration | /configuration | Mêmes clés, l'hôte des images est img.amodb.dev |
| Recherche par identifiant externe | /find/{external_id} | Même point de terminaison, plus kinopoisk_id. tv_episode_results et tv_season_results sont toujours vides |
| Groupes d'épisodes | / | Liste les groupes d'une série, sans leur contenu |
Non proposé sur amodb
Ces appels TMDB v3 n'ont pas d'équivalent. Les chemins inconnus répondent 404 avec status_code 34, et les méthodes d'écriture répondent 405 avec status_code 37.
| Appel TMDB v3 | Réponse d'amodb |
|---|---|
/movie/changes, /tv/changes, /person/changes et changes sous un identifiant | 404, status_code 34 |
aggregate_credits sous une série ou une saison | 404, status_code 34 |
/credit/{credit_id} et /review/{review_id} | 404, status_code 34 |
/tv/episode_group/{id} | 404, status_code 34 |
/, tagged_images et /person/latest | 404, status_code 34 |
images, translations et alternative_names pour les collections, les sociétés et les chaînes | 404, status_code 34 |
/ | 404, status_code 34 |
Tout ce qui est sous account, authentication, guest_session et list, ainsi que tout chemin /rating ou /account_states | 405, status_code 37 |
Si vous ajoutez aggregate_credits ou changes à append_to_response, amodb ignore le nom sans erreur, et la clé est donc simplement absente du corps.
Comparatif des fonctionnalités
| Fonctionnalité | TMDB | amodb |
|---|---|---|
| Modèle tarifaire | Gratuit pour un usage admissible, selon les conditions de TMDB | Prépayé, de 1 à 24 mois par achat |
| 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 avec une clé hexadécimale de 32 caractères |
| Format de réponse | JSON | JSON, mêmes champs sur les chemins servis |
| Langues | Voir leur documentation | 14 servies, les autres balises se replient sur en |
| Films | Oui | Oui |
| Séries | Oui | Oui |
| Personnes | Oui | Oui |
| Images | Oui | img.amodb.dev, tailles de w92 à original |
| Notes | Note des utilisateurs TMDB, autres sources : voir leur documentation | Cinq sources dans un seul objet quand elles sont connues |
| Méthodes d'écriture | Méthodes de compte, de liste et de notation | Aucune, 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 | Offres payantes, voir les tarifs |
| Compatibilité | Définit TMDB v3 | La plupart des chemins de lecture TMDB v3 et une route OMDb |
Ce qui diffère en détail
- Conditions. TMDB vous demande de lire ses conditions sur l'usage commercial et l'attribution. amodb se vend par période prépayée, sans renouvellement automatique, sans offre gratuite et sans essai.
- Langues. amodb sert en, ru, uk, be, zh, pt, bg, he, cs, ro, fr, pl, it et es. Il accepte les balises TMDB comme
ru-RUetpt-BR. L'allemand, le japonais et le coréen se replient suren, tandis queoriginal_titlegarde le titre d'origine. Pour la couverture linguistique de TMDB, voir leur documentation. Voir langues. - Extensions.
append_to_responseaccepte aussimoods,soundtracks,ratings,wikidataetshowtimes, et chacune a son propre chemin sous les films et les séries. - Identifiants externes.
/3/findrésoutimdb_id,tvdb_id,wikidata_id,kinopoisk_id,facebook_id,twitter_idetinstagram_id. Les sourcesfreebase_mid,freebase_id,tvrage_id,tiktok_idetyoutube_idsont acceptées mais renvoient des tableaux vides. Unexternal_sourceabsent ou inconnu répond 400 avecstatus_code22. - Vide par conception. Les images, vidéos et traductions de saisons ainsi que la
descriptiond'une société sont toujours vides. Les critiques etcreated_byd'une série ne sont remplis que pour quelques titres. Lesexternal_idsdes saisons et des épisodes sont tous nuls. - Titres pour adultes.
include_adultest ignoré. Les titres et les personnes pour adultes ne sont jamais servis et répondent 404. - Images. Le chemin du CDN est
https:/. Aucune clé n'est nécessaire et les fichiers sont mis en cache 30 jours./ img.amodb.dev/ t/ p/ {size}/ {file} - Limites. La fenêtre est une fenêtre glissante de 60 secondes par clé. Les en-têtes indiquent le nombre restant, et les réponses servies depuis le cache comptent quand même, car la vérification de la limite passe en premier.
- Indépendance. Le catalogue vient de sources publiques et ouvertes et de notre propre enrichissement. Une forme commune ne garantit pas des valeurs identiques pour chaque champ de chaque titre.
Quand TMDB convient mieux
- Usage gratuit admissible. Aucun paiement n'est nécessaire, et amodb ne peut pas rivaliser.
- Écritures. Noter un titre, créer une liste et gérer les sessions de compte fonctionnent sur TMDB. Sur amodb, elles renvoient 405.
- Flux de changements. TMDB liste les identifiants modifiés. amodb n'a pas de tel flux, vous actualisez donc selon votre propre calendrier.
- Crédits agrégés et recherches de crédit. Les deux répondent 404 sur amodb. Utilisez
/creditssur le titre. - Besoins linguistiques plus larges. Si votre interface exige une langue en dehors des 14, regardez d'abord chez TMDB.
- Validation existante. Une équipe qui a validé TMDB avec une revue juridique doit peser le coût d'une seconde revue.
Migrer vers amodb
Le changement tient en une ligne par requête.
# before: TMDB_BASE is your current TMDB v3 base URL
curl -s "$TMDB_BASE/movie/550?api_key=$TMDB_KEY"
# after
curl -s "https://api.amodb.dev/3/movie/550?api_key=$AMODB_KEY"Avant la bascule, comparez côte à côte la forme de quelques réponses. Ce script affiche les clés de premier niveau qu'un côté renvoie et pas l'autre.
async function topLevelKeys(base, key, path) {
const res = await fetch(`${base}${path}?api_key=${key}`);
if (!res.ok) throw new Error(`${path} returned ${res.status}`);
return Object.keys(await res.json()).sort();
}
for (const path of ['/movie/550', '/tv/1396', '/person/31']) {
const current = await topLevelKeys(process.env.TMDB_BASE, process.env.TMDB_KEY, path);
const next = await topLevelKeys('https://api.amodb.dev/3', process.env.AMODB_KEY, path);
const missing = current.filter((k) => !next.includes(k));
console.log(path, missing.length ? `missing: ${missing.join(', ')}` : 'same keys');
}Les champs facultatifs peuvent différer pour un titre donné, donc lisez une clé manquante comme une piste à examiner et non comme un verdict. Parcourez ensuite cette liste :
- Choisissez une offre sur les tarifs, puis créez une clé dans le tableau de bord de votre compte.
- Déplacez l'URL de base et la clé dans la configuration.
- Lisez
images.secure_base_urldans/3/configuration. - Cherchez dans votre code les appels d'écriture et les chemins du tableau des éléments non proposés. Gardez les écritures sur TMDB et remplacez le reste.
- Ajoutez un gestionnaire de 429 qui attend
Retry-Aftersecondes. Voir limites de débit et erreurs.
Tarifs
amodb est prépayé. Choisissez 1, 3, 6, 12 ou 24 mois, qui donnent 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 renvoie toutes les données, et aucune ne se renouvelle toute seule. Voir les tarifs pour les montants.