# API trailere filme

> API-ul pentru trailere de filme este GET /3/movie/{movie_id}/videos pe api.amodb.dev. Fiecare videoclip are un tip, un indicator oficial, o limbă și o dată de publicare, deci alegi trailerul oficial dintr-o singură trecere. Serialele întorc aceeași structură. Căile și JSON-ul se potrivesc cu TMDB v3.

## Obține trailerul oficial al unui film

`GET /3/movie/{movie_id}/videos` întoarce fiecare videoclip atașat unui film. Fiecare element are un `type`, un indicator `official`, un cod de limbă, un marcaj de timp `published_at` și `site` și `key`, care identifică videoclipul. Păstrează elementele unde `type` este `Trailer` și `official` este `true` și ai trailerul.

Primești o listă de înregistrări video pe care le ordonezi singur, nu un flux. Răspunsul numește videoclipul și locul unde se află, iar pagina ta construiește playerul din `site` și `key`. Aceeași structură revine pentru serialele TV. Căile de sezon și de episod răspund cu o listă goală.

## Ce date primești

| Endpoint                                                                   | Întoarce                                                                  |
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| `GET /3/movie/{movie_id}/videos`                                           | Trailere, teasere, clipuri, featurette-uri, culise și gafe pentru un film |
| `GET /3/tv/{tv_id}/videos`                                                 | Aceeași listă pentru un serial                                            |
| `GET /3/tv/{tv_id}/season/{season_number}/videos`                          | Mereu o listă `results` goală                                             |
| `GET /3/tv/{tv_id}/season/{season_number}/episode/{episode_number}/videos` | Mereu o listă `results` goală                                             |
| `GET /3/movie/{movie_id}` cu `append_to_response=videos`                   | Detalii și videoclipuri într-o singură cerere                             |

Câmpurile fiecărui videoclip:

| Câmp                      | Tip          | Utilizare                                                                                                                        |
| ------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| `type`                    | șir          | Felul videoclipului: `Trailer`, `Teaser`, `Clip`, `Featurette`, `Behind the Scenes` sau `Bloopers`, ca pe pagina de videoclipuri |
| `official`                | boolean      | `true` când videoclipul este marcat ca oficial                                                                                   |
| `iso_639_1`, `iso_3166_1` | șir          | Codurile de limbă și de țară ale videoclipului                                                                                   |
| `key`, `site`             | șir          | Identificatorul videoclipului și numele site-ului care îl găzduiește, `YouTube` la toate videoclipurile văzute                   |
| `size`                    | număr întreg | Rezoluția verticală, `1080` la toate videoclipurile văzute                                                                       |
| `published_at`            | șir          | Marcaj de timp ISO 8601, bun pentru sortarea de la cel mai nou                                                                   |
| `name`, `id`              | șir          | Titlul videoclipului și ID-ul lui, care este același șir ca `key`                                                                |

## Începe în 3 pași

1. Alege un plan la [prețuri](https://amodb.dev/ro/pricing/). Fiecare plan întoarce toate datele, deci alegi după cereri pe minut.
2. Creează o cheie în panoul contului tău. Are 32 de caractere hexazecimale minuscule.
3. Apelează `GET /3/movie/{movie_id}/videos` cu cheia în `api_key` sau într-un antet `Authorization: Bearer`.

## Exemplu de cerere

Exemplul cere videoclipurile din Inception (ID `27205`), le ordonează în cod și afișează cel mai bun. Ordonarea pune primele potrivirile de limbă, apoi `Trailer` înaintea lui `Teaser`, apoi oficialul înaintea celui neoficial, apoi cel mai nou `published_at`.

```bash
curl -s "https://api.amodb.dev/3/movie/27205/videos" \
  -H "Authorization: Bearer $AMODB_KEY"
```

```js
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');
```

Răspuns scurtat: primele 2 din cele 42 de videoclipuri. Lista conține toate limbile.

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

## Alege ce videoclip redai

Un titlu are adesea mai multe trailere oficiale (un prim anunț, o variantă finală) alături de teasere și clipuri. Ordonează-le cu o ordine fixă, ca pagina să nu ajungă cu un montaj de gafe în locul trailerului.

| Prioritate | Filtru                                  | Utilizare tipică                                                |
| ---------- | --------------------------------------- | --------------------------------------------------------------- |
| 1          | `Trailer`, oficial, limba se potrivește | Videoclipul de redat                                            |
| 2          | `Trailer`, neoficial                    | Încărcări regionale sau ale fanilor când nu există unul oficial |
| 3          | `Teaser`, oficial                       | Spoturi scurte dinaintea lansării                               |
| 4          | `Clip`, `Featurette`                    | Soluție de rezervă ca spațiul să nu rămână gol                  |
| omite      | `Behind the Scenes`, `Bloopers`         | Arată-le într-o listă separată de extra                         |

Departajează egalitățile după `published_at`. Cel mai nou primul dă ultima variantă, cel mai vechi primul dă primul anunț.

## Limbile trailerelor

Videoclipurile sunt etichetate cu o limbă prin `iso_639_1`, iar un titlu poate avea trailere în mai multe. Inception are 42 de videoclipuri în 9 limbi. amodb le întoarce pe toate într-un singur răspuns. Parametrii `language` și `include_video_language` nu au efect pe endpoint-urile de videoclipuri, așa că alege limba în codul tău.

| Pas | Ce faci                                                                                          |
| --- | ------------------------------------------------------------------------------------------------ |
| 1   | Păstrează videoclipurile al căror `iso_639_1` se potrivește cu utilizatorul tău, de exemplu `ru` |
| 2   | Dacă niciunul nu se potrivește, păstrează `en`                                                   |
| 3   | Dacă niciunul nu se potrivește, păstrează restul                                                 |

Ordonează în fiecare pas după tip și indicatorul `official`, ca în exemplu. Limbile videoclipurilor urmează încărcarea, nu cele 14 limbi de interfață listate la [limbi](https://amodb.dev/ro/languages/), așa că un trailer poate fi `cs` sau `he`.

## Trailere pentru seriale

Un trailer de serial se află la `/3/tv/1396/videos` (Breaking Bad), care conține 9 trailere. Funcția de ordonare de mai sus merge neschimbată, pentru că câmpurile nu se schimbă. Căile de sezon și de episod, precum `/3/tv/1396/season/1/videos`, răspund 200 cu o listă `results` goală, așa că citește lista serialului. Vezi [videoclipuri și trailere](https://amodb.dev/ro/videos-trailers/) pentru lista completă de căi.

## Construiește un rând de trailere

Un rând cu filme aflate în cinematografe cere un apel de listă și un apel pe titlu: `GET /3/movie/now_playing` (vezi [tendințe și liste](https://amodb.dev/ro/trending-lists/)) plus zece apeluri de videoclipuri fac 11 cereri pentru zece titluri. Stochează `key` ales lângă ID-ul filmului. Trailerele se schimbă rar, așa că reîmprospătează o alegere stocată la câteva ore sau când un titlu este relansat.

## Cum se compară

| Capacitate                      | Extragi singur paginile             | API de metadate cu nivel gratuit | amodb                                                                         |
| ------------------------------- | ----------------------------------- | -------------------------------- | ----------------------------------------------------------------------------- |
| Indicator oficial               | Ghicești din titlul paginii         | Vezi documentația lor            | Booleanul `official` la fiecare videoclip                                     |
| Filtru după tipul videoclipului | Analizezi textul                    | Vezi documentația lor            | Șase valori `type`                                                            |
| Alegerea limbii                 | O singură limbă pe pagină           | Vezi documentația lor            | `iso_639_1` și `iso_3166_1` la fiecare videoclip, filtrate în codul tău       |
| Seriale și episoade             | Pagini separate de parcurs          | Vezi documentația lor            | Serialele folosesc același endpoint, listele de sezon și de episod sunt goale |
| Întreținere                     | Se strică când se schimbă markup-ul | Depinde de furnizor              | O singură structură JSON stabilă                                              |
| Condiții                        | Riscul îți aparține                 | Verifică termenii lor            | Planuri cu plată, vezi [prețuri](https://amodb.dev/ro/pricing/)               |

## Prețuri

Planurile sunt plătite în avans. Cumperi 1, 3, 6, 12 sau 24 de luni și primești 0, 10, 20, 30 sau 40 la sută reducere la perioadele mai lungi. Nimic nu se reînnoiește singur. Planurile de 20, 40 și 120 de cereri pe minut servesc toate endpoint-urile de pe această pagină, așa că un rând aglomerat de trailere ține doar de ritm. Nu există nivel gratuit și nici perioadă de probă. Compară planurile la [prețuri](https://amodb.dev/ro/pricing/).

## Întrebări și răspunsuri

### Cum obțin trailerul oficial al unui film?

Apelează GET /3/movie/{movie_id}/videos, păstrează elementele unde type este Trailer și official este true, apoi sortează după published_at. Primul element este cel mai nou trailer oficial. Dacă nu există trailer, folosește un Teaser.

### API-ul întoarce un fișier video sau un flux?

Nu. Întoarce metadate pentru fiecare videoclip: name, type, site, key, size, language și date. Construiești linkul playerului din site și key sau încorporezi videoclipul în propria pagină. Posterele și cadrele vin de la img.amodb.dev.

### Cum obțin trailere în limba mea?

Endpoint-ul videos întoarce toate limbile într-un singur răspuns și ignoră parametrii language și include_video_language. Filtrează după iso_639_1 în codul tău, de exemplu mai întâi ru, apoi en, apoi restul. Inception are videoclipuri în 9 limbi.

### Pot obține trailere pentru seriale și episoade?

Pentru seriale, da: folosește /3/tv/{tv_id}/videos. Câmpurile sunt aceleași, deci codul de ordonare scris pentru filme funcționează neschimbat. Căile de videoclipuri pentru sezon și episod răspund cu un array results gol, așa că folosește lista serialului.

### Câte cereri folosește o căutare de trailer?

O cerere pe titlu. Cu append_to_response=videos trailerul vine în apelul de detalii, deci detaliile plus trailerul rămân tot o cerere din cele 20, 40 sau 120 de cereri pe minut.

## Pagini conexe

- [API videoclipuri și trailere](https://amodb.dev/ro/videos-trailers/): API videoclipuri filme cu căi TMDB v3: listează trailere, teasere, clipuri și featurette-uri ale unui film sau serial, apoi filtrează după tip și limbă în cod.
- [API detalii film](https://amodb.dev/ro/movies/): API detalii film cu aceleași căi și același JSON ca TMDB v3. Preia un film după ID, adaugă credite, evaluări și atmosferă cu append_to_response, în 14 limbi.
- [API seriale TV](https://amodb.dev/ro/tv-series/): API seriale TV cu căile și JSON-ul TMDB v3. Preia un serial după ID cu sezoane, rețele și următorul episod, plus clasificări de conținut și furnizori.
- [Endpoint-uri pentru tendințe și liste](https://amodb.dev/ro/trending-lists/): API filme în tendințe cu căi TMDB v3: topuri pe zi și săptămână, plus now playing, populare, bine cotate și viitoare pentru filme și TV, în cache 30 de minute.
- [Limbi](https://amodb.dev/ro/languages/): amodb servește titluri, descrieri și nume în 14 limbi. Trimite în language o etichetă în stil TMDB, precum ru-RU sau pt-BR; altă etichetă revine la engleză.
- [Ghid rapid](https://amodb.dev/ro/quickstart/): Fă primul apel amodb: ia o cheie, cere detaliile unui film în curl, JavaScript, Python, PHP sau Go, apoi încarcă posterul de pe img.amodb.dev. Sub 2 minute.

Actualizat: 2026-10-18. Source: https://amodb.dev/ro/movie-trailer-api/
