# Conceptos

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

Las cuatro ideas que conviene entender antes de proteger tu primer contenido.

## El contentId es permanente

Es tu identificador para un contenido: el que ya usas en tu catálogo. Lo eliges tú, no nosotros.

> **No se puede reutilizar. Nunca.:** Una vez que se ha emitido una clave para un `contentId`, el proveedor de DRM no vuelve a emitir otra para el mismo identificador. Si lo quemas por error —una prueba, un typo—, ese identificador está gastado para siempre y tendrás que reempaquetar el contenido bajo otro nombre.

Por eso conviene tratarlo como lo que es: un identificador de catálogo, no un nombre de archivo temporal. Y por eso el panel te avisa antes de crear.

### Qué caracteres admite

Letras, números, punto, guion y guion bajo. Sin espacios, sin acentos, sin dos puntos. La restricción no es un capricho: el identificador viaja dentro de un XML y los dos puntos los usamos internamente como separador.

> **Para probar, usa identificadores desechables:** Algo como `test-2026-07-31-01`. Así no gastas los nombres reales de tu catálogo mientras experimentas.

## Key ID y key no son lo mismo

Cada clave son en realidad dos valores, y confundirlos es un problema de seguridad.

|  | Qué es | ¿Es secreto? |
| --- | --- | --- |
| `keyId` | El identificador de la clave | No. Viaja sin cifrar dentro del propio vídeo, y así debe ser: es lo que el reproductor usa para pedir la licencia correcta. |
| `key` | La clave que descifra el vídeo | Sí, totalmente. Quien la tenga puede descifrar tu contenido sin pedir permiso a nadie. |

> **La key nunca debe llegar al navegador:** Ni en un JavaScript, ni en una respuesta de tu API pública, ni en un repositorio. Solo la necesita tu empaquetador, en el servidor, en el momento de cifrar.

Nosotros no guardamos la `key` en ningún momento: la pedimos al proveedor cada vez que tú la pides. Lo único que persiste es el mapa entre tu `contentId` y su `keyId`.

## Una clave por calidad

Puedes proteger todo un contenido con una sola clave, o darle una clave distinta a cada calidad. La diferencia no es cosmética.

Las reglas de reproducción se aplican **por clave**. Si el 4K y el 720p comparten clave, comparten reglas: o exiges dispositivos con protección por hardware para ambos —y dejas fuera a mucha gente en el 720p— o no lo exiges para ninguno —y sirves tu 4K sin protección real.

Con una clave por calidad puedes hacer lo que de verdad quieres: el 4K solo en dispositivos certificados, el 720p en cualquier navegador.

| Calidad | Resolución habitual | Nivel típico |
| --- | --- | --- |
| `UHD` | 8K o superior | Estricto |
| `UHD1` | 4K (2160p) | Estricto |
| `HD` | 1080p | Equilibrado |
| `SD` | 720p y por debajo | Compatible |
| `AUDIO` | Pista de sonido | Compatible |

> **Las resoluciones son una convención, no una regla:** Nosotros no comprobamos la resolución de tu vídeo. La calidad es una etiqueta que también le das a tu empaquetador, así que lo único que importa es usar la misma en los dos sitios. Si tu escalera es 1080p y 720p, puedes llamarlas `HD` y `SD` sin más.

## Niveles de seguridad: el intercambio

Más seguridad significa siempre menos dispositivos capaces de reproducir. No hay una opción que sea mejor en todo, y elegir la más estricta «por si acaso» es la forma habitual de acabar con tickets de soporte imposibles de diagnosticar.

| Nivel | Qué exige | Dónde se reproduce |
| --- | --- | --- |
| **Estricto** | Protección por hardware de extremo a extremo y salida de vídeo protegida (HDCP 2.2) | Móviles y televisores modernos. Deja fuera navegadores de escritorio y equipos antiguos. |
| **Equilibrado** | Cifrado en hardware, sin exigir toda la cadena | La mayoría de móviles, televisores y navegadores actuales. |
| **Compatible** | Nada especial | Prácticamente todo, incluidos navegadores de escritorio y equipos viejos. |

Detrás de cada nivel hay valores concretos y distintos para cada sistema DRM. Puedes verlos en la página de reglas del panel, y afinarlos uno a uno si lo necesitas. Qué significan exactamente está en [Sistemas DRM](/docs/drm).

> **Lo que exigen los estudios:** Si distribuyes contenido con licencia, el estudio suele imponer el nivel mínimo por resolución. Ese requisito manda sobre cualquier recomendación nuestra.

## Rotación de claves (directos)

En un directo puedes cambiar la clave cada cierto tiempo, de modo que una clave filtrada solo sirva para unos minutos de emisión en lugar de para el canal entero. A cada tramo lo llamamos **periodo**.

Las claves antiguas siguen funcionando: alguien que retroceda en el directo o vea la grabación puede descifrar los segmentos viejos con la clave que les corresponde. Rotar no borra el pasado.

> **No mezcles rotación con una clave normal:** Si un contenido ya tiene una clave normal (de VOD) y le añades un periodo de rotación, el proveedor deja inaccesible esa clave normal **de forma permanente**. El contenido que estuviera cifrado con ella deja de poder reproducirse. Por eso te devolvemos un error 409 si lo intentas, en vez de dejarte romperlo.

La regla práctica: decide antes de empezar si un contenido es un directo con rotación o un VOD con clave fija. No se puede cambiar de idea después.

> **La rotación cuesta dinero:** Cada periodo es una clave nueva, y se cobra como tal. Un canal que rota cada 10 minutos genera 144 claves al día — unos $43 al mes. Ajusta la duración del periodo a lo que de verdad necesitas.

## Namespace y credenciales

Tu cuenta tiene un **namespace** (algo como `usr_a1b2c3d4`). Es la frontera de tus datos: tus claves, tus reglas, tus reproducciones y tu saldo cuelgan de él.

Toda credencial que crees queda encerrada en tu namespace. No puede leer ni tocar nada de otro cliente, aunque conozca su `contentId`.

> **Si pierdes un token, crea otro — pero en la misma cuenta:** Los tokens se muestran una sola vez y solo guardamos su huella, así que no se pueden recuperar. Un token nuevo de tu misma cuenta sigue viendo todas las claves que emitiste antes: las claves pertenecen al namespace, no a la credencial.
