1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Asegurar un flujo MP3/AAC o HLS
Esta guía explica cómo mantener el control sobre sus flujos de Streaming de radio MP3/AAC o HLS, por ejemplo, para decidir si un oyente puede escuchar su radio, activando la protección mediante una clave única (token).
Proteger un flujo de audio con una clave única
El principio es simple: en cada conexión, realizará una solicitud a la API de Infomaniak que le devolverá un token único con una duración limitada y configurable. Este token autorizará a cualquier persona que lo posea a consumir el flujo durante ese período.
Puede proteger un flujo MP3/AAC o HLS independientemente uno del otro (lo mismo ocurre con la geolocalización).
Para hacerlo, simplemente vaya a la configuración de restricciones y active la protección con un token en el flujo que desee asegurar:
- Inicie sesión en el Manager de Infomaniak (manager.infomaniak.com) desde un navegador web como Brave o Edge
- Haga clic en el icono en la esquina superior derecha de la interfaz (o navegue a través del menú lateral izquierdo, por ejemplo)
- Seleccione Streaming de radio (universo Streaming)
- Haga clic en el nombre del objeto en cuestión en la tabla que se muestra
- Haga clic en Restricciones en el menú lateral izquierdo
- Seleccione HLS si es necesario
- Haga clic en el menú de acciones ⋮ a la derecha del flujo en cuestión en la tabla que se muestra
- Haga clic en Restricción por token
Luego active la protección.
Atención: al activar esta opción, el acceso al flujo se bloqueará instantáneamente para nuevas conexiones. Adapte sus reproductores para tener en cuenta la restricción, como se ilustra en el siguiente ejemplo:
Crear un token de API de Radio
Para acceder a la API de Radio, primero debe autenticarse con un token de aplicación. Este paso solo se realiza una vez. Para crear este token de aplicación, lea esta guía.El ámbito es radio y la duración de vida es ilimitada para evitar tener que regenerar un código regularmente. Una vez generado el token, cópielo para pegarlo en el siguiente ejemplo.
Ejemplo de uso en PHP
Para MP3/AAC o HLS, el código puede ser sustancialmente el mismo, solo cambia la URL llamada por POST en su forma.
/**
* Función genérica para ejecutar solicitudes cURL
*
* @param string $method Método HTTP (GET, POST, PUT, etc.)
* @param string $url URL de la API a solicitar
* @param array $headers Lista de encabezados HTTP (la autorización debe pasarse aquí con un ['Authorization: Bearer
* @param array $payload Una matriz que contiene datos para crear un token
* @return mixed
*/
- Para un flujo MP3 / AAC
- Para un flujo HLS
POST https://api.infomaniak.com/1/radios/acl/streams/<b>mountpoint.mp3</b>/token
Ejemplo para proteger https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac
la ruta será: https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token
POST https://api.infomaniak.com/1/radios/acl/hls_streams/<stream>/token
Ejemplo para proteger https://myradiostream.radiohls.infomaniak.com/myradiostream/manifest.m3u8
la ruta será: https://api.infomaniak.com/1/radios/acl/hls_streams/myradiostream/token
Ejemplo en el caso de MP3 / AAC, asegúrese de ajustar
'POST',
'https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token',
// cabecera de autorización
[
'Authorization: Bearer ' . API_TOKEN,
'Content-Type: application/json',
],
/**
* carga útil para crear el token, puede pasar los siguientes valores
* window | 300 | opcional | duración de validez del token (predeterminado: 5 minutos)
*/
[
'window' => 3600, // validez de 1 hora
]
Es importante tener en cuenta que si este código se genera al cargar la página, el oyente tendrá "window" segundos para iniciar la reproducción del flujo. Después de este tiempo, el token caducará y el flujo ya no se podrá reproducir a menos que se recargue la página. Según sus necesidades y su caso de uso, será necesario ajustar este tiempo de la mejor manera posible.
También deberá reemplazar a continuación la URL de reproducción de su flujo en lugar de la indicada, manteniendo el parámetro $token
al final. Y finalmente, mostramos el reproductor (aquí una simple etiqueta HTML5, pero por supuesto se puede agregar cualquier otra capa adicional, con el token pasado en los parámetros $_GET
de la URL.
$streamUrl = "https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac?$token";
echo "<audio controls=""><source src="$streamUrl"></audio>";