Adicionar programaticamente legendas em VTT no AEMaaCS Dynamic Media

O Adobe Experience Manager as a Cloud Service (AEMaaCS) não oferece uma API pública para fazer upload programático de arquivos de legenda em VTT para o Dynamic Media. Para resolver isso, carregue o ativo de vídeo, crie uma pasta de subativos, carregue arquivos VTT e poste metadados usando pontos de extremidade internos como S7AudioCaptionsMetadataServlet.

Descrição description

Ambiente

Adobe Experience Manager as a Cloud Service (AEMaaCS) - Assets, Dynamic Media

Problema/Sintomas

O AEMaaCS não fornece uma API pública para fazer upload e associar de forma programática arquivos de legenda em VTT com ativos de vídeo no Dynamic Media. As legendas devem ser carregadas manualmente por meio da interface do usuário, o que impede a automação do gerenciamento de legendas para ativos de vídeo.

Resolução resolution

As etapas a seguir fornecem uma visão geral de como fazer upload e associar de forma programática arquivos de legenda em VTT com ativos de vídeo usando métodos de implementação interna:

  1. Faça upload do arquivo de vídeo principal no AEMaaCS DAM (Digital Asset Management, Gerenciamento de ativos digitais) e confirme se ele é processado com sucesso. Exemplo de caminho: /content/dam/test/sample.mp4.

  2. Verifique se a pasta subassets existe no ativo de vídeo enviando uma solicitação GET para /content/dam/test/sample.mp4/subassets.json.

    Se retornar um erro 404, crie a pasta usando uma solicitação POST com jcr:primaryType=nt:folder.

    Exemplo:

    code language-none
    curl -u admin:admin \
    -F "jcr:primaryType=nt:folder" \
    http://localhost:4502/content/dam/test/sample.mp4/subassets\
    
  3. Carregue arquivos de áudio como audio1.mp3 e arquivos de legenda como english.vtt na pasta subassets.

    Exemplo:

    Legenda: /content/dam/test/sample.mp4/subassets/chinese.vtt

    Áudio: /content/dam/test/sample.mp4/subassets/audio1.mp3

    Você pode usar a biblioteca aem-upload para fazer upload: https://github.com/adobe/aem-upload.

  4. POSTAR metadados para cada arquivo de áudio usando o S7AudioCaptionsMetadataServlet:

    code language-none
    curl -u user:password \
      -H "Content-Type: application/json" \
      -d '{
        "payload": [ {
          "filename": "chinese.vtt",
          "language": "Chinese",
          "languageCode": "zho",
          "role": "subtitle",
          "label": "ch-subtitle",
          "isDefault": false
        }]
      }' \
      http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json
    
  5. Metadados de POST para cada arquivo de legenda:

    code language-none
    curl -u user:password \
      -H "Content-Type: application/json" \
      -d '{
        "payload": [ {
          "filename": "chinese.vtt",
          "language": "Chinese",
          "languageCode": "zho",
          "role": "subtitle",
          "label": "ch-subtitle",
          "isDefault": false
        }]
      }' \
      http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json
    
  6. Recupere metadados usando solicitações GET para o ponto de extremidade .audiocaptionsmetadata.json para confirmar se os arquivos de legenda e áudio estão associados corretamente.

    Exemplos:

    • Para legendas: curl -u user:password "http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json?type=vtt&offset=0"
    • Para áudio: curl -u user:password "http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json?type=audio&offset=0"

Observações adicionais

  • Essa abordagem depende da inspeção das solicitações HTTP feitas do lado do cliente para o AEM usando ferramentas de desenvolvedor do navegador, como a guia Rede do Chrome.
  • Esta é uma implementação interna e não é uma API pública compatível.
  • Este método destina-se à exploração e ao teste com base em casos de uso e requisitos específicos.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f