Kennisbank
1.000 veelgestelde vragen, 500 tutorials en uitlegvideo's. Hier vind je alleen maar oplossingen!
Een audiostroom beveiligen met een unieke sleutel (token)
Deze handleiding legt uit hoe u de controle kunt behouden over uw MP3/AAC- of HLS-streaming radiostreams door de bescherming met een unieke sleutel (token) in te schakelen, zodat u bijvoorbeeld kunt bepalen of een luisteraar uw radio mag beluisteren of niet.
Inleiding
- Bij elke verbinding wordt een verzoek naar de Infomaniak-API gestuurd, waarop een unieke token met een beperkte en configureerbare levensduur wordt geretourneerd.
- Deze token geeft iedereen die er toegang toe heeft, de mogelijkheid om de stream gedurende deze periode te gebruiken.
- U kunt een MP3/AAC- of HLS-stream afzonderlijk beveiligen (hetzelfde geldt overigens voor geolocatie).
- Het activeren van de beperking vereist een wijziging van de configuratie van de stream, waarvoor enkele minuten nodig kunnen zijn om deze op de servers te repliceren.
Een audiostream beveiligen met een unieke sleutel
Ga daarvoor naar de instellingen voor beperkingen en activeer de beveiliging met een token voor de stream die u wilt beveiligen:
- Klik hier om naar het beheer van uw product in de Infomaniak Manager te gaan (hulp nodig?).
- Klik rechtstreeks op de naam die aan het betreffende product is toegekend:

- Klik op:
- of op de naam van de radiozender:

- of op Beperkingen in het linkermenu om beperkingen op het hele product toe te passen:

- of op de naam van de radiozender:
- Nadat u
ahierboven heeft geselecteerd, klikt u vervolgens op Beperkingen in het linkermenu. - Selecteer HLS indien nodig.
- Klik op het actiemenu ⋮ rechts van het betreffende item.
- Klik op Beperking per token:

Activeer vervolgens de beveiliging.
Adaptez vos Players pour prendre en compte la restriction, comme illustré dans l'exemple ci-dessous :
Een API-token voor Radio aanmaken
Om toegang te krijgen tot de Radio API, moet u zich eerst authenticeren met een applicatietoken. Deze stap hoeft slechts één keer te worden uitgevoerd. Om dit applicatietoken aan te maken, raadpleeg deze andere handleiding.

De reikwijdte is radio en de levensduur is onbeperkt, zodat u niet regelmatig een nieuwe code hoeft te genereren. Nadat de token is gegenereerd, kopieert u deze en plakt u deze in het onderstaande voorbeeld.
Voorbeeld van gebruik in PHP
Voor MP3/AAC of HLS kan de code vrijwel hetzelfde zijn; alleen de URL die in de POST-aanvraag wordt gebruikt, verschilt in zijn formaat.
Plak hieronder de gegenereerde token in plaats van de aangegeven token:
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'];
}
We gaan de token aanmaken. De URL voor het aanmaken van de token ziet er als volgt uit:
- Voor een MP3/AAC-stream
POST {{URL_11}}Voorbeeld: om https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac te beschermen, is de route: https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token
- Voor een HLS-stream
POST {{URL_14}}Voorbeeld: om https://myradiostream.radiohls.infomaniak.com/myradiostream/manifest.m3u8 te beschermen, is de route: https://api.infomaniak.com/1/radios/acl/hls_streams/myradiostream/token
Voorbeeld: in het geval van MP3/AAC, vergeet niet om de instellingen aan te passen:
$token = request(
'POST',
'{{URL_17}}',
// 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
]
);
Het is belangrijk om te onthouden dat als deze code wordt gegenereerd wanneer de pagina wordt geladen, de gebruiker window seconden de tijd heeft om de stream te starten. Na deze tijd verloopt het token en kan de stream niet meer worden gestart, tenzij de pagina opnieuw wordt geladen. Afhankelijk van uw behoeften en het specifieke gebruik, moet u deze tijd zo goed mogelijk aanpassen.
U moet ook de URL voor het afspelen van uw stream hieronder vervangen door de juiste URL, waarbij u de parameter $token aan het einde behoudt. Ten slotte wordt de speler weergegeven (hier een eenvoudige HTML5-tag, maar u kunt uiteraard elke gewenste laag toevoegen, waarbij het token wordt doorgegeven in de parameters $_GET van de URL).
$streamUrl = "{{URL_18}}";
echo "<audio controls=""><source src="$streamUrl"></audio>";Link naar deze veelgestelde vragen: https://faq.infomaniak.com/2792
Is deze veelgestelde vragenlijst nuttig geweest?