# API de tráilers de películas

> La API de tráilers de películas es GET /3/movie/{movie_id}/videos en api.amodb.dev. Cada vídeo incluye un tipo, un indicador oficial, un idioma y una fecha de publicación, así que eliges el tráiler oficial en una sola pasada. Las series devuelven la misma estructura. Las rutas y el JSON coinciden con TMDB v3.

## Obtén el tráiler oficial de una película

`GET /3/movie/{movie_id}/videos` devuelve todos los vídeos asociados a una película. Cada elemento tiene un `type`, un indicador `official`, un código de idioma, una marca de tiempo `published_at` y los campos `site` y `key` que identifican el vídeo. Conserva los elementos donde `type` es `Trailer` y `official` es `true`, y tendrás tu tráiler.

Obtienes una lista de registros de vídeo que puedes ordenar tú mismo, no una transmisión. La respuesta nombra el vídeo y dónde está alojado, y tu página construye el reproductor a partir de `site` y `key`. Para las series de TV llega la misma estructura. Las rutas de temporada y de episodio responden con una lista vacía.

## Qué datos obtienes

| Endpoint                                                                   | Devuelve                                                                                        |
| -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| `GET /3/movie/{movie_id}/videos`                                           | Tráilers, teasers, clips, featurettes, escenas detrás de cámaras y tomas falsas de una película |
| `GET /3/tv/{tv_id}/videos`                                                 | La misma lista para una serie                                                                   |
| `GET /3/tv/{tv_id}/season/{season_number}/videos`                          | Siempre una lista `results` vacía                                                               |
| `GET /3/tv/{tv_id}/season/{season_number}/episode/{episode_number}/videos` | Siempre una lista `results` vacía                                                               |
| `GET /3/movie/{movie_id}` con `append_to_response=videos`                  | Detalles y vídeos en una sola solicitud                                                         |

Campos de cada vídeo:

| Campo                     | Tipo     | Uso                                                                                                                     |
| ------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------- |
| `type`                    | cadena   | Tipo de vídeo: `Trailer`, `Teaser`, `Clip`, `Featurette`, `Behind the Scenes` o `Bloopers`, como en la página de vídeos |
| `official`                | booleano | `true` cuando el vídeo está marcado como oficial                                                                        |
| `iso_639_1`, `iso_3166_1` | cadena   | Códigos de idioma y de país del vídeo                                                                                   |
| `key`, `site`             | cadena   | Identificador del vídeo y nombre del sitio que lo aloja, `YouTube` en todos los vídeos vistos                           |
| `size`                    | entero   | Resolución vertical, `1080` en todos los vídeos vistos                                                                  |
| `published_at`            | cadena   | Marca de tiempo ISO 8601, útil para ordenar del más reciente al más antiguo                                             |
| `name`, `id`              | cadena   | Título del vídeo y su id, que es la misma cadena que `key`                                                              |

## Empieza en 3 pasos

1. Elige un plan en [precios](https://amodb.dev/es/pricing/). Todos los planes devuelven todos los datos, así que eliges por solicitudes por minuto.
2. Crea una clave en el panel de tu cuenta. Son 32 caracteres hexadecimales en minúscula.
3. Llama a `GET /3/movie/{movie_id}/videos` con la clave en `api_key` o en un encabezado `Authorization: Bearer`.

## Ejemplo de solicitud

El ejemplo pide los vídeos de Inception (id `27205`), los ordena en el código e imprime el mejor. La ordenación pone primero las coincidencias de idioma, luego `Trailer` antes de `Teaser`, luego los oficiales antes que los no oficiales y por último el `published_at` más reciente.

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

Respuesta recortada: los primeros 2 de 42 vídeos. La lista contiene todos los idiomas.

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

## Elige qué vídeo reproducir

Un título suele tener varios tráilers oficiales (un primer anuncio, un montaje final) junto a teasers y clips. Ordénalos con una secuencia fija para que la página nunca acabe con un vídeo de tomas falsas en el espacio del tráiler.

| Prioridad | Filtro                                 | Uso habitual                                               |
| --------- | -------------------------------------- | ---------------------------------------------------------- |
| 1         | `Trailer`, oficial, el idioma coincide | El vídeo que se reproduce                                  |
| 2         | `Trailer`, no oficial                  | Subidas regionales o de fans cuando no existe nada oficial |
| 3         | `Teaser`, oficial                      | Avances cortos previos al estreno                          |
| 4         | `Clip`, `Featurette`                   | Respaldo para que el espacio no quede vacío                |
| omitir    | `Behind the Scenes`, `Bloopers`        | Muéstralos en una lista de extras aparte                   |

Desempata con `published_at`. Con el más reciente primero obtienes el montaje más nuevo, y con el más antiguo primero obtienes el primer anuncio.

## Idiomas de los tráilers

Los vídeos se etiquetan con un idioma mediante `iso_639_1`, y un mismo título puede tener tráilers en varios. Inception tiene 42 vídeos en 9 idiomas. amodb los devuelve todos en una sola respuesta. Los parámetros `language` e `include_video_language` no tienen efecto en los endpoints de vídeos, así que elige el idioma en tu código.

| Paso | Qué hacer                                                                      |
| ---- | ------------------------------------------------------------------------------ |
| 1    | Conserva los vídeos cuyo `iso_639_1` coincida con tu usuario, por ejemplo `ru` |
| 2    | Si ninguno coincide, conserva `en`                                             |
| 3    | Si ninguno coincide, conserva el resto                                         |

Ordena dentro de cada paso por tipo y por el indicador `official`, como en el ejemplo. Los idiomas de los vídeos dependen de la subida, no de los 14 idiomas de la interfaz que aparecen en [idiomas](https://amodb.dev/es/languages/), así que un tráiler puede ser `cs` o `he`.

## Tráilers de series

El tráiler de una serie está en `/3/tv/1396/videos` (Breaking Bad), que contiene 9 tráilers. La función de ordenación de arriba sirve tal cual, porque los campos no cambian. Las rutas de temporada y de episodio como `/3/tv/1396/season/1/videos` responden 200 con una lista `results` vacía, así que lee la lista de la serie. Consulta [vídeos y tráilers](https://amodb.dev/es/videos-trailers/) para ver la lista completa de rutas.

## Crea un carrusel de tráilers

Un carrusel de películas en cartelera necesita una llamada de lista y una llamada por título: `GET /3/movie/now_playing` (consulta [tendencias y listas](https://amodb.dev/es/trending-lists/)) más diez llamadas de vídeos suman 11 solicitudes para diez títulos. Guarda el `key` elegido junto al id de la película. Los tráilers cambian poco, así que actualiza una elección guardada cada pocas horas o cuando se reestrene un título.

## Cómo se compara

| Capacidad                | Hacer scraping de las páginas tú mismo | API de metadatos con nivel gratuito | amodb                                                                                |
| ------------------------ | -------------------------------------- | ----------------------------------- | ------------------------------------------------------------------------------------ |
| Indicador oficial        | Deducirlo del título de la página      | Revisa su documentación             | Booleano `official` en cada vídeo                                                    |
| Filtro por tipo de vídeo | Analizar texto                         | Revisa su documentación             | Seis valores de `type`                                                               |
| Elección de idioma       | Una configuración regional por página  | Revisa su documentación             | `iso_639_1` e `iso_3166_1` en cada vídeo, filtrados en tu código                     |
| Series y episodios       | Páginas separadas que rastrear         | Revisa su documentación             | Las series usan el mismo endpoint, las listas de temporadas y episodios están vacías |
| Mantenimiento            | Se rompe cuando cambia el marcado      | Depende del proveedor               | Una estructura JSON estable                                                          |
| Términos                 | Tú asumes el riesgo                    | Revisa sus términos                 | Planes de pago, consulta [precios](https://amodb.dev/es/pricing/)                    |

## Precios

Los planes son prepago. Compras 1, 3, 6, 12 o 24 meses y obtienes un 0, 10, 20, 30 o 40 por ciento de descuento en los periodos más largos. Nada se renueva solo. Los planes de 20, 40 y 120 solicitudes por minuto sirven todos los endpoints de esta página, así que un carrusel de tráilers con mucho tráfico es solo cuestión de velocidad. No hay nivel gratuito ni periodo de prueba. Compara los planes en [precios](https://amodb.dev/es/pricing/).

## Preguntas y respuestas

### ¿Cómo obtengo el tráiler oficial de una película?

Llama a GET /3/movie/{movie_id}/videos, conserva los elementos donde type sea Trailer y official sea true, y ordena por published_at. El primero es el tráiler oficial más reciente. Si no existe ningún tráiler, recurre a un Teaser.

### ¿La API devuelve un archivo de vídeo o una transmisión?

No. Devuelve metadatos de cada vídeo: name, type, site, key, size, language y fechas. Tú construyes el enlace del reproductor a partir de site y key, o insertas el vídeo en tu propia página. Los pósters y fotogramas salen de img.amodb.dev.

### ¿Cómo obtengo tráilers en mi idioma?

El endpoint de vídeos devuelve todos los idiomas en una sola respuesta e ignora los parámetros language e include_video_language. Filtra por iso_639_1 en tu código, por ejemplo primero ru, luego en y después el resto. Inception tiene vídeos en 9 idiomas.

### ¿Puedo obtener tráilers de series de TV y de episodios?

Para series, sí: usa /3/tv/{tv_id}/videos. Los campos son los mismos, así que el código de ordenación que escribiste para películas funciona sin cambios. Las rutas de vídeos de temporadas y episodios responden con una lista results vacía, por lo que debes usar la lista de la serie.

### ¿Cuántas solicitudes usa la búsqueda de un tráiler?

Una solicitud por título. Con append_to_response=videos el tráiler llega dentro de la llamada de detalles, así que detalles más tráiler siguen siendo una sola solicitud dentro de tus 20, 40 o 120 solicitudes por minuto.

## Páginas relacionadas

- [API de vídeos y tráilers](https://amodb.dev/es/videos-trailers/): API de vídeos de películas con rutas TMDB v3: lista tráilers, teasers, clips y reportajes de una película o serie, y filtra por tipo e idioma en tu código.
- [API de detalles de película](https://amodb.dev/es/movies/): API de detalles de película con rutas y JSON de TMDB v3. Obtén una película por id y añade créditos, puntuaciones y moods con append_to_response, en 14 idiomas.
- [API de series de TV](https://amodb.dev/es/tv-series/): API de series de TV con las mismas rutas y JSON que TMDB v3. Obtén una serie con temporadas, cadenas y próximo episodio, más clasificaciones y plataformas.
- [Endpoints de tendencias y listas](https://amodb.dev/es/trending-lists/): API de películas en tendencia con rutas TMDB v3: rankings diarios y semanales, más cartelera, populares, mejor valoradas y estrenos. Caché de 30 minutos.
- [Idiomas](https://amodb.dev/es/languages/): amodb sirve títulos, sinopsis y nombres en 14 idiomas. Pasa una etiqueta estilo TMDB como ru-RU o pt-BR en language; cualquier otra etiqueta recurre al inglés.
- [Inicio rápido](https://amodb.dev/es/quickstart/): Haz tu primera llamada a amodb: consigue una clave, pide los detalles de una película en curl, JavaScript, Python, PHP o Go y carga el póster. En 2 minutos.

Actualizado: 2026-10-18. Source: https://amodb.dev/es/movie-trailer-api/
