Изберете според формата на извикванията си
Изберете 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 процента. Текущите суми проверете на страницата с цените.