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:
-
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. -
Verifique se a pasta
subassetsexiste 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\ -
Carregue arquivos de áudio como
audio1.mp3e arquivos de legenda comoenglish.vttna pastasubassets.Exemplo:
Legenda:
/content/dam/test/sample.mp4/subassets/chinese.vttÁudio:
/content/dam/test/sample.mp4/subassets/audio1.mp3Você pode usar a biblioteca
aem-uploadpara fazer upload: https://github.com/adobe/aem-upload. -
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 -
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 -
Recupere metadados usando solicitações GET para o ponto de extremidade
.audiocaptionsmetadata.jsonpara 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"
- Para legendas:
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.