1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Ein MP3/AAC- oder HLS-Stream mit einem einzelnen Schlüssel sichern
Dieser Leitfaden erklärt, wie Sie die Kontrolle über Ihre Streaming-Radio-MP3/AAC- oder HLS-Streams aufrechterhalten können, um beispielsweise zu entscheiden, ob ein Hörer Ihr Radio hören kann, indem Sie den Schutz durch einen einzigartigen Schlüssel (Token) aktivieren.
Ein Audio-Stream mit einem einzigartigen Schlüssel schützen
Das Prinzip ist einfach: Bei jeder Verbindung senden Sie eine Anfrage an die Infomaniak-API, die Ihnen ein einzigartiges Token mit einer begrenzten und konfigurierbaren Lebensdauer zurückgibt. Dieses Token erlaubt es jedem, der es besitzt, den Stream während dieser Zeit zu konsumieren.
Sie können einen MP3/AAC- oder HLS-Stream unabhängig voneinander schützen (das gleiche gilt für die Geolokalisierung).
Um dies zu tun, gehen Sie einfach zu den Einschränkungseinstellungen und aktivieren Sie den Token-Schutz für den Stream, den Sie sichern möchten:
- melden Sie sich beim Infomaniak Manager (manager.infomaniak.com) mit einem Webbrowser wie Brave oder Edge an
- klicken Sie auf das Symbol in der oberen rechten Ecke der Benutzeroberfläche (oder navigieren Sie über das linke Seitenmenü, z. B.)
- wählen Sie Radio Streaming (Streaming-Universum)
- klicken Sie auf den Namen des relevanten Objekts in der angezeigten Tabelle
- klicken Sie auf Einschränkungen im linken Seitenmenü
- wählen Sie HLS, falls erforderlich
- klicken Sie auf das Aktionsmenü ⋮ rechts neben dem betreffenden Stream in der angezeigten Tabelle
- klicken Sie auf Token-Einschränkung
Aktivieren Sie dann den Schutz.
Hinweis: Sobald Sie diese Option aktivieren, wird der Zugriff auf den Stream sofort für neue Verbindungen blockiert. Passen Sie Ihre Player an, um die Einschränkung zu berücksichtigen, wie im folgenden Beispiel gezeigt:
Ein Radio-API-Token erstellen
Um auf die Radio-API zuzugreifen, müssen Sie sich zunächst mit einem Anwendungstoken authentifizieren. Dieser Schritt muss nur einmal durchgeführt werden. Um dieses Anwendungstoken zu erstellen, lesen Sie diesen Leitfaden.
Der Umfang ist radio und die Lebensdauer ist unbegrenzt, um zu vermeiden, dass ein Code regelmäßig regeneriert werden muss. Sobald das Token generiert wurde, kopieren Sie es, um es im folgenden Beispiel einzufügen.
Beispiel für die Verwendung in PHP
Für MP3/AAC oder HLS kann der Code im Wesentlichen gleich sein; nur die aufgerufene URL in POST ändert sich in ihrer Form.
Fügen Sie das generierte Token hier anstelle des angegebenen ein:
if (!defined('API_TOKEN')) {
define('API_TOKEN', 'AYF5lSh3c7Xy5974Fs12RTkTThujT-L9R4Xk2ZfGyP6sV7QqJ1oC3jD8nFtKzIxUeMw5oNzR6');
}
/**
* Allgemeine Funktion zur Ausführung von cURL-Anfragen
*
* @param string $method HTTP-Methode (GET, POST, PUT usw.)
* @param string $url URL der zu abfragenden API
* @param array $headers Liste der HTTP-Header (die Autorisierung muss hier mit ['Authorization: Bearer ']
* @param array $payload Ein Array, das die Daten zum Erstellen eines Tokens enthält
* @return mixed
*/
function request(string $method, string $url, array $headers = [], array $payload = []): mixed{
// Optionen-Array vorbereiten
$opts = [
CURLOPT_HTTPHEADER => $headers,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => strtoupper($method),
];
// Payload hinzufügen, wenn 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'] ?? 'ein Fehler ist aufgetreten');
}
return $data['data'];
}
Wir werden das Token erstellen; die URL zum Erstellen des Tokens gliedert sich wie folgt:
- Für einen MP3/AAC-Stream
POST https://api.infomaniak.com/1/radios/acl/streams/mountpoint.mp3/token
Beispiel zum Schützen von https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac, die Route wird sein: https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token
- Für einen HLS-Stream
POST https://api.infomaniak.com/1/radios/acl/hls_streams/<stream>/token
Beispiel zum Schützen von https://myradiostream.radiohls.infomaniak.com/myradiostream/manifest.m3u8, die Route wird sein: https://api.infomaniak.com/1/radios/acl/hls_streams/myradiostream/token
Beispiel im Fall von MP3/AAC, denken Sie daran, es anzupassen:
$token = request(
'POST',
'https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token',
// Autorisierungsheader
[
'Authorization: Bearer ' . API_TOKEN,
'Content-Type: application/json',
],
/**
* Payload zum Erstellen des Tokens, Sie können die folgenden Werte übergeben
* window | 300 | optional | Gültigkeitsdauer des Tokens (Standard: 5 Minuten)
*/
[
'window' => 3600, // 1h Gültigkeit
]
);
Es ist wichtig zu beachten, dass wenn dieser Code beim Laden der Seite generiert wird, der Hörer "window" Sekunden Zeit hat, um die Wiedergabe des Streams zu starten. Nach diesem Zeitraum läuft das Token ab und der Stream kann nicht mehr gestartet werden, es sei denn, die Seite wird neu geladen. Je nach Ihren Bedürfnissen und Anwendungsfällen müssen Sie diese Frist bestmöglich anpassen.
Sie müssen auch die URL Ihres Streams unten anstelle der angegebenen URL ersetzen, während Sie den Parameter $token
am Ende beibehalten. Schließlich zeigen wir den Player an (hier ein einfaches HTML5-Tag, aber Sie können natürlich jede Art von Overlay hinzufügen, wobei das Token in den $_GET
-Parametern der URL übergeben wird).
$streamUrl = "https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac?$token";
echo "<audio controls=""><source src="$streamUrl"></audio>";