Выбірайце па форме вашых выклікаў
Выбірайце OMDb, калі вам патрэбен адзін невялікі запіс на назву і бясплатнага ключа хапае на ваш аб’ём. Выбірайце amodb, калі аб’ём перарос бясплатны ключ або калі вам патрэбны той жа стыль запытаў OMDb побач з акцёрамі, выявамі і перакладамі на адным ключы. OMDb вяртае JSON або XML, выкарыстоўвае параметр apikey і прапануе бясплатны ключ са штодзённым лімітам 1000 запытаў (глядзіце іх сайт) плюс платны ўзровень падтрымкі. amodb толькі платны і адказвае на асноўныя параметры OMDb, а таксама на TMDB v3.
Што застаецца ранейшым
Эндпоінт OMDb знаходзіцца па адрасе https:/, канчатковая коса рыска неабавязковая. Ваш існуючы код разбору не павінен патрабаваць праўак для гэтых элементаў.
| Элемент OMDb | У amodb |
|---|---|
apikey | Той жа параметр, у яго падстаўляецца ваш ключ amodb |
i і t | Пошук па IMDb id або па назве |
s і page | Пошук па 10 вынікаў на старонку з лічыльнікам totalResults, page да 100 |
type і y | Фільтр па movie або series і па годзе |
plot | short або full |
r | Прымаецца толькі json |
| Палі цела | Названы як у OMDb, ад Title да Response |
Ratings | Масіў пар Source і Value для Internet Movie Database, Rotten Tomatoes і Metacritic, калі яны ёсць |
| Памылкі | {"Response":"False", з фармулёўкамі 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 скарочаны.
{
"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 разбірайце самі. Кожны выклік лічыцца адным запытам у вашым хвілінным ліміце, колькі б палёў вы ні чыталі.
Параўнанне магчымасцей
| Магчымасць | OMDb | amodb |
|---|---|---|
| Мадэль цэнаўтварэння | Бясплатны ключ плюс платны ўзровень падтрымкі, глядзіце іх сайт | Перыяды з аплатай наперад, ад 1 да 24 месяцаў |
| Бясплатны тарыф | Бясплатны ключ са штодзённым лімітам 1000, глядзіце іх сайт | Няма, пробнага перыяду таксама няма |
| Аўтэнтыфікацыя | Параметр apikey | apikey на /omdb/, api_key або Bearer на /3 |
| Фармат адказу | JSON або XML | JSON |
| Мовы | Глядзіце іх дакументацыю | 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.
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 -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 працэнтаў. Бягучыя сумы глядзіце на старонцы цэны.