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:/, e la barra finale è facoltativa. Il tuo codice di parsing esistente non dovrebbe richiedere modifiche per questi elementi.
| Elemento OMDb | Su amodb |
|---|---|
apikey | Stesso parametro, con la tua chiave amodb |
i e t | Ricerca per ID IMDb o per titolo |
s e page | Ricerca con 10 risultati per pagina e un conteggio totalResults, page fino a 100 |
type e y | Filtro per movie o series e per anno |
plot | short o full |
r | Si accetta solo json |
| Campi del corpo | Con i nomi di OMDb, da Title a Response |
Ratings | Un array di coppie Source e Value per Internet Movie Database, Rotten Tomatoes e Metacritic, quando presenti |
| Errori | {"Response":"False", con la formulazione di OMDb, in una risposta HTTP 200 |
Cosa non viene riportato
- XML. Una richiesta con
r=xmlrestituisce 400 con{"Response":"False",."Error":"Only r= json is supported."} - Stagioni ed episodi.
SeasonedEpisodevengono ignorati etype=episodenon trova nulla. Una richiesta coni=tt0903747&Season=1restituisce la scheda della serie, non una stagione. Per gli episodi usa/3/tv/{id}/season/{n}. - Altri parametri.
callbackviene ignorato. - Campi senza dati.
DVD,ProductioneWebsitevalgono sempre"N/A". Le schede delle serie hannototalSeasonse omettonoDVD,BoxOffice,ProductioneWebsite. - Locandine. Il campo
Posterpunta ahttps:/invece che a un altro host. Sostituisci/ img.amodb.dev/ t/ p/ w300/ ... w300conw780per 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.
{
"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à | OMDb | amodb |
|---|---|---|
| Modello di prezzo | Chiave gratuita più un livello a pagamento per i sostenitori, vedi il loro sito | Periodi prepagati, da 1 a 24 mesi |
| Piano gratuito | Chiave gratuita con limite giornaliero di 1.000, vedi il loro sito | Nessuno, e nessuna prova |
| Autenticazione | Parametro apikey | apikey su /omdb/, api_key o Bearer su /3 |
| Formato della risposta | JSON o XML | JSON |
| Lingue | Vedi la loro documentazione | 14 lingue dell'interfaccia sui percorsi /3 |
| Film | Sì | Sì |
| Serie TV | Serie ed episodi, per i campi vedi la loro documentazione | Schede delle serie su /omdb/, stagioni ed episodi sui percorsi /3 |
| Persone | Nomi come testo in ogni scheda | Profili, filmografia e immagini sui percorsi /3 |
| Immagini | Link alla locandina in ogni scheda | Link alla locandina più elenchi di immagini, img.amodb.dev |
| Valutazioni | Campi Ratings, Metascore e imdbRating | Gli stessi campi, più un oggetto ratings sui percorsi /3 |
| Limite di richieste | Limite giornaliero sulla chiave gratuita, vedi il loro sito | 20, 40 o 120 al minuto per chiave |
| Uso commerciale | Vedi il loro sito | Venduto come API a pagamento, vedi i prezzi |
| Compatibilità | Definisce il protocollo OMDb | Parametri 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
/3puoi chiedere lo stesso titolo con crediti, video e traduzioni in una sola chiamata, e l'imdbIDtrova 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
w92aoriginal. - Più fonti di valutazione. L'estensione
/3/movie/{id}/ratingsaggiunge 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.
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 -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.