Public Video Shares
Un Public Video Share es una página de aterrizaje compartible que sirve un video personalizado para un canal de distribución determinado. Cada proyecto puede tener un share público por canal (DEV, STAGING, PROD).
Campos
| Campo | Tipo | Notas |
|---|---|---|
channel | enum | DEV, STAGING o PROD |
slug | string | Identificador único URL-safe — forma la URL pública |
status | enum | Enabled o Disabled |
publicTitle | string | Título de la página mostrado a los usuarios finales (máx. 160 chars) |
publicSubtitle | string | Subtítulo opcional (máx. 280 chars) |
locale | string | Tag de locale opcional, ej. es-CL |
ctaLabel | string | Etiqueta del botón CTA (requerido si ctaUrl está definido) |
ctaUrl | string | URL a la que enlaza el botón CTA (requerido si ctaLabel está definido) |
personalizationData | objeto JSON | Datos de personalización inline opcionales |
apiCredentialId | UUID | Credencial de API usada para renderizar el video |
Endpoints de API
| Método | Ruta | Rol requerido | Descripción |
|---|---|---|---|
GET | /api/Projects/{projectId}/public-video-shares | Viewer+ | Listar shares del proyecto |
PUT | /api/Projects/{projectId}/public-video-shares/{channel} | ProjectManager+ | Crear o actualizar un share |
POST | /api/Projects/{projectId}/public-video-shares/{channel}/disable | ProjectManager+ | Deshabilitar la página de aterrizaje |
POST | /api/Projects/{projectId}/public-video-shares/{channel}/restore | ProjectManager+ | Rehabilitar un share deshabilitado |
POST | /api/Projects/{projectId}/public-video-shares/{channel}/rotate-slug | ProjectManager+ | Cambiar el slug de la URL pública |
Crear o actualizar un share
El endpoint PUT es idempotente — crea el share si no existe, o lo actualiza si ya existe.
PUT /api/Projects/{projectId}/public-video-shares/PROD
Authorization: Bearer {token}
{
"publicTitle": "Tu oferta de tarjeta de crédito personalizada",
"publicSubtitle": "Mira la oferta preparada especialmente para ti",
"locale": "es-CL",
"ctaLabel": "Solicitar ahora",
"ctaUrl": "https://banco.ejemplo.com/solicitar",
"apiCredentialId": "credential-uuid"
}
Rotar el slug
La URL pública se forma a partir del slug. Rotarlo invalida la URL anterior y genera una nueva — útil cuando una URL de share ha sido distribuida pero necesita cambiarse.
POST /api/Projects/{projectId}/public-video-shares/PROD/rotate-slug
Devuelve el slug anterior junto con el nuevo.
Deshabilitar y restaurar
Un share deshabilitado devuelve un 404 o un aviso de desactivación a los usuarios finales sin destruir la configuración.
POST /api/Projects/{projectId}/public-video-shares/PROD/disable
POST /api/Projects/{projectId}/public-video-shares/PROD/restore
Ambas acciones registran quién las realizó y cuándo (auditoría completa).
Credenciales de API
Las Credenciales de API son pares clave/secreto por proyecto usados para autenticar el acceso programático al renderizar videos. Son referenciadas mediante apiCredentialId en un Public Video Share.
Campos
| Campo | Descripción |
|---|---|
id | UUID |
projectId | Proyecto propietario |
apiKey | Clave pública |
name | Nombre de visualización opcional |
createdAt | Timestamp de creación |
lastUsedAt | Última vez que se usó la credencial |
status | active o revoked |
Endpoints
| Método | Ruta | Descripción |
|---|---|---|
GET | /api/credentials?projectId={id} | Listar credenciales de un proyecto |
POST | /api/credentials | Crear una nueva credencial |
POST | /api/credentials/{id}/revoke | Revocar una credencial |
El secreto solo se devuelve una vez en el momento de creación. Guárdalo de forma segura — no puede recuperarse después.
Crear una credencial
POST /api/credentials
Authorization: Bearer {token}
{
"projectId": "project-uuid",
"name": "Página de aterrizaje producción"
}
Respuesta:
{
"id": "uuid",
"apiKey": "pk_...",
"apiSecret": "sk_...",
"name": "Página de aterrizaje producción",
"createdAt": "2026-01-15T10:00:00Z"
}