Choisir selon la forme de vos appels

Choisissez OMDb si vous voulez une petite fiche par titre et que sa clé gratuite couvre votre volume. Choisissez amodb quand vous dépassez cette limite, ou quand vous voulez le même style de requête OMDb à côté de la distribution, des images et des traductions sur une seule clé. OMDb renvoie du JSON ou du XML, utilise un paramètre apikey et propose une clé gratuite avec un plafond quotidien de 1 000 requêtes (voir leur site), ainsi qu'un niveau payant pour les soutiens. amodb est uniquement payant et répond aux principaux paramètres OMDb ainsi qu'à TMDB v3.

Ce qui ne change pas

Le point de terminaison OMDb se trouve à https://api.amodb.dev/omdb/, et la barre oblique finale est facultative. Votre code d'analyse existant ne devrait pas avoir besoin de modifications pour ces éléments.

Élément OMDbSur amodb
apikeyMême paramètre, rempli avec votre clé amodb
i et tRecherche par identifiant IMDb ou par titre
s et pageRecherche avec 10 résultats par page et un compteur totalResults, page jusqu'à 100
type et yFiltre par movie ou series et par année
plotshort ou full
rSeul json est accepté
Champs du corpsNommés comme dans OMDb, de Title à Response
RatingsUn tableau de paires Source et Value pour Internet Movie Database, Rotten Tomatoes et Metacritic, quand elles existent
Erreurs{"Response":"False","Error":"..."} avec la formulation OMDb, dans une réponse HTTP 200

Ce qui ne passe pas

  • XML. Une requête avec r=xml renvoie 400 avec {"Response":"False","Error":"Only r=json is supported."}.
  • Saisons et épisodes. Season et Episode sont ignorés, et type=episode ne trouve rien. Une requête avec i=tt0903747&Season=1 renvoie la fiche de la série, pas une saison. Utilisez /3/tv/{id}/season/{n} pour les épisodes.
  • Autres paramètres. callback est ignoré.
  • Champs sans données. DVD, Production et Website valent toujours "N/A". Les fiches de séries ont totalSeasons et omettent DVD, BoxOffice, Production et Website.
  • Affiches. Le champ Poster pointe vers https://img.amodb.dev/t/p/w300/... au lieu d'un autre hôte. Remplacez w300 par w780 pour obtenir une image plus grande avec le même chemin, et les images n'exigent aucune clé.

La liste complète des paramètres et des erreurs est sur la page du point de terminaison OMDb.

Exemple de réponse

Une requête avec t=Fight Club renvoie un objet plat. La réponse ci-dessous est réelle, seul le texte de Plot a été raccourci.

JSON
{
  "Title": "Fight Club",
  "Year": "1999",
  "Rated": "R",
  "Released": "15 Oct 1999",
  "Runtime": "139 min",
  "Genre": "Crime, Drama, Thriller",
  "Director": "David Fincher",
  "Writer": "Chuck Palahniuk, Jim Uhls",
  "Actors": "Brad Pitt, Edward Norton, Meat Loaf",
  "Plot": "A nameless first-person narrator attends support groups in an attempt to subdue his emotional state an...",
  "Language": "English",
  "Country": "United States, Germany",
  "Awards": "Nominated for 1 Oscar. 12 wins & 38 nominations total",
  "Poster": "https://img.amodb.dev/t/p/w300/qkrH7rjYKU4KOwwIl6wF6H3ISvm.jpg",
  "Ratings": [
    {
      "Source": "Internet Movie Database",
      "Value": "8.8/10"
    },
    {
      "Source": "Rotten Tomatoes",
      "Value": "81%"
    },
    {
      "Source": "Metacritic",
      "Value": "67/100"
    }
  ],
  "Metascore": "67",
  "imdbRating": "8.8",
  "imdbVotes": "2,669,989",
  "imdbID": "tt0137523",
  "Type": "movie",
  "DVD": "N/A",
  "BoxOffice": "$38,003,039",
  "Production": "N/A",
  "Website": "N/A",
  "Response": "True"
}

Les valeurs sont des chaînes, comme dans OMDb : analysez vous-même imdbRating, imdbVotes et Runtime. Chaque appel compte pour une requête dans votre limite par minute, quel que soit le nombre de champs que vous lisez.

Comparatif des fonctionnalités

FonctionnalitéOMDbamodb
Modèle tarifaireClé gratuite et niveau payant pour les soutiens, voir leur sitePériodes prépayées, de 1 à 24 mois
Offre gratuiteClé gratuite avec plafond quotidien de 1 000, voir leur siteAucune, et pas d'essai
AuthentificationParamètre apikeyapikey sur /omdb/, api_key ou Bearer sur /3
Format de réponseJSON ou XMLJSON
LanguesVoir leur documentation14 langues d'interface sur les chemins /3
FilmsOuiOui
SériesSéries et épisodes, voir leur documentation pour les champsFiches de séries sur /omdb/, saisons et épisodes sur les chemins /3
PersonnesNoms en texte dans chaque ficheProfils, filmographie et images sur les chemins /3
ImagesLien d'affiche dans chaque ficheLien d'affiche et listes d'images, img.amodb.dev
NotesChamps Ratings, Metascore et imdbRatingLes mêmes champs, plus un objet ratings sur les chemins /3
Limite de débitPlafond quotidien sur la clé gratuite, voir leur site20, 40 ou 120 par minute et par clé
Usage commercialVoir leur siteVendu comme API payante, voir les tarifs
CompatibilitéDéfinit le protocole OMDbParamètres OMDb ci-dessus et lectures TMDB v3

Ce qui distingue amodb

  • Des limites par minute. Les offres autorisent 20, 40 ou 120 requêtes par minute dans une fenêtre glissante de 60 secondes. Chaque réponse avec clé porte X-RateLimit-Remaining, si bien qu'un traitement par lots peut ralentir lui-même avant de rencontrer un 429.
  • Une voie au-delà des fiches uniques. Une fiche OMDb a une liste de distribution sous forme de texte. Avec les chemins /3, vous pouvez demander le même titre avec distribution, vidéos et traductions en un seul appel, et l'imdbID retrouve la fiche via /3/find.
  • Des images plus grandes. Les fiches de style OMDb donnent un seul lien d'affiche. L'hôte d'images sert dix tailles, de w92 à original.
  • Plus de sources de notes. L'extension /3/movie/{id}/ratings ajoute les valeurs de Kinopoisk, Metacritic, Rotten Tomatoes et TMDB quand elles sont connues.

Quand OMDb convient mieux

  • Les petits projets ou les projets gratuits. Une clé gratuite avec un plafond quotidien de 1 000 suffit pour un prototype ou un site de loisir, et amodb n'a pas d'offre gratuite.
  • Les consommateurs de XML. Si un système ancien analyse du XML, OMDb le propose et amodb non.
  • La recherche de saisons et d'épisodes. La route /omdb/ d'amodb n'a pas de mode saison ou épisode : un client construit dessus doit utiliser les chemins /3.
  • La simplicité. Un seul point de terminaison et une poignée de paramètres, c'est facile à apprendre. Si c'est tout ce qu'il vous faut, changer rapporte peu.

Migrer vers amodb

Seules l'URL de base et la clé changent. Gardez le reste de la requête tel quel, après avoir cherché dans votre code r=xml, Season, Episode et type=episode.

JavaScript
const OMDB_BASE = process.env.OMDB_BASE_URL; // before: your current OMDb base URL
const AMODB_BASE = 'https://api.amodb.dev/omdb/'; // after

async function lookup(title) {
  const url = new URL(AMODB_BASE);
  url.searchParams.set('apikey', process.env.AMODB_KEY);
  url.searchParams.set('t', title);
  url.searchParams.set('plot', 'short');
  const res = await fetch(url);
  const data = await res.json();
  if (data.Response === 'False') throw new Error(data.Error);
  return data;
}

const movie = await lookup('Fight Club');
console.log(movie.Title, movie.Year, movie.imdbRating, movie.Poster);

Continuez à vérifier le champ Response, comme avec OMDb. Quand la valeur est la chaîne "False", le champ Error contient le message. Pour les épisodes, associez l'imdbID une fois avec /3/find et lisez les saisons du côté /3 :

curl
curl -s "https://api.amodb.dev/3/find/tt0903747?external_source=imdb_id&api_key=$AMODB_KEY"
curl -s "https://api.amodb.dev/3/tv/1396/season/1?api_key=$AMODB_KEY"

Pour la partie de style TMDB, voir l'authentification et le démarrage rapide.

Tarifs

amodb est payant et ne se renouvelle que lorsque vous achetez une autre période. Les trois offres ne diffèrent que par le débit, à 20, 40 ou 120 requêtes par minute, et chacune renvoie toutes les données. Les périodes durent 1, 3, 6, 12 ou 24 mois, et les plus longues bénéficient de 10 à 40 pour cent de réduction. Consultez les tarifs pour les montants actuels.