Získání oficiálního traileru filmu

GET /3/movie/{movie_id}/videos vrací všechna videa připojená k filmu. Každá položka má type, příznak official, kód jazyka, časové razítko published_at a site a key, které video identifikují. Ponechte položky, kde type je Trailer a official je true, a trailer máte.

Dostanete seznam záznamů videí, které si můžete sami seřadit, ne stream. Odpověď pojmenuje video a řekne, kde leží, a vaše stránka sestaví přehrávač ze site a key. Stejný tvar se vrací u seriálů. Cesty sezón a epizod odpovídají prázdným seznamem.

Jaká data dostanete

EndpointVrací
GET /3/movie/{movie_id}/videosTrailery, teasery, klipy, featurety, záběry ze zákulisí a bloopery filmu
GET /3/tv/{tv_id}/videosStejný seznam pro seriál
GET /3/tv/{tv_id}/season/{season_number}/videosVždy prázdný seznam results
GET /3/tv/{tv_id}/season/{season_number}/episode/{episode_number}/videosVždy prázdný seznam results
GET /3/movie/{movie_id} s append_to_response=videosDetaily a videa v jednom požadavku

Pole každého videa:

PoleTypPoužití
typestringDruh videa: Trailer, Teaser, Clip, Featurette, Behind the Scenes nebo Bloopers, jak je uvedeno na stránce videí
officialbooleantrue, když je video označeno jako oficiální
iso_639_1, iso_3166_1stringKódy jazyka a země videa
key, sitestringIdentifikátor videa a název webu, který jej hostuje, YouTube u všech dosud viděných videí
sizeintegerSvislé rozlišení, 1080 u všech dosud viděných videí
published_atstringČasové razítko ISO 8601, vhodné pro řazení od nejnovějších
name, idstringNázev videa a jeho ID, což je stejný řetězec jako key

Začněte ve 3 krocích

  1. Vyberte tarif na stránce ceník. Každý tarif vrací všechna data, takže vybíráte podle počtu požadavků za minutu.
  2. Vytvořte klíč v panelu účtu. Má 32 malých hexadecimálních znaků.
  3. Zavolejte GET /3/movie/{movie_id}/videos s klíčem v api_key nebo v hlavičce Authorization: Bearer.

Příklad požadavku

Ukázka si vyžádá videa filmu Inception (ID 27205), seřadí je v kódu a vypíše to nejlepší. Řazení dává na první místo shodu jazyka, pak Trailer před Teaser, pak oficiální před neoficiálním a nakonec nejnovější 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');

Zkrácená odpověď: první 2 ze 42 videí. Seznam obsahuje všechny jazyky.

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"
    }
  ]
}

Výběr videa k přehrání

Titul má často několik oficiálních trailerů (první oznámení, finální sestřih) vedle teaserů a klipů. Řaďte je pevným pořadím, aby se na místě traileru nikdy neocitl sestřih chyb z natáčení.

PrioritaFiltrTypické použití
1Trailer, oficiální, shoda jazykaVideo k přehrání
2Trailer, neoficiálníRegionální nebo fanouškovská nahrání, když neexistuje oficiální
3Teaser, oficiálníKrátké spoty před premiérou
4Clip, FeaturetteZáloha, aby místo nezůstalo prázdné
přeskočitBehind the Scenes, BloopersZobrazte v samostatném seznamu bonusů

Shody řaďte podle published_at. Od nejnovějších dostanete nejnovější sestřih, od nejstarších první oznámení.

Jazyky trailerů

Videa jsou označena jazykem přes iso_639_1 a jeden titul může mít trailery v několika. Inception má 42 videí v 9 jazycích. amodb je vrací všechna v jedné odpovědi. Parametry language a include_video_language na endpointech videí nemají žádný účinek, jazyk proto vybírejte ve svém kódu.

KrokCo dělat
1Ponechte videa, jejichž iso_639_1 odpovídá vašemu uživateli, například ru
2Pokud žádné neodpovídá, ponechte en
3Pokud žádné neodpovídá, ponechte zbytek

V každém kroku řaďte podle typu a příznaku official jako v ukázce. Jazyky videí se řídí nahráním, ne 14 jazyky rozhraní uvedenými na stránce jazyky, takže trailer může být cs nebo he.

Trailery seriálů

Trailer seriálu leží na /3/tv/1396/videos (Breaking Bad), kde je 9 trailerů. Funkce řazení výše funguje beze změny, protože pole se nemění. Cesty sezón a epizod jako /3/tv/1396/season/1/videos odpovídají 200 s prázdným seznamem results, čtěte proto seznam seriálu. Úplný seznam cest viz videa a trailery.

Sestavení pásu s trailery

Pás aktuálně uváděných filmů potřebuje jedno volání seznamu a jedno volání na titul: GET /3/movie/now_playing (viz trendy a seznamy) plus deset volání videí dává 11 požadavků na deset titulů. Vybraný key ukládejte vedle ID filmu. Trailery se mění zřídka, uložený výběr proto obnovujte každých několik hodin nebo když se titul znovu uvádí.

Jak si stojí v porovnání

SchopnostScrapování stránek vlastními silamiMetadata API s bezplatným tarifemamodb
Příznak officialOdhad podle názvu stránkyPodívejte se do jejich dokumentaceBoolean official u každého videa
Filtr typu videaParsovat textPodívejte se do jejich dokumentaceŠest hodnot type
Volba jazykaJedna lokalizace na stránkuPodívejte se do jejich dokumentaceiso_639_1 a iso_3166_1 u každého videa, filtrujte ve svém kódu
Seriály a epizodySamostatné stránky k procházeníPodívejte se do jejich dokumentaceSeriály používají stejný endpoint, seznamy sezón a epizod jsou prázdné
ÚdržbaRozbije se při změně značekZáleží na poskytovateliJeden stabilní tvar JSON
PodmínkyRiziko nesete vyOvěřte si jejich podmínkyPlacené tarify, viz ceník

Ceník

Tarify jsou předplacené. Kupujete 1, 3, 6, 12 nebo 24 měsíců a u delších období dostanete slevu 0, 10, 20, 30 nebo 40 procent. Nic se neobnovuje samo. Tarify s 20, 40 a 120 požadavky za minutu obsluhují všechny endpointy na této stránce, takže vytížený pás s trailery je jen otázka rychlosti. Bezplatný tarif ani zkušební verze neexistují. Porovnejte tarify na stránce ceník.