Атрыманне афіцыйнага трэйлера фільма
GET / вяртае кожнае відэа, прывязанае да фільма. Кожны запіс мае type, прыкмету official, код мовы, часовую пазнаку published_at, а таксама site і key, якія ідэнтыфікуюць відэа. Пакіньце запісы, дзе type роўны Trailer і official роўны true, і трэйлер у вас у руках.
Вы атрымліваеце спіс запісаў відэа, якія можна ранжыраваць самім, а не струмень. Адказ называе відэа і месца, дзе яно жыве, а ваша старонка будуе прайгравальнік з site і key. Тая ж форма вяртаецца для серыялаў. Шляхі сезонаў і эпізодаў адказваюць пустым спісам.
Якія даныя вы атрымліваеце
| Эндпоінт | Што вяртае |
|---|---|
GET / | Трэйлеры, тызеры, кліпы, фічарэты, матэрыялы за кадрам і абляпухі для фільма |
GET / | Той жа спіс для серыяла |
GET / | Заўсёды пусты спіс results |
GET / | Заўсёды пусты спіс results |
GET / з append_ | Дэталі і відэа адным запытам |
Палі кожнага відэа:
| Поле | Тып | Прызначэнне |
|---|---|---|
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 крокі
- Абярыце план на старонцы цэны. Кожны план вяртае ўсе даныя, таму выбірайце па запытах у хвіліну.
- Стварыце ключ у асабістым кабінеце. Гэта 32 малыя шаснаццатковыя сімвалы.
- Выклічце
GET /з ключом у3/ movie/ {movie_ id}/ videos api_keyабо ў загалоўкуAuthorization: Bearer.
Прыклад запыту
У прыкладзе запытваюцца відэа Inception (id 27205), ранжыруюцца ў кодзе, і друкуецца найлепшае. Ранжыраванне ставіць першымі супадзенні па мове, потым Trailer перад Teaser, потым афіцыйныя перад неафіцыйнымі, потым найноўшы published_at.
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 відэа. Спіс змяшчае ўсе мовы.
{
"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"
}
]
}Як выбраць відэа для прайгравання
У назвы часта некалькі афіцыйных трэйлераў (першы анонс, фінальны мантаж) побач з тызерамі і кліпамі. Ранжыруйце іх у фіксаваным парадку, каб на месцы трэйлера ніколі не апынуліся абляпухі.
| Прыярытэт | Фільтр | Тыповае выкарыстанне |
|---|---|---|
| 1 | Trailer, афіцыйны, мова супадае | Відэа для прайгравання |
| 2 | Trailer, неафіцыйны | Рэгіянальныя або фанацкія загрузкі, калі афіцыйнага няма |
| 3 | Teaser, афіцыйны | Кароткія ролікі да выхаду |
| 4 | Clip, 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 трэйлераў. Функцыя ранжыравання вышэй працуе як ёсць, бо палі не мяняюцца. Шляхі сезонаў і эпізодаў, напрыклад /, адказваюць 200 з пустым спісам results, таму чытайце спіс серыяла. Поўны спіс шляхоў гл. на старонцы відэа і трэйлеры.
Стужка трэйлераў
Стужка фільмаў, што зараз у пракаце, патрабуе аднаго выкліку спісу і па адным выкліку на назву: GET / (гл. трэнды і спісы) плюс дзесяць выклікаў відэа дае 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 запытаў у хвіліну абслугоўваюць кожны эндпоінт на гэтай старонцы, таму загружаная стужка трэйлераў залежыць толькі ад частаты. Бясплатнага тарыфа і пробнага перыяду няма. Параўнайце планы на старонцы цэны.