# Empezar

Source: https://airi.live/docs
Language: es. The other: https://airi.live/docs.md?lang=en
Index: https://airi.live/llms.txt — every page in one file: https://airi.live/llms-full.txt

Airi te da las claves para cifrar tu vídeo y decide quién puede reproducirlo. Tú no montas ningún servidor.

## Qué hace Airi

Un vídeo protegido con DRM está cifrado. Para verlo, el reproductor tiene que pedir una licencia a un servidor, y ese servidor decide si se la da y con qué condiciones. Airi es esas dos piezas: te entrega las claves de cifrado y opera el servidor de licencias.

Lo que tú pones es el vídeo y el cifrado. Lo que nosotros ponemos es todo lo demás: las claves, la negociación con cada sistema DRM, y las reglas de reproducción que tú defines.

### El recorrido completo

1. Pides una clave para tu contenido. Te devolvemos un `keyId` (público) y una `key` (secreta).
2. Cifras el vídeo con esa clave usando tu empaquetador — Shaka Packager, Bento4, MediaConvert, lo que uses.
3. Publicas el manifiesto apuntando a nuestro servidor de licencias.
4. Un espectador le da al play. Su reproductor pide la licencia, y nosotros decidimos si se la damos según tus reglas.

> **Solo pagas por lo que usas:** $0.01 por cada clave que creas y $0.009 por cada reproducción que autorizamos. Sin cuota mensual: recargas saldo y se descuenta.

## Tus primeros pasos

Hay dos formas de usar Airi, y puedes mezclarlas: desde el panel, o desde la API.

### Desde el panel

1. Crea tu cuenta en [airi.live](/register). Solo hace falta un correo — te enviamos un código, sin contraseñas.
2. Recarga saldo. Sin saldo no se pueden crear claves.
3. Pulsa **Proteger un contenido**. Eliges las calidades y el nivel de seguridad en lenguaje llano, y te damos las claves.

### Desde la API

En **Desarrolladores** creas una credencial. El token se muestra una sola vez, así que guárdalo al momento.

Crear una clave para la calidad HD:

```
curl -X POST https://kms.airi.live/v1/keys \
  -H "Authorization: Bearer kms_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "contentId": "pelicula-1234",
    "drmSystems": ["widevine", "playready", "fairplay"],
    "track": "HD"
  }'
```

Respuesta:

```
{
  "success": true,
  "created": true,
  "contentId": "pelicula-1234",
  "keyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "key": "y3Jl...",      // secreta: no la publiques
  "iv": "8f2a...",
  "track": "HD",
  "licenseUrls": {          // a donde apuntar el reproductor para ESTA clave
    "widevine":  "https://drm.airi.live/v2/widevine",
    "playready": "https://drm.airi.live/v2/playready",
    "fairplay":  "https://drm.airi.live/fairplay"
  },
  "drmSystemsData": [ /* pssh por sistema */ ]
}
```

> **Repetir la misma petición es seguro:** Si vuelves a pedir la clave del mismo `contentId` y la misma calidad, te devolvemos la que ya existe con `created: false`, y no se te cobra. Tu pipeline puede reintentar sin miedo a duplicar nada.

## Cifrar el vídeo

Con el `keyId` y la `key` ya puedes cifrar. Este es un ejemplo con Shaka Packager; la idea es la misma en cualquier otro empaquetador.

Shaka Packager, en modo cbcs (compatible con FairPlay):

```
packager \
  in=video-1080.mp4,stream=video,output=video-hd.mp4 \
  in=audio.mp4,stream=audio,output=audio.mp4 \
  --enable_raw_key_encryption \
  --keys label=HD:key_id=a1b2c3d4e5f67890abcdef1234567890:key=<key en hex> \
  --protection_scheme cbcs \
  --mpd_output pelicula.mpd \
  --hls_master_playlist_output pelicula.m3u8
```

> **La clave viaja en base64, el empaquetador la quiere en hexadecimal:** Nuestra API devuelve `key` e `iv` en base64 porque así los define el estándar CPIX. La mayoría de empaquetadores los esperan en hexadecimal. Conviértelos antes, o el vídeo se cifrará con una clave que no es la tuya y nadie podrá verlo.

Sobre `--protection_scheme`: la elección entre `cenc` y `cbcs` determina qué dispositivos podrán reproducir tu vídeo, y no se puede cambiar sin volver a cifrar. Está explicado en [Sistemas DRM](/docs/drm#esquemas).

## Apuntar al servidor de licencias

El último paso es decirle al reproductor a dónde pedir la licencia. Cada sistema DRM habla su propio protocolo, así que cada uno tiene su URL. Vienen en `licenseUrls` con cada clave que creas — cópialas de ahí y no tendrás que pensar en esto:

Shaka Player:

```
player.configure({
  drm: {
    servers: {
      'com.widevine.alpha': 'https://drm.airi.live/v2/widevine',
      'com.microsoft.playready': 'https://drm.airi.live/v2/playready',
      'com.apple.fps': 'https://drm.airi.live/fairplay'
    }
  }
});
```

A partir de ahí, cada petición de licencia pasa por nuestras reglas: comprobamos que la clave sea tuya, aplicamos el nivel de seguridad que hayas definido para esa calidad, y registramos la reproducción para que la veas en el panel.

## Y ahora qué

- [Conceptos](/docs/conceptos) — qué es un `contentId`, por qué hay una clave por calidad y cuándo necesitas rotación.
- [Sistemas DRM](/docs/drm) — en qué se diferencian Widevine, PlayReady, FairPlay y WisePlay, y cuáles necesitas.
- [Cifrar tu vídeo](/docs/empaquetar) — un script listo para ejecutar que hace todo el camino, en Node o en Python.
- [Reproductores](/docs/reproductores) — configurar Shaka Player y Video.js, y qué mirar cuando algo no reproduce.
- [Referencia de la API](https://kms.airi.live/docs) — todos los endpoints, con ejemplos que puedes ejecutar.


## Contents

- [Empezar](https://airi.live/docs.md): Airi te da las claves para cifrar tu vídeo y decide quién puede reproducirlo. Tú no montas ningún servidor.
- [Tu primer vídeo](https://airi.live/docs/tutorial.md): De crear la cuenta a tener un vídeo reproduciéndose en tu web, paso a paso y sin escribir una línea de código. Lo que más tarda es esperar a que el vídeo se procese.
- [Conceptos](https://airi.live/docs/conceptos.md): Las cuatro ideas que conviene entender antes de proteger tu primer contenido.
- [Sistemas DRM](https://airi.live/docs/drm.md): Widevine, PlayReady, FairPlay y WisePlay hacen lo mismo para fabricantes distintos. Estas son las diferencias que te van a afectar.
- [Cifrar tu vídeo](https://airi.live/docs/empaquetar.md): Un script que va de un archivo de vídeo a contenido protegido y listo para subir. En Node o en Python, el que prefieras.
- [Reproductores](https://airi.live/docs/reproductores.md): Cómo configurar Shaka Player y Video.js para reproducir tu contenido protegido.
- [Almacenamiento](https://airi.live/docs/almacenamiento.md): Guarda tus vídeos y sírvelos por CDN con enlaces que caducan. Pagas por lo que ocupan y por lo que se descarga, sin mínimos ni cuota.
- [Codificación](https://airi.live/docs/codificacion.md): Convierte un máster en las calidades que un reproductor necesita, empaquetado para streaming adaptativo y cifrado si quieres. Las salidas aparecen en tu almacenamiento, listas para servir.
- [Reproductor](https://airi.live/docs/reproductor.md): Un reproductor profesional que incrustas con una línea, conectado a tu almacenamiento y a tu DRM. Es gratis: pagas la entrega y las licencias que la reproducción ya consume, no el reproductor.
- [MCP](https://airi.live/docs/mcp.md): Conecta tu asistente de IA a tu cuenta: sube un vídeo, codifícalo, cífralo y publica un reproductor sin salir de la conversación. Un comando para instalarlo, y nada que mantener.
- [Preguntas frecuentes](https://airi.live/docs/faq.md): Lo que suele preguntarse antes de empezar, con las respuestas incómodas incluidas.
