Todos os produtos
Search
Central de documentação

ApsaraVideo Live:URLs de ingestão e streaming assinadas

Última atualização: Jun 30, 2026

Para evitar downloads maliciosos e o roubo de recursos do site, configure uma lista de bloqueios ou uma lista de permissões de Referer para identificar e filtrar visitantes. Use também URLs de ingestão e streaming assinadas para proteger melhor os recursos no servidor de origem. Este tópico descreve o funcionamento do recurso de assinatura de URL, como configurá-lo e as notas de uso.

Componentes da URL assinada

As URLs assinadas são adequadas para PCs, dispositivos móveis e ferramentas de ingestão e reprodução de terceiros. Elas consistem em uma URL de ingestão ou uma URL de streaming + um token de acesso. Exemplo:

rtmp://push.aliyundoc.com/app/stream?auth_key=1740562218-0-0-183e22e*********

O parâmetro auth_key é o Access Token.

Estrutura de um token de acesso

timestamp-rand-uid-md5hash
  • timestamp: timestamp UNIX, expresso em segundos. O tempo final de expiração resulta da soma desse valor ao período de validade da assinatura de URL do domínio.

    Ao usar o gerador de URLs no console do ApsaraVideo Live para gerar uma URL assinada, o timestamp corresponde à hora atual. Nesse caso, aplica-se a seguinte fórmula: Tempo de expiração = Hora atual + Período de validade.

    Ao construir uma URL assinada com as regras de concatenação, especifique o timestamp. Por exemplo, se definir o timestamp como a hora atual mais 3.600 segundos, a fórmula aplicada será: Tempo de expiração = Hora atual + 3.600 segundos + Período de validade. Se definir o timestamp como a hora atual, a fórmula será: Tempo de expiração = Hora atual + Período de validade.

  • rand: número aleatório, geralmente 0.

    Para garantir que cada URL gerada seja única, use o formato UUID para o número aleatório. O UUID não pode conter hifens (-). Exemplo: 477b3bbc253f467b8def6711128c7****.

  • uid: parâmetro adicional, não utilizado atualmente, geralmente 0.

  • md5hash: string de verificação calculada com o algoritmo MD5. Consiste em uma string de 32 caracteres composta por dígitos (0-9) e letras minúsculas do alfabeto inglês (a-z).

    Conteúdo criptografado

    sstring = "URI-timestamp-rand-uid-PrivateKey" 
    md5hash = md5sum(sstring)

    Por exemplo, se a URL de ingestão for rtmp://push.aliyundoc.com/app/stream, a string para criptografia será /app/stream-timestamp-rand-uid-Chave de autenticação do Domínio.

Como usar

Para utilizar URLs assinadas, ative o recurso de assinatura de URL para o seu nome de domínio. A assinatura de URL é ativada por padrão ao adicionar um nome de domínio pela primeira vez. Para obter mais informações, consulte Configurar assinatura de URL. Gere uma URL assinada no console do ApsaraVideo Live ou pelas regras de concatenação. Para mais detalhes, consulte Gerar URLs de ingestão e streaming.

Como funciona

Após a ativação da assinatura de URL, o servidor verifica uma solicitação executando as seguintes operações:

  1. O servidor verifica se o timestamp na solicitação é anterior à hora atual.

    • Se o timestamp for anterior à hora atual, o servidor considera a URL assinada expirada e retorna o código de status HTTP 403.

    • Caso o timestamp seja posterior à hora atual, o servidor constrói uma string usando a seguinte fórmula sstring.

  2. O servidor usa o algoritmo MD5 para calcular o valor de hash da string e compara esse valor com aquele contido na solicitação.

    • Se os dois valores forem iguais, a autenticação terá êxito e o servidor retornará o stream ao vivo.

    • Se os valores forem diferentes, a autenticação falhará e o servidor retornará o código de status HTTP 403.

O HashValue é derivado da seguinte string:

sstring = "URI-timestamp-rand-uid-PrivateKey"
HashValue = md5sum(sstring)

Exemplo

  • Premissas:

    1. Uma solicitação é feita para o objeto rtmp://demo.aliyundoc.com/video/standard**** usando req_auth.

    2. A chave criptográfica foi definida como aliyunliveexp1234, correspondente à chave primária ou secundária configurada no console do ApsaraVideo Live.

    3. A URL assinada foi gerada às 16:49:57 de 28 de maio de 2021 (UTC+8).

    4. No console, o período de validade da URL assinada está definido como 40 minutos.

    5. Os campos rand e uid foram definidos como 0.

  • Resultado:

    1. O timestamp UNIX calculado da URL assinada é 1622194197, correspondente às 17:29:57 de 28 de maio de 2021 (UTC+8).

    2. O servidor constrói uma string de assinatura usada para calcular o valor de hash.

      /video/standard-1622194197-0-0-aliyunliveexp1234

    3. O servidor calcula o valor de hash com base na string de assinatura.

      HashValue = md5sum("/video/standard-1622194197-0-0-aliyunliveexp1234") = 5552ff52b5e4e20387c6dc18afce****

    4. A URL da solicitação é rtmp://demo.aliyundoc.com/video/standard****?auth_key=1622194197-0-0-5552ff52b5e4e20387c6dc18afce****

      Nota

      O campo auth_key indica o token de acesso incluído na URL assinada.

    5. O HashValue calculado corresponde ao valor md5hash = 5552ff52b5e4e20387c6dc18afce**** presente na solicitação do usuário. A autenticação tem êxito.

Notas de uso

  • A assinatura de URL vem ativada por padrão. Recomendamos manter esse recurso ativo para evitar a pirataria do seu conteúdo. Caso deseje desativar a assinatura de URL, certifique-se de compreender os riscos de uso não autorizado dos seus recursos e concorde com o Aviso Legal para Desativação da Assinatura de URL na página URL Signing no console do ApsaraVideo Live.

  • Defina manualmente o campo auth_key. O ApsaraVideo Live não fornece nenhuma operação de API para calcular o valor desse campo.

  • Após ativar a assinatura de URL, adicione o campo auth_key às URLs de ingestão e streaming. Caso contrário, os streams ao vivo não poderão ser reproduzidos. Não é possível assinar apenas a URL de ingestão ou apenas a de streaming; ambas devem ser assinadas.

  • As URLs assinadas permanecem válidas até o timestamp de expiração. Acesse uma URL assinada a qualquer momento antes que ela expire. O ApsaraVideo Live não oferece suporte a URLs assinadas de uso único.

  • O valor do campo auth_key corresponde ao valor MD5 da URI sem os campos queryString. Para mais informações, consulte a seção anterior sobre a definição de parâmetros de assinatura de URL. As URIs tanto das URLs de ingestão quanto das de streaming seguem o formato AppName/StreamName. Se a URL de ingestão não for confidencial, recomenda-se definir um timestamp de expiração o mais próximo possível do momento atual para evitar acessos maliciosos à URL de streaming.

  • Para URLs de ingestão e streaming nos formatos Real-Time Messaging Protocol (RTMP), FLV e Real-Time Streaming (RTS), as solicitações são autenticadas somente no início da ingestão ou do streaming. Processos já em andamento não são interrompidos mesmo que a URL assinada expire durante a transmissão.

  • No caso de URLs de streaming no formato M3U8, a autenticação ocorre no início e também durante a reprodução. Streams em andamento serão interrompidos se a URL assinada expirar durante o processo.

  • Para controlar dinamicamente o período de validade das URLs assinadas, utilize o SDK relevante para especificar os parâmetros AppName e StreamName. Para obter mais informações, consulte Código de exemplo para assinatura de URL.