Wissensdatenbank

1 000 FAQs, 500 Anleitungen und erläuternde Videos. Hier gibt es nur Lösungen!

Einen Audiostream durch einen eindeutigen Schlüssel (Token) sichern

Aktualisierung 31.08.2026

Diese Anleitung erklärt, wie Sie die Kontrolle über Ihre MP3/AAC- oder HLS-Streaming-Radiosender behalten, indem Sie den Schutz durch einen eindeutigen Schlüssel (Token) aktivieren, um beispielsweise zu bestimmen, ob ein Hörer Ihren Radiosender abspielen darf oder nicht.

 

Einleitung

  • Bei jeder Verbindung wird eine Anfrage an die Infomaniak-API gesendet, die im Gegenzug ein eindeutiges Token mit einer begrenzten und konfigurierbaren Gültigkeitsdauer zurückgibt.
  • Dieses Token ermöglicht es jedem, der es besitzt, den Stream während dieser Zeit zu nutzen.
  • Sie können einen MP3/AAC- oder HLS-Stream unabhängig voneinander schützen (dasselbe gilt übrigens für die Geolokalisierung).
  • Die Aktivierung der Beschränkung führt zu einer Änderung der Stream-Konfiguration, deren Übertragung auf die Server einige Minuten dauern kann.

 

Einen Audiostream durch einen eindeutigen Schlüssel schützen

Dazu gehen Sie einfach zu den Einschränkungseinstellungen und aktivieren Sie den Schutz durch ein Token für den Stream, den Sie sichern möchten:

  1. Klicken Sie hier, um die Verwaltung Ihres Produkts im Infomaniak Manager aufzurufen (Benötigen Sie Hilfe?).
  2. Klicken Sie direkt auf den Namen des betreffenden Produkts:
  3. Klicken Sie entweder auf den Namen des Radiosenders:
    oder auf Einschränkungen im linken Menü, um Einschränkungen für das gesamte Produkt anzuwenden:
  4. Wenn Sie oben a auswählen, klicken Sie anschließend im linken Menü auf Einschränkungen.
  5. Wählen Sie gegebenenfalls HLS aus.
  6. Klicken Sie auf das Aktionsmenü rechts neben dem betreffenden Element.
  7. Klicken Sie auf Beschränkung durch Token:

Aktivieren Sie anschließend den Schutz.

Achtung: Sobald Sie diese Option aktivieren, wird der Zugriff auf den Stream für neue Verbindungen sofort gesperrt.Passen Sie Ihre Player an, um die Einschränkung zu berücksichtigen, wie im folgenden Beispiel dargestellt:

 

Einen API-Token für Radio erstellen

Um auf die Radio-API zugreifen zu können, 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 bitte diese Anleitung.

Der Gültigkeitsbereich ist unbegrenzt, und die Lebensdauer ist unbegrenzt, um zu vermeiden, dass ein Code regelmäßig neu generiert werden muss. Nachdem das Token generiert wurde, kopieren Sie es und fügen Sie es in das folgende Beispiel ein.

 

Beispiel für die Verwendung in PHP

Für MP3/AAC oder HLS kann der Code im Wesentlichen gleich sein, lediglich die in der POST-Anfrage verwendete URL unterscheidet sich in ihrer Form.

Fügen Sie unten das generierte Token anstelle des angegebenen Tokens ein:

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'];
}

 

Wir erstellen nun das Token. Die URL zum Erstellen des Tokens ist wie folgt aufgebaut:

  • Für einen MP3-/AAC-Stream
POST {{URL_11}}

Beispiel: Um https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac zu schützen, lautet die Route: https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token

  • Für einen HLS-Stream
POST {{URL_14}}

Beispiel: Um https://myradiostream.radiohls.infomaniak.com/myradiostream/manifest.m3u8 zu schützen, lautet die Route: https://api.infomaniak.com/1/radios/acl/hls_streams/myradiostream/token

Beispiel: Im Falle von MP3/AAC sollten Sie Folgendes anpassen:

$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
    ]
);

 

Es ist wichtig zu beachten, dass, wenn dieser Code beim Laden der Seite generiert wird, der Listener „window“-Sekunden Zeit hat, um die Wiedergabe des Streams zu starten. Nach Ablauf dieser Zeit verfällt das Token, und der Stream kann nicht mehr gestartet werden, es sei denn, die Seite wird neu geladen. Je nach Ihren Anforderungen und Ihrem Anwendungsfall müssen Sie diesen Zeitraum optimal anpassen.

Darüber hinaus müssen Sie unten die URL für die Wiedergabe Ihres Streams anstelle der angegebenen URL einfügen, wobei der Parameter $token am Ende beibehalten wird. Abschließend wird der Player angezeigt (hier ein einfaches HTML5-Tag, aber natürlich kann man später jede beliebige Erweiterung hinzufügen, wobei das Token in den Parametern $_GET der URL übergeben wird).

$streamUrl = "{{URL_18}}";
echo "<audio controls=""><source src="$streamUrl"></audio>";

War diese FAQ nützlich?