Изберете според формата на извикванията си

Изберете OMDb, когато искате по един малък запис за заглавие и безплатният му ключ покрива обема ви. Изберете amodb, когато надраснете това или когато искате същия стил заявки на OMDb до актьори, изображения и преводи на един ключ. OMDb връща JSON или XML, ползва параметър apikey и предлага безплатен ключ с дневен лимит от 1000 заявки (вижте сайта им) плюс платено ниво за поддръжници. amodb е само платен и отговаря на основните параметри на OMDb, както и на TMDB v3.

Какво остава същото

Ендпойнтът на OMDb е на https://api.amodb.dev/omdb/, а крайната наклонена черта е по желание. Съществуващият ви код за разбор не би трябвало да се нуждае от редакции за тези елементи.

Елемент на OMDbВ amodb
apikeyСъщият параметър, попълнен с вашия ключ за amodb
i и tТърсене по IMDb id или по заглавие
s и pageТърсене с 10 резултата на страница и брояч totalResults, page до 100
type и yФилтър по movie или series и по година
plotshort или full
rПриема се само json
Полета на тялотоНаименувани като в OMDb, от Title до Response
RatingsМасив от двойки Source и Value за Internet Movie Database, Rotten Tomatoes и Metacritic, когато ги има
Грешки{"Response":"False","Error":"..."} с формулировките на OMDb, в отговор с HTTP 200

Какво не се пренася

  • XML. Заявка с r=xml връща 400 с {"Response":"False","Error":"Only r=json is supported."}.
  • Сезони и епизоди. Season и Episode се игнорират, а type=episode не намира нищо. Заявка с i=tt0903747&Season=1 връща записа на сериала, а не сезон. За епизоди ползвайте /3/tv/{id}/season/{n}.
  • Други параметри. callback се игнорира.
  • Полета без данни. DVD, Production и Website са винаги "N/A". Записите за сериали имат totalSeasons и нямат DVD, BoxOffice, Production и Website.
  • Постери. Полето Poster сочи към https://img.amodb.dev/t/p/w300/..., а не към друг хост. Сменете w300 с w780, за да получите по-голямо изображение от същия път, като за изображенията не е нужен ключ.

Пълният списък с параметри и грешки е на страницата ендпойнт OMDb.

Примерен отговор

Заявка с t=Fight Club връща плосък обект. Отговорът по-долу е истински, само текстът на 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"
}

Стойностите са низове, както в OMDb, така че разчетете сами imdbRating, imdbVotes и Runtime. Всяко извикване се брои като една заявка към минутния ви лимит, колкото и полета да четете.

Сравнение на функциите

ФункцияOMDbamodb
Модел на ценитеБезплатен ключ плюс платено ниво за поддръжници, вижте сайта имПредплатени периоди, от 1 до 24 месеца
Безплатен планБезплатен ключ с дневен лимит от 1000, вижте сайта имНяма, и няма пробен период
УдостоверяванеПараметър apikeyapikey на /omdb/, api_key или Bearer на /3
Формат на отговораJSON или XMLJSON
ЕзициВижте документацията им14 езика на интерфейса на пътищата /3
ФилмиДаДа
СериалиСериали и епизоди, за полетата вижте документацията имЗаписи за сериали на /omdb/, сезони и епизоди на пътищата /3
ЛичностиИмена като текст във всеки записПрофили, филмография и изображения на пътищата /3
ИзображенияВръзка към постер във всеки записВръзка към постер плюс списъци с изображения, img.amodb.dev
РейтингиПолетата Ratings, Metascore и imdbRatingСъщите полета, плюс обект ratings на пътищата /3
Лимит на заявкитеДневен лимит за безплатния ключ, вижте сайта им20, 40 или 120 в минута на ключ
Търговска употребаВижте сайта имПродава се като платено API, вижте цени
СъвместимостОпределя протокола на OMDbПараметрите на OMDb по-горе и четене по TMDB v3

С какво се различава amodb

  • Лимити в минута. Плановете позволяват 20, 40 или 120 заявки в минута в плъзгащ се 60-секунден прозорец. Всеки отговор с ключ има X-RateLimit-Remaining, така че пакетна задача може сама да забави ход, преди да види 429.
  • Път нагоре от единичните записи. Записът на OMDb има списък с актьори като текст. С пътищата /3 можете да поискате същото заглавие с участници, видеа и преводи в едно извикване, а imdbID намира записа през /3/find.
  • По-големи изображения. Записите в стил OMDb дават една връзка към постер. Хостът за изображения обслужва десет токена за размери, от w92 до original.
  • Повече източници на рейтинги. Разширението /3/movie/{id}/ratings добавя стойности от Kinopoisk, Metacritic, Rotten Tomatoes и TMDB, където са известни.

Къде OMDb пасва по-добре

  • Малки или безплатни проекти. Безплатен ключ с дневен лимит от 1000 стига за прототип или хоби сайт, а amodb няма безплатен план.
  • Потребители на XML. Ако стара система разчита XML, OMDb го предлага, а amodb не.
  • Търсене на сезони и епизоди. Маршрутът /omdb/ на amodb няма режим за сезони или епизоди, така че клиент, изграден върху него, се нуждае от пътищата /3.
  • Простота. Един ендпойнт и шепа параметри се учат лесно. Ако това ви е нужно, печелите малко от прехода.

Миграция към amodb

Променят се само базовият URL и ключът. Оставете останалата част от заявката както е, след като потърсите в кода си r=xml, Season, Episode и 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);

Продължавайте да проверявате полето Response, както при OMDb. Когато стойността е низът "False", полето Error носи съобщението. За епизоди съпоставете imdbID веднъж през /3/find и четете сезоните от страната на /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"

За страната в стил TMDB вижте удостоверяване и бърз старт.

Цени

amodb е платен и се подновява само когато купите нов период. Трите плана се различават само по скоростта, 20, 40 или 120 заявки в минута, и всеки връща всички данни. Периодите са 1, 3, 6, 12 или 24 месеца, а по-дългите дават отстъпка от 10 до 40 процента. Текущите суми проверете на страницата с цените.