Vyberte podle tvaru svých volání
Zvolte OMDb, když chcete jeden malý záznam na titul a jeho bezplatný klíč pokrývá váš objem. Zvolte amodb, když z toho vyrostete, nebo když chcete stejný styl požadavků OMDb vedle obsazení, obrázků a překladů na jednom klíči. OMDb vrací JSON nebo XML, používá parametr apikey a nabízí bezplatný klíč s denním limitem požadavků 1 000 (ověřte na jejich webu) plus placenou podporovatelskou úroveň. amodb je jen placené a odpovídá na hlavní parametry OMDb i na TMDB v3.
Co zůstává stejné
Endpoint OMDb je na https:/ a koncové lomítko je volitelné. Váš stávající kód pro parsování by pro tyto prvky neměl potřebovat úpravy.
| Prvek OMDb | Na amodb |
|---|---|
apikey | Stejný parametr, vyplněný vaším klíčem amodb |
i a t | Hledání podle ID z IMDb nebo podle názvu |
s a page | Hledání s 10 výsledky na stránku a počtem totalResults, page až 100 |
type a y | Filtr podle movie nebo series a podle roku |
plot | short nebo full |
r | Přijímá se jen json |
| Pole těla | Pojmenovaná jako v OMDb, od Title po Response |
Ratings | Pole dvojic Source a Value pro Internet Movie Database, Rotten Tomatoes a Metacritic, když jsou přítomné |
| Chyby | {"Response":"False", s formulací OMDb, v odpovědi HTTP 200 |
Co se nepřenáší
- XML. Požadavek s
r=xmlvrací 400 s{"Response":"False",."Error":"Only r= json is supported."} - Sezóny a epizody.
SeasonaEpisodese ignorují atype=episodenic nenajde. Požadavek si=tt0903747&Season=1vrátí záznam seriálu, ne sezónu. Pro epizody použijte/3/tv/{id}/season/{n}. - Další parametry.
callbackse ignoruje. - Pole bez dat.
DVD,ProductionaWebsitejsou vždy"N/A". Záznamy seriálů majítotalSeasonsa vynechávajíDVD,BoxOffice,ProductionaWebsite. - Plakáty. Pole
Posterukazuje nahttps:/místo jiného hostitele. Vyměňte/ img.amodb.dev/ t/ p/ w300/ ... w300zaw780a z téže cesty dostanete větší obrázek, přičemž obrázky klíč nepotřebují.
Úplný seznam parametrů a chyb je na stránce endpoint OMDb.
Příklad odpovědi
Požadavek s t=Fight Club vrací plochý objekt. Odpověď níže je skutečná, zkrácený je jen text Plot.
{
"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"
}Hodnoty jsou řetězce, jako v OMDb, proto imdbRating, imdbVotes a Runtime parsujte sami. Každé volání se počítá jako jeden požadavek do limitu za minutu, bez ohledu na to, kolik polí čtete.
Srovnání funkcí
| Funkce | OMDb | amodb |
|---|---|---|
| Cenový model | Bezplatný klíč plus placená podporovatelská úroveň, ověřte na jejich webu | Předplacená období, 1 až 24 měsíců |
| Bezplatný tarif | Bezplatný klíč s denním limitem 1 000, ověřte na jejich webu | Žádný, ani zkušební verze |
| Ověření | Parametr apikey | apikey na /omdb/, api_key nebo Bearer na /3 |
| Formát odpovědi | JSON nebo XML | JSON |
| Jazyky | Podívejte se do jejich dokumentace | 14 jazyků rozhraní na cestách /3 |
| Filmy | Ano | Ano |
| Seriály | Seriály a epizody, pole viz jejich dokumentace | Záznamy seriálů na /omdb/, sezóny a epizody na cestách /3 |
| Osoby | Jména jako text v každém záznamu | Profily, filmografie a obrázky na cestách /3 |
| Obrázky | Odkaz na plakát v každém záznamu | Odkaz na plakát plus seznamy obrázků, img.amodb.dev |
| Hodnocení | Pole Ratings, Metascore a imdbRating | Stejná pole plus objekt ratings na cestách /3 |
| Limit požadavků | Denní limit u bezplatného klíče, ověřte na jejich webu | 20, 40 nebo 120 za minutu na klíč |
| Komerční užití | Ověřte na jejich webu | Prodává se jako placené API, viz ceník |
| Kompatibilita | Definuje protokol OMDb | Výše uvedené parametry OMDb a čtení TMDB v3 |
V čem se amodb liší
- Limity za minutu. Tarify povolují 20, 40 nebo 120 požadavků za minutu v klouzavém okně 60 sekund. Každá odpověď s klíčem má
X-RateLimit-Remaining, takže se dávková úloha může zpomalit, než narazí na 429. - Cesta nahoru od jednotlivých záznamů. Záznam OMDb má seznam obsazení jako text. Na cestách
/3si můžete vyžádat stejný titul s obsazením, videi a překlady jedním voláním aimdbIDnajde záznam přes/3/find. - Větší obrázky. Záznamy ve stylu OMDb dávají jeden odkaz na plakát. Hostitel obrázků obsluhuje deset tokenů velikostí, od
w92pooriginal. - Více zdrojů hodnocení. Rozšíření
/3/movie/{id}/ratingspřidává hodnoty z Kinopoisk, Metacritic, Rotten Tomatoes a TMDB tam, kde jsou známé.
Kdy se OMDb hodí lépe
- Malé nebo bezplatné projekty. Bezplatný klíč s denním limitem 1 000 stačí pro prototyp nebo hobby web a amodb bezplatný tarif nemá.
- Spotřebitelé XML. Pokud starší systém parsuje XML, OMDb ho nabízí a amodb ne.
- Vyhledání sezón a epizod. Trasa
/omdb/na amodb nemá režim sezón ani epizod, klient na ní postavený proto potřebuje místo toho cesty/3. - Jednoduchost. Jeden endpoint a hrstka parametrů se snadno učí. Pokud potřebujete jen tohle, přechodem mnoho nezískáte.
Přechod na amodb
Mění se jen základní URL a klíč. Zbytek požadavku ponechte, až prohledáte kód kvůli r=xml, Season, Episode a 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);Pole Response dál kontrolujte, jako jste to dělali u OMDb. Když je hodnotou řetězec "False", zprávu nese pole Error. Pro epizody jednou namapujte imdbID přes /3/find a sezóny čtěte ze strany /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"K straně ve stylu TMDB viz autentizace a rychlý start.
Ceník
amodb je placené a obnovuje se jen tehdy, když koupíte další období. Tři tarify se liší pouze rychlostí, 20, 40 nebo 120 požadavků za minutu, a každý vrací všechna data. Období jsou 1, 3, 6, 12 nebo 24 měsíců a delší mají slevu 10 až 40 procent. Aktuální částky ověřte na stránce ceník.