Añadir subtítulos VTT en Dynamic Media de AEMaaCS mediante programación

Adobe Experience Manager as a Cloud Service (AEMaaCS) no ofrece una API pública para cargar mediante programación archivos de subtítulos VTT en Dynamic Media. Para resolver esto, cargue el recurso de vídeo, cree una carpeta de subrecursos, cargue archivos VTT y publique metadatos mediante extremos internos como S7AudioCaptionsMetadataServlet.

Descripción description

Entorno

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

Problema/Síntomas

AEMaaCS no proporciona una API pública para cargar y asociar mediante programación archivos de subtítulos VTT con recursos de vídeo en Dynamic Media. Los subtítulos deben cargarse manualmente a través de la interfaz de usuario, lo que evita la automatización de la administración de subtítulos para los recursos de vídeo.

Resolución resolution

Los siguientes pasos proporcionan información general sobre cómo cargar mediante programación y asociar archivos de subtítulos VTT con recursos de vídeo mediante métodos de implementación interna:

  1. Cargue el archivo de vídeo principal en AEMaaCS DAM (Digital Asset Management) y confirme que se procesa correctamente. Ruta de ejemplo: /content/dam/test/sample.mp4.

  2. Compruebe si la carpeta subassets existe en el recurso de vídeo enviando una solicitud de GET a /content/dam/test/sample.mp4/subassets.json.

    Si devuelve un error 404, cree la carpeta con una petición POST con jcr:primaryType=nt:folder.

    Por ejemplo:

    code language-none
    curl -u admin:admin \
    -F "jcr:primaryType=nt:folder" \
    http://localhost:4502/content/dam/test/sample.mp4/subassets\
    
  3. Cargue archivos de audio como audio1.mp3 y archivos de subtítulos como english.vtt en la carpeta subassets.

    Por ejemplo:

    Rótulo: /content/dam/test/sample.mp4/subassets/chinese.vtt

    Audio: /content/dam/test/sample.mp4/subassets/audio1.mp3

    Puede usar la biblioteca aem-upload para cargar: https://github.com/adobe/aem-upload.

  4. PUBLICAR metadatos de cada archivo de audio usando 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. Metadatos de POST para cada archivo de subtítulos:

    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 metadatos mediante solicitudes de GET al extremo .audiocaptionsmetadata.json para confirmar que el pie de ilustración y los archivos de audio estén correctamente asociados.

    Ejemplos:

    • Para los subtítulos: curl -u user:password "http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json?type=vtt&offset=0"
    • Para el audio: curl -u user:password "http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json?type=audio&offset=0"

Notas adicionales

  • Este método depende de la inspección de las solicitudes HTTP realizadas desde el lado del cliente a AEM mediante herramientas para desarrolladores de navegadores como la pestaña Red de Chrome.
  • Esta es una implementación interna y no es una API pública compatible.
  • Este método está diseñado para la exploración y prueba en función de casos de uso y requisitos específicos.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f