Wissensdatenbank

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

Einen Audiostream mit einem eindeutigen Schlüssel (Token) sichern

Aktualisierung 24.03.2026

Dieser Leitfaden erklärt, wie Sie die Kontrolle über Ihre Streaming-Radio-MP3/AAC- oder HLS-Streams durch Aktivierung des Schutzes durch einzigartigen Schlüssel (Token) behalten können, um beispielsweise zu entscheiden, ob ein Hörer Ihren Radiosender hören darf oder nicht.

 

Vorwort

  • Bei jeder Verbindung führen Sie eine Anfrage an die Infomaniak-API durch, die Ihnen im Gegenzug ein einzigartiges Token mit einer begrenzten und einstellbaren Lebensdauer zurücksendet.
  • 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 (ebenso wie die Geolokalisierung übrigens).
  • Die Aktivierung der Einschränkung erfordert eine Änderung der Stream-Konfiguration, die einige Minuten in Anspruch nehmen kann, um auf den Servern repliziert zu werden.

 

Audio-Stream durch einzigartigen Schlüssel schützen

Dazu müssen Sie lediglich zu den Einschränkungsparametern gehen und den Schutz durch Token für den Stream, den Sie sichern möchten, aktivieren:

  1. Klicken Sie hier, um auf die Verwaltung Ihres Produkts im Infomaniak Manager zuzugreifen (Hilfe benötigt?).
  2. Klicken Sie direkt auf den Namen, der dem betreffenden Produkt zugewiesen wurde:
  3. Klicken Sie:
    1. entweder auf den Namen des Radiosenders:
    2. oder auf Einschränkungen im linken Seitenmenü, um Einschränkungen für das gesamte Produkt anzuwenden:
  4. Wenn Sie die obige Option a auswählen, klicken Sie anschließend auf Einschränkungen im linken Seitenmenü.
  5. Wählen Sie HLS aus, falls erforderlich.
  6. Klicken Sie auf das Aktionsmenü , das sich rechts neben dem betreffenden Element befindet.
  7. Klicken Sie auf Einschränkung durch Token:

     

Aktivieren Sie dann den Schutz.

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

 

Radio-API-Token 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, nehmen Sie sich diesen anderen Leitfaden zur Kenntnis.

Der Umfang ist radio und die Laufzeit unbegrenzt, um zu vermeiden, dass ein Code regelmäßig neu generiert werden muss. Sobald das Token generiert ist, kopieren Sie es, um es in das unten stehende Beispiel einzufügen.

 

Beispiel für die Verwendung in der Programmiersprache PHP

Für MP3/AAC oder HLS kann der Code im Wesentlichen derselbe sein, nur die im POST aufgerufene URL ändert sich in ihrer Form.

Fügen Sie unten das generierte Token anstelle des angegebenen 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 werden das Token erstellen, die URL zur Token-Erstellung setzt sich wie folgt zusammen:

  • Für einen MP3/AAC-Stream
POST https://api.infomaniak.com/1/radios/acl/streams/mountpoint.mp3/token

Beispiel zum Schutz von https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac der Pfad 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 Schutz von https://myradiostream.radiohls.infomaniak.com/myradiostream/manifest.m3u8 der Pfad wird sein: https://api.infomaniak.com/1/radios/acl/hls_streams/myradiostream/token

Beispiel im Fall von MP3/AAC, denken Sie daran, anzupassen:

$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 ist wichtig zu beachten, dass, wenn dieser Code zum Zeitpunkt des Ladens der Seite generiert wird, der Hörer "window" Sekunden Zeit hat, um die Wiedergabe des Streams zu starten. Nach Ablauf dieser Frist 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 wird es notwendig sein, diese Frist bestmöglich anzupassen.

Sie müssen auch unten die Abspiel-URL Ihres Streams anstelle der angegebenen ersetzen, wobei der Parameter $token am Ende beibehalten wird. Und schließlich wird der Player angezeigt (hier ein einfaches html5-Tag, aber man kann natürlich jede beliebige Schicht hinzufügen, wobei das Token in den Parametern $_GET der URL übergeben wird).

$streamUrl = "https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac?$token";
echo "<audio controls=""><source src="$streamUrl"></audio>";

War diese FAQ nützlich?