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:/, 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 OMDb | Sur amodb |
|---|---|
apikey | Même paramètre, rempli avec votre clé amodb |
i et t | Recherche par identifiant IMDb ou par titre |
s et page | Recherche avec 10 résultats par page et un compteur totalResults, page jusqu'à 100 |
type et y | Filtre par movie ou series et par année |
plot | short ou full |
r | Seul json est accepté |
| Champs du corps | Nommés comme dans OMDb, de Title à Response |
Ratings | Un tableau de paires Source et Value pour Internet Movie Database, Rotten Tomatoes et Metacritic, quand elles existent |
| Erreurs | {"Response":"False", avec la formulation OMDb, dans une réponse HTTP 200 |
Ce qui ne passe pas
- XML. Une requête avec
r=xmlrenvoie 400 avec{"Response":"False",."Error":"Only r= json is supported."} - Saisons et épisodes.
SeasonetEpisodesont ignorés, ettype=episodene trouve rien. Une requête aveci=tt0903747&Season=1renvoie la fiche de la série, pas une saison. Utilisez/3/tv/{id}/season/{n}pour les épisodes. - Autres paramètres.
callbackest ignoré. - Champs sans données.
DVD,ProductionetWebsitevalent toujours"N/A". Les fiches de séries onttotalSeasonset omettentDVD,BoxOffice,ProductionetWebsite. - Affiches. Le champ
Posterpointe vershttps:/au lieu d'un autre hôte. Remplacez/ img.amodb.dev/ t/ p/ w300/ ... w300parw780pour 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.
{
"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é | OMDb | amodb |
|---|---|---|
| Modèle tarifaire | Clé gratuite et niveau payant pour les soutiens, voir leur site | Périodes prépayées, de 1 à 24 mois |
| Offre gratuite | Clé gratuite avec plafond quotidien de 1 000, voir leur site | Aucune, et pas d'essai |
| Authentification | Paramètre apikey | apikey sur /omdb/, api_key ou Bearer sur /3 |
| Format de réponse | JSON ou XML | JSON |
| Langues | Voir leur documentation | 14 langues d'interface sur les chemins /3 |
| Films | Oui | Oui |
| Séries | Séries et épisodes, voir leur documentation pour les champs | Fiches de séries sur /omdb/, saisons et épisodes sur les chemins /3 |
| Personnes | Noms en texte dans chaque fiche | Profils, filmographie et images sur les chemins /3 |
| Images | Lien d'affiche dans chaque fiche | Lien d'affiche et listes d'images, img.amodb.dev |
| Notes | Champs Ratings, Metascore et imdbRating | Les mêmes champs, plus un objet ratings sur les chemins /3 |
| Limite de débit | Plafond quotidien sur la clé gratuite, voir leur site | 20, 40 ou 120 par minute et par clé |
| Usage commercial | Voir leur site | Vendu comme API payante, voir les tarifs |
| Compatibilité | Définit le protocole OMDb | Paramè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'imdbIDretrouve 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}/ratingsajoute 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.
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 -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.