Scegli in base alla forma delle tue chiamate

Scegli OMDb quando vuoi una piccola scheda per titolo e la sua chiave gratuita copre il tuo volume. Scegli amodb quando lo superi, o quando vuoi lo stesso stile di richiesta OMDb insieme a crediti, immagini e traduzioni con una sola chiave. OMDb restituisce JSON o XML, usa un parametro apikey e offre una chiave gratuita con un limite giornaliero di 1.000 richieste (controlla il loro sito), più un livello a pagamento per i sostenitori. amodb è solo a pagamento e risponde ai principali parametri OMDb oltre a TMDB v3.

Cosa resta uguale

L'endpoint OMDb si trova su https://api.amodb.dev/omdb/, e la barra finale è facoltativa. Il tuo codice di parsing esistente non dovrebbe richiedere modifiche per questi elementi.

Elemento OMDbSu amodb
apikeyStesso parametro, con la tua chiave amodb
i e tRicerca per ID IMDb o per titolo
s e pageRicerca con 10 risultati per pagina e un conteggio totalResults, page fino a 100
type e yFiltro per movie o series e per anno
plotshort o full
rSi accetta solo json
Campi del corpoCon i nomi di OMDb, da Title a Response
RatingsUn array di coppie Source e Value per Internet Movie Database, Rotten Tomatoes e Metacritic, quando presenti
Errori{"Response":"False","Error":"..."} con la formulazione di OMDb, in una risposta HTTP 200

Cosa non viene riportato

  • XML. Una richiesta con r=xml restituisce 400 con {"Response":"False","Error":"Only r=json is supported."}.
  • Stagioni ed episodi. Season ed Episode vengono ignorati e type=episode non trova nulla. Una richiesta con i=tt0903747&Season=1 restituisce la scheda della serie, non una stagione. Per gli episodi usa /3/tv/{id}/season/{n}.
  • Altri parametri. callback viene ignorato.
  • Campi senza dati. DVD, Production e Website valgono sempre "N/A". Le schede delle serie hanno totalSeasons e omettono DVD, BoxOffice, Production e Website.
  • Locandine. Il campo Poster punta a https://img.amodb.dev/t/p/w300/... invece che a un altro host. Sostituisci w300 con w780 per ottenere un'immagine più grande dallo stesso percorso, e per le immagini non serve alcuna chiave.

L'elenco completo di parametri ed errori è nella pagina dell'endpoint OMDb.

Esempio di risposta

Una richiesta con t=Fight Club restituisce un oggetto piatto. La risposta qui sotto è reale, con il solo testo di Plot accorciato.

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"
}

I valori sono stringhe, come in OMDb, quindi fai tu il parsing di imdbRating, imdbVotes e Runtime. Ogni chiamata conta come una richiesta nel tuo limite al minuto, a prescindere da quanti campi leggi.

Confronto delle funzionalità

FunzionalitàOMDbamodb
Modello di prezzoChiave gratuita più un livello a pagamento per i sostenitori, vedi il loro sitoPeriodi prepagati, da 1 a 24 mesi
Piano gratuitoChiave gratuita con limite giornaliero di 1.000, vedi il loro sitoNessuno, e nessuna prova
AutenticazioneParametro apikeyapikey su /omdb/, api_key o Bearer su /3
Formato della rispostaJSON o XMLJSON
LingueVedi la loro documentazione14 lingue dell'interfaccia sui percorsi /3
FilmSìSì
Serie TVSerie ed episodi, per i campi vedi la loro documentazioneSchede delle serie su /omdb/, stagioni ed episodi sui percorsi /3
PersoneNomi come testo in ogni schedaProfili, filmografia e immagini sui percorsi /3
ImmaginiLink alla locandina in ogni schedaLink alla locandina più elenchi di immagini, img.amodb.dev
ValutazioniCampi Ratings, Metascore e imdbRatingGli stessi campi, più un oggetto ratings sui percorsi /3
Limite di richiesteLimite giornaliero sulla chiave gratuita, vedi il loro sito20, 40 o 120 al minuto per chiave
Uso commercialeVedi il loro sitoVenduto come API a pagamento, vedi i prezzi
CompatibilitàDefinisce il protocollo OMDbParametri OMDb qui sopra e letture TMDB v3

Dove amodb è diverso

  • Limiti al minuto. I piani consentono 20, 40 o 120 richieste al minuto in una finestra scorrevole di 60 secondi. Ogni risposta con chiave porta X-RateLimit-Remaining, così un job batch può rallentare da solo prima di incontrare un 429.
  • Una via d'uscita dalle schede singole. Una scheda OMDb ha un elenco del cast come testo. Con i percorsi /3 puoi chiedere lo stesso titolo con crediti, video e traduzioni in una sola chiamata, e l'imdbID trova la scheda tramite /3/find.
  • Immagini più grandi. Le schede in stile OMDb danno un solo link alla locandina. L'host delle immagini serve dieci dimensioni, da w92 a original.
  • Più fonti di valutazione. L'estensione /3/movie/{id}/ratings aggiunge i valori di Kinopoisk, Metacritic, Rotten Tomatoes e TMDB quando sono noti.

Dove OMDb è più adatto

  • Progetti piccoli o gratuiti. Una chiave gratuita con un limite giornaliero di 1.000 basta per un prototipo o un sito amatoriale, e amodb non ha un piano gratuito.
  • Chi consuma XML. Se un sistema legacy analizza XML, OMDb lo offre e amodb no.
  • Ricerche di stagioni ed episodi. La rotta /omdb/ di amodb non ha una modalità per stagioni o episodi, quindi un client costruito su di essa deve usare i percorsi /3.
  • Semplicità. Un solo endpoint e una manciata di parametri si imparano facilmente. Se ti serve solo questo, passare ad amodb porta poco.

Migrare ad amodb

Cambiano solo l'URL di base e la chiave. Lascia invariato il resto della richiesta, dopo aver cercato nel tuo codice r=xml, Season, Episode e 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);

Continua a controllare il campo Response, come facevi con OMDb. Quando il valore è la stringa "False", il campo Error contiene il messaggio. Per gli episodi, associa l'imdbID una volta con /3/find e leggi le stagioni dal lato /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"

Per il lato in stile TMDB, vedi l'autenticazione e l'avvio rapido.

Prezzi

amodb è a pagamento e si rinnova solo quando acquisti un altro periodo. I tre piani si differenziano soltanto per la frequenza, a 20, 40 o 120 richieste al minuto, e ognuno restituisce tutti i dati. I periodi durano 1, 3, 6, 12 o 24 mesi, e quelli più lunghi hanno uno sconto dal 10 al 40 per cento. Controlla i prezzi per gli importi attuali.