Выбірайце па форме вашых выклікаў

Выбірайце 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 працэнтаў. Бягучыя сумы глядзіце на старонцы цэны.