Вземане на официалния трейлър на филм

GET /3/movie/{movie_id}/videos връща всяко видео, прикачено към филм. Всеки елемент има type, флаг official, езиков код, времеви печат published_at, както и site и key, които идентифицират видеото. Запазете елементите, при които type е Trailer и official е true, и трейлърът е ваш.

Получавате списък със записи за видеа, които подреждате сами, а не поток. Отговорът назовава видеото и мястото, където живее, а страницата ви гради плейъра от site и key. Същата форма се връща за сериали. Пътищата за сезон и епизод отговарят с празен списък.

Какви данни получавате

ЕндпойнтКакво връща
GET /3/movie/{movie_id}/videosТрейлъри, тийзъри, клипове, featurette, зад кулисите и гафове за филм
GET /3/tv/{tv_id}/videosСъщият списък за сериал
GET /3/tv/{tv_id}/season/{season_number}/videosВинаги празен списък results
GET /3/tv/{tv_id}/season/{season_number}/episode/{episode_number}/videosВинаги празен списък results
GET /3/movie/{movie_id} с append_to_response=videosДетайли и видеа в една заявка

Полета на всяко видео:

ПолеТипПриложение
typeнизВид видео: Trailer, Teaser, Clip, Featurette, Behind the Scenes или Bloopers, както на страницата за видеа
officialбулева стойностtrue, когато видеото е отбелязано като официално
iso_639_1, iso_3166_1низЕзиков и държавен код на видеото
key, siteнизИдентификатор на видеото и име на сайта, който го хоства, YouTube при всяко видео, което сме виждали
sizeцяло числоВертикална резолюция, 1080 при всяко видео, което сме виждали
published_atнизВремеви печат по ISO 8601, удобен за сортиране от най-новите
name, idнизЗаглавие на видеото и неговото id, което е същият низ като key

Започнете в 3 стъпки

  1. Изберете план на страницата с цените. Всеки план връща всички данни, затова избирате по заявките в минута.
  2. Създайте ключ в личния си профил. Той е 32 шестнайсетични символа с малки букви.
  3. Извикайте GET /3/movie/{movie_id}/videos с ключа в api_key или в заглавка Authorization: Bearer.

Пример със заявка

Примерът иска видеата на Inception (id 27205), подрежда ги в кода и отпечатва най-доброто. Подреждането поставя първо съвпаденията по език, после Trailer преди Teaser, после официалните преди неофициалните, после най-новия published_at.

bashjs
curl -s "https://api.amodb.dev/3/movie/27205/videos" \
  -H "Authorization: Bearer $AMODB_KEY"
const BASE = 'https://api.amodb.dev/3';
const headers = { Authorization: `Bearer ${process.env.AMODB_KEY}` };
const TYPE_RANK = { Trailer: 0, Teaser: 2 };

function rank(video, lang) {
  const language = video.iso_639_1 === lang ? 0 : 10;
  const type = TYPE_RANK[video.type] ?? 4;
  return language + type + (video.official ? 0 : 1);
}

async function pickTrailer(movieId, lang = 'en') {
  const res = await fetch(`${BASE}/movie/${movieId}/videos`, { headers });
  if (!res.ok) throw new Error(`amodb returned ${res.status}`);
  const { results } = await res.json();
  results.sort(
    (a, b) => rank(a, lang) - rank(b, lang) || (b.published_at || '').localeCompare(a.published_at || ''),
  );
  return results[0] ?? null;
}

const trailer = await pickTrailer(27205, 'en');
console.log(trailer ? `${trailer.name}: ${trailer.site} ${trailer.key}` : 'no video found');

Съкратен отговор: първите 2 от 42 видеа. Списъкът съдържа всички езици.

JSON
{
  "id": 27205,
  "results": [
    {
      "iso_639_1": "en",
      "iso_3166_1": "US",
      "name": "The Dream Sequence",
      "key": "mpj9dL7swwk",
      "site": "YouTube",
      "size": 1080,
      "type": "Clip",
      "official": true,
      "published_at": "2022-03-09T01:00:20Z",
      "id": "mpj9dL7swwk"
    },
    {
      "iso_639_1": "en",
      "iso_3166_1": "US",
      "name": "35mm Theatrical Trailer #3",
      "key": "cdx31ak4KbQ",
      "site": "YouTube",
      "size": 1080,
      "type": "Trailer",
      "official": false,
      "published_at": "2022-03-07T06:00:19Z",
      "id": "cdx31ak4KbQ"
    }
  ]
}

Изберете кое видео да пуснете

Едно заглавие често има няколко официални трейлъра (първо обявяване, финална версия) до тийзъри и клипове. Подредете ги по фиксиран ред, за да не се озове в мястото за трейлър компилация от гафове.

ПриоритетФилтърТипично приложение
1Trailer, официален, езикът съвпадаВидеото за пускане
2Trailer, неофициаленРегионални или фен качвания, когато няма официален
3Teaser, официаленКратки клипове преди премиерата
4Clip, FeaturetteРезервен вариант, за да не е мястото празно
пропуснетеBehind the Scenes, BloopersПоказвайте в отделен списък с допълнителни материали

Равните случаи сортирайте по published_at. Първо най-новите дават последната версия, първо най-старите дават първото обявяване.

Езици на трейлърите

Видеата са отбелязани с език чрез iso_639_1 и едно заглавие може да има трейлъри на няколко. Inception има 42 видеа на 9 езика. amodb връща всички в един отговор. Параметрите language и include_video_language нямат ефект върху ендпойнтите за видеа, затова изберете езика във вашия код.

СтъпкаКакво да направите
1Запазете видеата, чийто iso_639_1 съвпада с потребителя ви, например ru
2Ако нищо не съвпада, запазете en
3Ако нищо не съвпада, запазете останалите

Подредете във всяка стъпка по тип и флага official, както в примера. Езиците на видеата следват качването, а не 14-те езика на интерфейса от страницата езици, така че трейлърът може да е cs или he.

Трейлъри за сериали

Трейлърът на сериал е на /3/tv/1396/videos (Breaking Bad), който съдържа 9 трейлъра. Функцията за подреждане по-горе работи както е, защото полетата не се променят. Пътищата за сезон и епизод като /3/tv/1396/season/1/videos отговарят със 200 и празен списък results, затова четете списъка на сериала. Пълния списък с пътища вижте на страницата видеа и трейлъри.

Изграждане на лента с трейлъри

Лента с филми, които вървят в момента, иска едно извикване за списък и по едно извикване на заглавие: GET /3/movie/now_playing (вижте тенденции и списъци) плюс десет извиквания за видеа правят 11 заявки за десет заглавия. Пазете избрания key до id на филма. Трейлърите се променят рядко, така че обновявайте запазения избор на няколко часа или когато заглавието излезе отново.

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

ВъзможностСами да обработвате странициAPI за метаданни с безплатен планamodb
Флаг за официалностНалучкване по заглавието на страницатаВижте документацията имБулево official при всяко видео
Филтър по тип видеоРазчитане на текстВижте документацията имШест стойности на type
Избор на езикЕдна локализация на страницаВижте документацията имiso_639_1 и iso_3166_1 при всяко видео, филтрират се във вашия код
Сериали и епизодиОтделни страници за обхожданеВижте документацията имСериалите ползват същия ендпойнт, списъците за сезон и епизод са празни
ПоддръжкаЧупи се, когато се промени разметкатаЗависи от доставчикаЕдна стабилна форма на JSON
УсловияРискът е вашВижте техните условияПлатени планове, вижте цени

Цени

Плановете са предплатени. Купувате 1, 3, 6, 12 или 24 месеца и получавате отстъпка 0, 10, 20, 30 или 40 процента за по-дългите периоди. Нищо не се подновява само. Плановете за 20, 40 и 120 заявки в минута обслужват всеки ендпойнт на тази страница, така че натоварена лента с трейлъри е въпрос само на скорост. Няма безплатен план и пробен период. Сравнете плановете на страницата с цените.