Base de conhecimento

1000 perguntas frequentes, 500 tutoriais e vídeos explicativos. Aqui, você encontra apenas soluções!

Proteger um fluxo de áudio por meio de uma chave única (token)

Atualização 31/08/2026

Este guia explica como manter o controle sobre seus fluxos de rádio online MP3/AAC ou HLS, ativando a proteção por chave única (token), para decidir, por exemplo, se um ouvinte pode ou não ouvir sua rádio.

 

Introdução

  • A cada conexão, você fará uma solicitação à API Infomaniak, que retornará um token exclusivo com uma duração de vida limitada e configurável.
  • Este token autorizará qualquer pessoa que o possua a acessar o fluxo durante esse período.
  • Você pode proteger um fluxo MP3/AAC ou HLS independentemente um do outro (o mesmo vale para a geolocalização).
  • A ativação da restrição implica uma alteração na configuração do fluxo, o que pode levar alguns minutos para ser replicado nos servidores.

 

Proteger um fluxo de áudio com uma chave única

Para isso, basta ir para as configurações de restrições e ativar a proteção por token no fluxo que deseja proteger:

  1. Clique aqui para acessar o gerenciamento do seu produto no painel de controle Infomaniak (precisa de ajuda?).
  2. Clique diretamente no nome atribuído ao produto em questão:
  3. Clique em:
    1. no nome da rádio:
    2. ou em Restrições no menu lateral esquerdo para aplicar restrições a todo o produto:
  4. Ao selecionar a acima, clique em Restrições no menu lateral esquerdo.
  5. Se necessário, escolha HLS.
  6. Clique no menu de ação localizado à direita do elemento em questão.
  7. Clique em Restrição por token:

Em seguida, ative a proteção.

Atenção: ao ativar esta opção, o acesso ao fluxo será bloqueado instantaneamente para novas conexões.Adapte os seus reprodutores para que considerem a restrição, conforme ilustrado no exemplo abaixo:

 

Criar um token de API Radio

Para ter acesso à API Radio, você deve primeiro autenticar-se usando um token de aplicação. Esta etapa só precisa ser realizada uma vez. Para criar este token de aplicação, consulte este outro guia.

O escopo é radio e a duração é ilimitada para evitar a necessidade de regenerar um código regularmente. Depois de gerar o token, copie-o para colá-lo no exemplo abaixo.

 

Exemplo de utilização em linguagem PHP

Para MP3/AAC ou HLS, o código pode ser praticamente o mesmo, sendo apenas a URL chamada no POST que muda na sua forma.

Cole abaixo o token gerado no lugar daquele que está indicado:

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

 

Vamos criar o token. A URL para criar o token é estruturada da seguinte forma:

  • Para um fluxo MP3 / AAC
POST {{URL_11}}

Exemplo para proteger https://newradiotest.ice.infomaniak.ch/newradiotest-128.aac: a rota será: https://api.infomaniak.com/1/radios/acl/streams/newradiotest-128.aac/token

  • Para um fluxo HLS
POST {{URL_14}}

Exemplo para proteger https://myradiostream.radiohls.infomaniak.com/myradiostream/manifest.m3u8, o endereço será: https://api.infomaniak.com/1/radios/acl/hls_streams/myradiostream/token

Exemplo no caso de MP3/AAC, lembre-se de ajustar:

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

 

É importante notar que, se este código for gerado no momento do carregamento da página, o utilizador terá “window” segundos para iniciar a reprodução do fluxo. Após esse período, o token expirará e o fluxo não poderá ser iniciado, a menos que a página seja recarregada. Dependendo das suas necessidades e do seu caso de uso, será necessário ajustar este período da melhor forma possível.

Também será necessário substituir abaixo a URL de reprodução do seu fluxo, no lugar daquela indicada, mantendo o parâmetro $token no final. Por fim, exibimos o reprodutor (aqui, uma simples tag html5, mas podemos adicionar qualquer camada adicional, passando o token nos parâmetros $_GET da URL).

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

Esta seção de perguntas frequentes foi útil?