Base de conocimientos
1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Esta guía explica cómo mantener el control sobre sus flujos de Streaming Radio MP3/AAC o HLS activando la protección por clave única (token) para decidir, por ejemplo, si un oyente puede escuchar su radio o no.
Prólogo
- El principio es sencillo: en cada conexión, realizarás una solicitud a la API de Infomaniak que te devolverá un token único con una duración de vida limitada y configurable. Este token permitirá a quien lo posea consumir el flujo durante este período.
- Puede proteger un flujo MP3/AAC o HLS independientemente uno del otro (lo mismo ocurre con la geolocalización).
- La activación de la restricción implica un cambio en la configuración del flujo que puede tardar unos minutos en replicarse en los servidores.
Proteger un flujo de audio por clave única
Para hacerlo, basta con ir a los parámetros de restricciones y activar la protección por token en el flujo que desea proteger:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿Necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto en cuestión.
- Haga clic en el nombre del flujo de audio correspondiente.
- Haga clic en Restricciones en el menú lateral izquierdo.
- Seleccione HLS si es necesario.
- Haga clic en el menú de acción ⋮ ubicado a la derecha del elemento correspondiente.
- Haga clic en Restricción por token:
Active luego la protección.
Atención, en el momento en que active esta opción, el acceso al flujo se bloqueará instantáneamente para las nuevas conexiones. Ajuste sus reproductores para tener en cuenta la restricción, como se ilustra en el ejemplo a continuación:
Crear un token API Radio
Para acceder a la API Radio, primero debe autenticarse utilizando un token de aplicación. Este paso solo se debe hacer una vez. Para crear este token de aplicación, consulte esta otra guía.
El ámbito es radio y la duración ilimitada para evitar tener que regenerar un código de manera regular. Una vez generado el token, cópielo para pegarlo en el ejemplo de abajo.
Ejemplo de uso en lenguaje PHP
Para MP3/AAC o HLS, el código puede ser bastante similar, solo cambia la URL llamada en POST en cuanto a su forma.
Pega el token generado a continuación en lugar del indicado:
if (!defined('API_TOKEN')) {
define('API_TOKEN', 'AYF5lSh3c7Xy5974Fs12RTkTThujT-L9R4Xk2ZfGyP6sV7QqJ1oC3jD8nFtKzIxUeMw5oNzR6');
}
/**
* Fonction générique pour executer des requêtes cURL
*
* @param string $method Méthode HTTP (GET, POST, PUT, etc...)
* @param string $url Url de l'api a requêter
* @param array $headers Liste des en-têtes HTTP (l'autorisation doit être passée ici avec un ['Authorization: Bearer ']
* @param array $payload Un tableau contenant les données pour créer un token
* @return mixed
*/
function request(string $method, string $url, array $headers = [], array $payload = []): mixed{
// prepare options array
$opts = [
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => strtoupper($method),
];
// add payload if relevant
if ($payload && $method !== 'GET') {
$opts[CURLOPT_POSTFIELDS] = json_encode($payload);
}
$ch = curl_init();
curl_setopt_array($ch, $opts);
$result = curl_exec($ch);
if(curl_errno($ch)){
throw new Exception(curl_error($ch));
}
$data = json_decode($result, true);
if ($data['result'] === 'error') {
throw new Exception($data['error']['description'] ?? 'an error occured');
}
return $data['data'];
}
Vamos a crear el token, la URL de creación del token se desglosa de la siguiente manera:
- Para un flujo MP3 / AAC
POST https://api.infomaniak.com/1/radios/acl/streams/mountpoint.mp3/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
- Para un flujo HLS
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 del MP3/AAC, asegúrate de ajustar:
$token = request(
'POST',
'https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token',
// en-tête d'authorization
[
'Authorization: Bearer ' . API_TOKEN,
'Content-Type: application/json',
],
/**
* payload pour créer le token, vous pouvez passer les valeurs suivantes
* window | 300 | optionnel | durée de validité du token (default: 5 minutes)
*/
[
'window' => 3600, // 1h validity
]
);
Es importante tener en cuenta que si este código se genera en el momento de cargar la página, el oyente tendrá "window" segundos para iniciar la reproducción del flujo. Pasado este plazo, el token expirará y el flujo no podrá iniciarse a menos que la página se recargue. Según sus necesidades y su caso de uso, será necesario ajustar este plazo 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 para terminar, se muestra el Reproductor (aquí una simple etiqueta html5, pero se puede agregar cualquier capa adicional después, ya que el token se pasa 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>";
Esta guía detalla la configuración de un Reproductor para su Streaming Radio Infomaniak.
Requisitos previos
Configurar las opciones del Player Infomaniak
Una vez que haya vinculado su flujo a su Player y su Player esté creado:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto correspondiente.
- Haga clic en Mis players en el menú lateral izquierdo.
- Haga clic en el nombre del Player que desea configurar (o cree un nuevo reproductor):
1. Pestaña Aparencia
Aquí es donde puede elegir el tamaño del reproductor (grande, mediano, mini o reproductor multi radios) y su porcentaje de visualización.
Puede personalizar los colores del fondo, los botones y el texto:
Un botón de alternancia (toggle switch) permite activar o desactivar la visualización de las canciones transmitidas, con o sin sus horas de transmisión:
- Tome conocimiento de los detalles al respecto al final de esta guía.
El reproductor puede mostrar:
- una ilustración que representa la carátula del álbum, o una imagen de sustitución si no está disponible,
- una imagen fija (3 Mo max.),
- el logotipo de su radio, para personalizar aquí:
- una visualización del espectro de audio (Espectrograma / Espectro).
2. Pestaña Difusión
Aquí es donde puede vincular sus flujos de radio (HLS o no) a su Reproductor en curso de configuración.
Consulte este otro guía sobre las opciones disponibles para la gestión de la transmisión en directo:
3. Pestaña Miniaturas
Aquí es donde puedes cargar las imágenes visibles cuando el flujo está cargando o no está disponible/restringido.
4. Pestaña Información del reproductor
Aquí es donde puede nombrar su Player y decidir mostrar u ocultar:
- el título y el artista en lugar del nombre de la radio,
- el número de oyentes,
- el logo Infomaniak.
5. Pestaña Opciones de compartir
Un botón de alternancia (toggle switch) permite activar o desactivar ciertos servicios como Facebook. Una vez activado, un botón para compartir en estos servicios será visible en tu reproductor:
Detalles del historial de transmisión (pestaña #1)
El historial de transmisión permite volver a escuchar las músicas transmitidas (entre 1 y 40) si su flujo es de tipo HLS únicamente (entonces podrá definir un búfer de 25 segundos a 2 horas):
La funcionalidad de retroceso y reescucha no está activada por defecto: sigue siendo opcional para respetar las restricciones de ciertos países o radios. Una vez activada, el administrador de la radio puede elegir qué flujos estarán disponibles para la difusión (consulte la pestaña #2 arriba), mientras que el oyente puede seleccionar la calidad de escucha en el Player:
Posición e integración del historial de difusión
La lista es consultable a elección:
- directamente debajo del Player,
- en el reproductor,
- o desplazable en la integración de su sitio web…
De hecho, es posible mostrar el historial en una segunda iframe, distinta de la del Player principal. Ejemplo de URL para el Player:https://player-radio.infomaniak.com/2/prod/super/7cbaa24a-3510-47a4-b41e-b99218bfd507
Y para el historial desplazado:https://player-radio.infomaniak.com/2/prod/history
Las dos iframes deben integrarse en la misma página y comunicarse entre sí para actualizar el historial o reproducir una canción previamente emitida.
Un segundo modo de integración permite mostrar un historial autónomo, sin iframe principal. Basta con agregar el ID del Player a la URL:https://player-radio.infomaniak.com/2/prod/history/7cbaa24a-3510-47a4-b41e-b99218bfd507
Este modo es adecuado, por ejemplo, para los usuarios de otro Player que deseen mostrar únicamente el historial de las canciones.
Esta guía explica cómo transferir los flujos de audio presentes en una de tus radios Streaming de Infomaniak a otra de tus radios, presente en la misma Organización.
Consulte este otra guía para transferir todos los flujos de un Streaming Radio a un nuevo propietario.
Transferir los flujos de audio
Para ello:
- Haga clic aquí para acceder a la gestión de su producto en el Manager Infomaniak (¿Necesita ayuda?).
- Haga clic directamente en el nombre asignado al producto en cuestión.
- Haga clic en el menú de acción ⋮ ubicado a la derecha del elemento correspondiente.
- Seleccione Transferir:
- Busque y valide el nombre de la otra radio que posees en la misma Organización.
- Confirme el traspaso:
Actualice las páginas del Manager si es necesario para actualizar la información mostrada.