Pobieranie oficjalnego zwiastuna filmu
GET / zwraca wszystkie wideo powiązane z filmem. Każda pozycja ma type, flagę official, kod języka, znacznik czasu published_at oraz site i key, które identyfikują wideo. Zostaw pozycje, w których type to Trailer, a official to true, i masz zwiastun.
Dostajesz listę rekordów wideo, które możesz sam uporządkować, a nie strumień. Odpowiedź podaje nazwę wideo i miejsce, w którym leży, a twoja strona buduje odtwarzacz z site i key. Ten sam kształt wraca dla seriali. Ścieżki sezonów i odcinków odpowiadają pustą listą.
Jakie dane dostajesz
| Endpoint | Zwraca |
|---|---|
GET / | Zwiastuny, teasery, klipy, materiały dodatkowe (featurette), kulisy i wpadki filmu |
GET / | Ta sama lista dla serialu |
GET / | Zawsze pusta lista results |
GET / | Zawsze pusta lista results |
GET / z append_ | Szczegóły i wideo w jednym żądaniu |
Pola każdego wideo:
| Pole | Typ | Użycie |
|---|---|---|
type | string | Rodzaj wideo: Trailer, Teaser, Clip, Featurette, Behind the Scenes lub Bloopers, jak na stronie wideo |
official | boolean | true, gdy wideo jest oznaczone jako oficjalne |
iso_639_1, iso_3166_1 | string | Kody języka i kraju wideo |
key, site | string | Identyfikator wideo i nazwa serwisu, który je hostuje, YouTube przy każdym dotąd widzianym wideo |
size | integer | Rozdzielczość pionowa, 1080 przy każdym dotąd widzianym wideo |
published_at | string | Znacznik czasu ISO 8601, dobry do sortowania od najnowszych |
name, id | string | Tytuł wideo i jego ID, czyli ten sam ciąg co key |
Start w 3 krokach
- Wybierz plan na stronie cennik. Każdy plan zwraca wszystkie dane, więc wybierasz według liczby żądań na minutę.
- Utwórz klucz w panelu konta. Ma 32 małe znaki szesnastkowe.
- Wywołaj
GET /z kluczem w3/ movie/ {movie_ id}/ videos api_keyalbo w nagłówkuAuthorization: Bearer.
Przykładowe żądanie
Przykład prosi o wideo filmu Inception (ID 27205), sortuje je w kodzie i wypisuje najlepsze. Sortowanie stawia na początku zgodność języka, potem Trailer przed Teaser, potem oficjalne przed nieoficjalnymi, a na końcu najnowszy 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');Przycięta odpowiedź: pierwsze 2 z 42 wideo. Lista zawiera wszystkie języki.
{
"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"
}
]
}Wybór wideo do odtworzenia
Tytuł ma często kilka oficjalnych zwiastunów (pierwsze ogłoszenie, wersja finalna) obok teaserów i klipów. Sortuj je w stałej kolejności, żeby w miejscu zwiastuna nigdy nie wylądował zestaw wpadek z planu.
| Priorytet | Filtr | Typowe użycie |
|---|---|---|
| 1 | Trailer, oficjalny, zgodny język | Wideo do odtworzenia |
| 2 | Trailer, nieoficjalny | Wrzutki regionalne lub fanowskie, gdy nie ma oficjalnego |
| 3 | Teaser, oficjalny | Krótkie spoty przed premierą |
| 4 | Clip, Featurette | Zapas, by miejsce nie było puste |
| pomiń | Behind the Scenes, Bloopers | Pokaż na osobnej liście dodatków |
Remisy sortuj według published_at. Od najnowszych dostajesz ostatnią wersję, od najstarszych pierwsze ogłoszenie.
Języki zwiastunów
Wideo mają język w iso_639_1, a jeden tytuł może mieć zwiastuny w kilku. Inception ma 42 wideo w 9 językach. amodb zwraca je wszystkie w jednej odpowiedzi. Parametry language i include_video_language nie mają wpływu na endpointy wideo, więc język wybieraj w swoim kodzie.
| Krok | Co zrobić |
|---|---|
| 1 | Zostaw wideo, których iso_639_1 pasuje do twojego użytkownika, na przykład ru |
| 2 | Jeśli żadne nie pasuje, zostaw en |
| 3 | Jeśli żadne nie pasuje, zostaw resztę |
W każdym kroku sortuj według typu i flagi official jak w przykładzie. Języki wideo wynikają z wgrania, a nie z 14 języków interfejsu wymienionych na stronie języki, więc zwiastun może mieć cs lub he.
Zwiastuny seriali
Zwiastun serialu leży pod /3/tv/1396/videos (Breaking Bad), gdzie jest 9 zwiastunów. Funkcja sortująca powyżej działa bez zmian, bo pola się nie zmieniają. Ścieżki sezonów i odcinków, takie jak /, odpowiadają 200 z pustą listą results, więc czytaj listę serialu. Pełną listę ścieżek zobacz w wideo i zwiastuny.
Budowanie karuzeli zwiastunów
Karuzela filmów aktualnie w kinach potrzebuje jednego wywołania listy i jednego wywołania na tytuł: GET / (zobacz trendy i listy) plus dziesięć wywołań wideo daje 11 żądań na dziesięć tytułów. Wybrany key zapisuj obok ID filmu. Zwiastuny zmieniają się rzadko, więc odświeżaj zapisany wybór co kilka godzin albo gdy tytuł wraca do kin.
Jak wypada w porównaniu
| Możliwość | Własny scraping stron | API metadanych z darmowym planem | amodb |
|---|---|---|---|
| Flaga official | Zgadywanie po tytule strony | Sprawdź ich dokumentację | Boolean official przy każdym wideo |
| Filtr typu wideo | Parsować tekst | Sprawdź ich dokumentację | Sześć wartości type |
| Wybór języka | Jedna lokalizacja na stronę | Sprawdź ich dokumentację | iso_639_1 i iso_3166_1 przy każdym wideo, filtrowane w twoim kodzie |
| Seriale i odcinki | Osobne strony do przeszukania | Sprawdź ich dokumentację | Seriale używają tego samego endpointu, listy sezonów i odcinków są puste |
| Utrzymanie | Psuje się przy zmianie znaczników | Zależy od dostawcy | Jeden stabilny kształt JSON |
| Warunki | Ryzyko ponosisz ty | Sprawdź ich warunki | Płatne plany, zobacz cennik |
Cennik
Plany są przedpłacone. Kupujesz 1, 3, 6, 12 lub 24 miesiące i dostajesz zniżkę 0, 10, 20, 30 lub 40 procent za dłuższe okresy. Nic nie odnawia się samo. Plany z 20, 40 i 120 żądaniami na minutę obsługują wszystkie endpointy z tej strony, więc ruchliwa karuzela zwiastunów to kwestia samego tempa. Nie ma darmowego planu ani wersji próbnej. Porównaj plany na stronie cennik.