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://api.amodb.dev/omdb/ 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 OMDbNa amodb
apikeyStejný parametr, vyplněný vaším klíčem amodb
i a tHledání podle ID z IMDb nebo podle názvu
s a pageHledání s 10 výsledky na stránku a počtem totalResults, page až 100
type a yFiltr podle movie nebo series a podle roku
plotshort nebo full
rPřijímá se jen json
Pole tělaPojmenovaná jako v OMDb, od Title po Response
RatingsPole dvojic Source a Value pro Internet Movie Database, Rotten Tomatoes a Metacritic, když jsou přítomné
Chyby{"Response":"False","Error":"..."} s formulací OMDb, v odpovědi HTTP 200

Co se nepřenáší

  • XML. Požadavek s r=xml vrací 400 s {"Response":"False","Error":"Only r=json is supported."}.
  • Sezóny a epizody. Season a Episode se ignorují a type=episode nic nenajde. Požadavek s i=tt0903747&Season=1 vrátí záznam seriálu, ne sezónu. Pro epizody použijte /3/tv/{id}/season/{n}.
  • Další parametry. callback se ignoruje.
  • Pole bez dat. DVD, Production a Website jsou vždy "N/A". Záznamy seriálů mají totalSeasons a vynechávají DVD, BoxOffice, Production a Website.
  • Plakáty. Pole Poster ukazuje na https://img.amodb.dev/t/p/w300/... místo jiného hostitele. Vyměňte w300 za w780 a 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.

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

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í

FunkceOMDbamodb
Cenový modelBezplatný klíč plus placená podporovatelská úroveň, ověřte na jejich webuPředplacená období, 1 až 24 měsíců
Bezplatný tarifBezplatný klíč s denním limitem 1 000, ověřte na jejich webuŽádný, ani zkušební verze
OvěřeníParametr apikeyapikey na /omdb/, api_key nebo Bearer na /3
Formát odpovědiJSON nebo XMLJSON
JazykyPodívejte se do jejich dokumentace14 jazyků rozhraní na cestách /3
FilmyAnoAno
SeriálySeriály a epizody, pole viz jejich dokumentaceZáznamy seriálů na /omdb/, sezóny a epizody na cestách /3
OsobyJména jako text v každém záznamuProfily, filmografie a obrázky na cestách /3
ObrázkyOdkaz na plakát v každém záznamuOdkaz na plakát plus seznamy obrázků, img.amodb.dev
HodnoceníPole Ratings, Metascore a imdbRatingStejná pole plus objekt ratings na cestách /3
Limit požadavkůDenní limit u bezplatného klíče, ověřte na jejich webu20, 40 nebo 120 za minutu na klíč
Komerční užitíOvěřte na jejich webuProdává se jako placené API, viz ceník
KompatibilitaDefinuje protokol OMDbVýš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 /3 si můžete vyžádat stejný titul s obsazením, videi a překlady jedním voláním a imdbID najde 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 w92 po original.
  • Více zdrojů hodnocení. Rozšíření /3/movie/{id}/ratings př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.

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);

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
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.