1000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!
Proteggere uno streaming MP3/AAC o HLS
Questa guida spiega come mantenere il controllo sui tuoi flussi di Streaming radio MP3/AAC o HLS, ad esempio per decidere se un ascoltatore può ascoltare la tua radio, attivando la protezione tramite una chiave univoca (token).
Proteggere un flusso audio con una chiave univoca
Il principio è semplice: ad ogni connessione, effettuerai una richiesta all'API di Infomaniak che ti restituirà un token univoco con una durata limitata e configurabile. Questo token autorizzerà chiunque lo possieda a consumare il flusso durante questo periodo.
Puoi proteggere un flusso MP3/AAC o HLS indipendentemente l'uno dall'altro (lo stesso vale per la geolocalizzazione).
Per farlo, basta andare nelle impostazioni delle restrizioni e attivare la protezione con un token sul flusso che desideri proteggere:
- Accedi al Manager di Infomaniak (manager.infomaniak.com) da un browser web come Brave o Edge
- Fai clic sull'icona nell'angolo in alto a destra dell'interfaccia (o naviga attraverso il menu laterale sinistro, ad esempio)
- Scegli Streaming radio (universo Streaming)
- Fai clic sul nome dell'oggetto nella tabella visualizzata
- Fai clic su Restrizioni nel menu laterale sinistro
- Scegli HLS se necessario
- Fai clic sul menu d'azione â‹® a destra del flusso in questione nella tabella visualizzata
- Fai clic su Restrizione per token
Poi attiva la protezione.
Attenzione: al momento dell'attivazione di questa opzione, l'accesso al flusso sarĂ bloccato istantaneamente per le nuove connessioni. Adatta i tuoi lettori per tener conto della restrizione, come illustrato nell'esempio seguente:
Creare un token API Radio
Per accedere all'API Radio, devi prima autenticarti con un token di applicazione. Questo passaggio va eseguito solo una volta. Per creare questo token di applicazione, leggi questa guida.Lo scope è radio e la durata di vita è illimitata per evitare di dover rigenerare un codice regolarmente. Una volta generato il token, copialo per incollarlo nell'esempio seguente.
Esempio di utilizzo in PHP
Per MP3/AAC o HLS, il codice può essere sostanzialmente lo stesso, cambia solo l'URL chiamato con POST nella sua forma.
/**
* Funzione generica per eseguire richieste cURL
*
* @param string $method Metodo HTTP (GET, POST, PUT, ecc.)
* @param string $url URL dell'API da richiedere
* @param array $headers Elenco degli header HTTP (l'autorizzazione deve essere passata qui con un ['Authorization: Bearer
* @param array $payload Un array che contiene dati per creare un token
* @return mixed
*/
- For an MP3 / AAC stream
- For an HLS stream
POST https://api.infomaniak.com/1/radios/acl/streams/<b>mountpoint.mp3</b>/token
Example to protect https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac
the route will be: https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token
POST https://api.infomaniak.com/1/radios/acl/hls_streams/<stream>/token
Example to protect https://myradiostream.radiohls.infomaniak.com/myradiostream/manifest.m3u8
the route will be: https://api.infomaniak.com/1/radios/acl/hls_streams/myradiostream/token
Example in the case of MP3 / AAC, make sure to adjust
'POST',
'https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token',
// authorization header
[
'Authorization: Bearer ' . API_TOKEN,
'Content-Type: application/json',
],
/**
* payload to create the token, you can pass the following values
* window | 300 | optional | token validity duration (default: 5 minutes)
*/
[
'window' => 3600, // 1h validity
]
It is important to note that if this code is generated at the time of page loading, the listener will have "window" seconds to start playing the stream. After this time, the token will expire, and the stream will no longer be able to be played unless the page is reloaded. Depending on your needs and use case, it will be necessary to adjust this delay in the best possible way.
You will also need to replace below the playback URL of your stream instead of the one indicated while keeping the $token
parameter at the end. And finally, we display the player (here a simple html5 tag, but you can of course add any overlay afterwards, the token being passed in the $_GET
parameters of the URL.
$streamUrl = "https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac?$token";
echo "<audio controls=""><source src="$streamUrl"></audio>";