media server logo
Mostrar u ocultar la navegación
Inicio de Callaba

Grupos de reproductores web

Usa Grupos de reproductores web para ofrecer a los espectadores una sola página desde la que cambiar entre señales de idiomas autorizadas, ángulos de cámara o variantes de replay.

Qué hacePermitir que la audiencia cambie de señal

Elige este módulo cuandoVarios reproductores necesitan una página común para cambiar entre idiomas, ángulos o replays.

Usa otro módulo cuandoUsa Reproductores web para crear y validar primero cada endpoint de reproducción.

1Elige los reproductores2Define el acceso común3Publica una página
POST /api/vod-group/create
8 endpoints

Antes de empezar

Todos los métodos de gestión requieren un x-access-token válido. Crea y prueba cada reproductor web antes de añadir sus identificadores a un grupo.

Qué puedes hacer

  • create y update definen los miembros, la selección predeterminada, el acceso, el branding y los ajustes del evento.
  • getAll, getCount y getById consultan los grupos.
  • start y stop controlan la disponibilidad del grupo.
  • remove elimina el grupo, pero conserva sus reproductores web.

Flujo de ejemplo

  1. Crea y valida un reproductor web para cada señal de idioma.
  2. Crea un grupo que contenga los identificadores de esos reproductores.
  3. Selecciona el idioma principal como predeterminado.
  4. Aplica los ajustes compartidos de acceso y evento.
  5. Inicia el grupo y publica su URL para espectadores o su embed.

Casos de uso habituales

  • Ofrecer señales paralelas de distintos idiomas o comentaristas en una página de evento.
  • Publicar un conjunto seleccionado de variantes de replay o episodios.
  • Aplicar una política restringida o pay-per-view a varios reproductores.

Límites y resolución de problemas

El grupo depende de recursos válidos y reproducibles. Eliminar o detener uno de sus miembros puede dejar una opción no disponible hasta que el grupo se actualice. Prueba la selección predeterminada, el flujo de acceso y cada reproductor antes de publicar.

Siguientes pasos

Abre Reproductores web para preparar cada fuente y añade después el grupo probado mediante embed o enlace a la experiencia del espectador.

Receta de solución REST

Crear una experiencia de pago por visión

Prepara primero los reproductores, agrupa las señales aprobadas en una página y aplica al grupo los ajustes de pago y acceso.

  1. Crear el reproductorPrepara cada señal en directo o grabada que podrán comprar los espectadores.POST /api/vod/create
  2. Crear el grupo de pagoAsocia los reproductores y configura pay_per_view_settings, acceso, marca y datos del evento.POST /api/vod-group/create
  3. Abrir la experienciaInicia el grupo solo cuando pasen las pruebas de compra y reproducción.POST /api/vod-group/start

Configurar el pago no completa la prueba comercial. Valida compra, autorización, soporte y reproducción con un cliente de prueba antes del evento.

POST
/api/vod-group/create
Requiere token de API

Agrupa varios reproductores en una sola experiencia con cambio de señal, branding, presentación y política de acceso comunes.

Úsalo para idiomas, ángulos o comentarios, especialmente si la contraseña o el pay-per-view deben aplicarse a todo el grupo. Los ejemplos incluyen solicitudes vMix Script para publicación desde producción.

Grupo con selector de idioma

Utiliza esta configuración cuando varios reproductores web paralelos representen distintos idiomas o comentarios y uno deba quedar seleccionado de forma predeterminada.

Grupo con selector de idioma
Copiar código
curl --request POST \
--url http://localhost/api/vod-group/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Main event language selector",
"type": "LANGUAGE_LIST",
"players": [
{
"id": "PLAYER_ID_ENGLISH",
"name": "English",
"selected": true
},
{
"id": "PLAYER_ID_SPANISH",
"name": "Spanish",
"selected": false
}
],
"authorization": {
"authorization_type": "VOD_PASSWORD_DISABLED",
"credentials": []
},
"pay_per_view_settings": {
"type": "PAY_PER_VIEW_DISABLED"
},
"support_email": "[email protected]",
"eventDateStatus": "EVENTS_DATE_DISABLED",
"active": true
}'
Grupo de archivos para playlist

Utiliza esta configuración cuando la experiencia agrupada del navegador deba alternar entre contenidos bajo demanda o reproductores preparados a partir de archivos.

Grupo de archivos para playlist
Copiar código
curl --request POST \
--url http://localhost/api/vod-group/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "On-demand episode selector",
"type": "FILES_LIST",
"players": [
{
"id": "PLAYER_ID_EPISODE_1",
"name": "Episode 1",
"selected": true
},
{
"id": "PLAYER_ID_EPISODE_2",
"name": "Episode 2",
"selected": false
}
],
"authorization": {
"authorization_type": "VOD_PASSWORD_DISABLED",
"credentials": []
},
"pay_per_view_settings": {
"type": "PAY_PER_VIEW_DISABLED"
},
"eventDateStatus": "EVENTS_DATE_DISABLED",
"active": true
}'
Grupo de evento protegido con contraseña

Utiliza esta configuración cuando la reproducción agrupada deba permanecer privada mediante una contraseña compartida para invitados.

Grupo de evento protegido con contraseña
Copiar código
curl --request POST \
--url http://localhost/api/vod-group/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Private webinar playback group",
"type": "LANGUAGE_LIST",
"players": [
{
"id": "PLAYER_ID_PRIVATE_MAIN",
"name": "Main stream",
"selected": true
}
],
"authorization": {
"authorization_type": "VOD_USE_PASSWORD",
"credentials": [
{
"name": "Guest",
"password": "guest-password"
}
]
},
"pay_per_view_settings": {
"type": "PAY_PER_VIEW_DISABLED"
},
"support_email": "[email protected]",
"eventDateStatus": "EVENTS_DATE_DISABLED",
"active": true
}'
Grupo de evento con pay-per-view

Utiliza esta configuración cuando una página de evento personalizada deba reunir uno o varios reproductores con acceso mediante PayPal y metadatos de fecha y hora del evento.

Grupo de evento con pay-per-view
Copiar código
curl --request POST \
--url http://localhost/api/vod-group/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Paid event player group",
"type": "LANGUAGE_LIST",
"players": [
{
"id": "PLAYER_ID_MAIN_STAGE",
"name": "Main stage",
"selected": true
}
],
"authorization": {
"authorization_type": "VOD_PASSWORD_DISABLED",
"credentials": []
},
"pay_per_view_settings": {
"type": "PAY_PER_VIEW_PAYPAL",
"amount": 19,
"client_id": "PAYPAL_CLIENT_ID"
},
"support_email": "[email protected]",
"event_date": "2026-04-01T18:00:00.000Z",
"timeZone": "Europe/Istanbul",
"eventDateStatus": "EVENTS_SET_DATE",
"active": true
}'
Parámetros del cuerpo de la solicitud
Identidad
name
string
Copiar enlace directo

Etiqueta del panel: Nombre del grupo.

Nombre descriptivo de la experiencia de reproducción agrupada.

type
string
Copiar enlace directo

Etiqueta del panel: Tipo.

Entre los valores utilizados por el producto están LANGUAGE_LIST y FILES_LIST.

Reproductores
players[]
array
Copiar enlace directo

Lista de reproductores vinculados. Cada elemento incluye id, el name que se mostrará y el indicador selected que define la opción predeterminada.

Acceso
authorization
object
Copiar enlace directo

Bloque opcional de autorización de espectadores. Entre los modos del producto están VOD_PASSWORD_DISABLED, VOD_USE_PASSWORD y los flujos con correo electrónico y contraseña.

Monetización
pay_per_view_settings
object
Copiar enlace directo

Bloque opcional de pago por visión. Además del modo deshabilitado predeterminado, el panel permite utilizar PayPal.

Presentación
cover_path / logo_path / useCustomLogo / useCustomBackground
mixed
Copiar enlace directo

Campos opcionales de marca para la página de reproducción agrupada.

support_email
string
Copiar enlace directo

Contacto de soporte opcional que se muestra en la página del reproductor de tipo evento.

event_date / timeZone / eventDateStatus
mixed
Copiar enlace directo

Metadatos opcionales de fecha y hora del evento guardados en el grupo.

Runtime
active
boolean
Copiar enlace directo

Etiqueta del panel: Habilitar después de crear.

Define si el grupo debe quedar activo inmediatamente después de crearlo.

Crear grupo de reproductores web
Copiar código
curl --request POST \
--url http://localhost/api/vod-group/create \
--header 'x-access-token: <your_api_token>' \
--header 'Content-Type: application/json' \
--data '{
"name": "Main event language selector",
"type": "LANGUAGE_LIST",
"players": [
{
"id": "PLAYER_ID_ENGLISH",
"name": "English",
"selected": true
},
{
"id": "PLAYER_ID_SPANISH",
"name": "Spanish",
"selected": false
}
],
"authorization": {
"authorization_type": "VOD_PASSWORD_DISABLED",
"credentials": []
},
"pay_per_view_settings": {
"type": "PAY_PER_VIEW_DISABLED"
},
"support_email": "[email protected]",
"eventDateStatus": "EVENTS_DATE_DISABLED",
"active": true
}'
Respuesta
Identidad
_id / id / name / type
mixed
Copiar enlace directo

Identificadores y campos principales de identidad del grupo.

Reproductores
players[]
array
Copiar enlace directo

Reproductores guardados en el grupo, incluido el estado de selección predeterminado.

Acceso
authorization / users
mixed
Copiar enlace directo

Estado de autorización y usuarios de visualización vinculados al grupo.

Monetización
pay_per_view_settings
object
Copiar enlace directo

Configuración de pago por visión guardada para el grupo.

Presentación
cover_path / logo_path / support_email / event_date / timeZone / eventDateStatus
mixed
Copiar enlace directo

Datos de marca y metadatos del evento que devuelve el objeto del grupo.

Runtime
active / created / modified
mixed
Copiar enlace directo

Indicador del estado de ejecución actual y marcas de tiempo gestionadas por el backend.

Resultado de la operación
success
boolean
Copiar enlace directo

El modelo expone success: true como un campo virtual en respuestas exitosas.

Respuesta: Crear grupo de reproductores web
JSON
Copiar código
{
"_id": "6a1144aa22bb33cc44dd55ee",
"id": "6a1144aa22bb33cc44dd55ee",
"name": "Main event language selector",
"type": "LANGUAGE_LIST",
"players": [
{
"id": "6a1144aa22bb33cc44dd5601",
"name": "English",
"selected": true
},
{
"id": "6a1144aa22bb33cc44dd5602",
"name": "Spanish",
"selected": false
}
],
"authorization": {
"authorization_type": "VOD_PASSWORD_DISABLED"
},
"pay_per_view_settings": {
"type": "PAY_PER_VIEW_DISABLED"
},
"cover_path": "",
"logo_path": "",
"useCustomLogo": "VOD_DISABLE_LOGO",
"useCustomBackground": "VOD_DISABLE_BACKGROUND",
"support_email": "[email protected]",
"event_date": "2026-04-01T18:00:00.000Z",
"timeZone": "Europe/Istanbul",
"eventDateStatus": "EVENTS_DATE_DISABLED",
"active": true,
"created": "2026-03-24T18:00:00.000Z",
"modified": "2026-03-24T18:00:00.000Z",
"success": true
}
POST
/api/vod-group/getCount
Requiere token de API
POST
/api/vod-group/getAll
Requiere token de API
POST
/api/vod-group/getById
Requiere token de API
POST
/api/vod-group/update
Requiere token de API
POST
/api/vod-group/start
Requiere token de API
POST
/api/vod-group/stop
Requiere token de API
DELETE
/api/vod-group/remove
Requiere token de API