在AEMaaCS Dynamic Media中以编程方式添加VTT字幕

Adobe Experience Manager as a Cloud Service (AEMaaCS)不提供公共API以编程方式将VTT字幕文件上传到Dynamic Media。 要解决此问题,请上传视频资源、创建子资源文件夹、上传VTT文件以及使用内部端点(如S7AudioCaptionsMetadataServlet)发布元数据。

描述 description

环境

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

问题/症状

AEMaaCS不提供公共API以编程方式上传VTT字幕文件并将其与Dynamic Media中的视频资产关联。 必须通过UI手动上传字幕,这样可阻止自动执行视频资产的字幕管理。

解决方法 resolution

以下步骤概述了如何使用内部实施方法,以编程方式上传VTT字幕文件并将其与视频资产关联:

  1. 将主视频文件上传到AEMaaCS DAM(数字资产管理)并确认它已成功处理。 示例路径: /content/dam/test/sample.mp4

  2. 通过向/content/dam/test/sample.mp4/subassets.json发送GET请求,检查视频资源下是否存在subassets文件夹。

    如果返回404错误,请使用带jcr:primaryType=nt:folder的POST请求创建文件夹。

    示例:

    code language-none
    curl -u admin:admin \
    -F "jcr:primaryType=nt:folder" \
    http://localhost:4502/content/dam/test/sample.mp4/subassets\
    
  3. 将音频文件(如audio1.mp3)和字幕文件(如english.vtt)上载到subassets文件夹。

    示例:

    题注: /content/dam/test/sample.mp4/subassets/chinese.vtt

    音频: /content/dam/test/sample.mp4/subassets/audio1.mp3

    您可以使用aem-upload库上传:https://github.com/adobe/aem-upload

  4. 使用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. 每个描述文件的POST元数据:

    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. 使用GET请求将元数据检索到.audiocaptionsmetadata.json端点,以确认字幕和音频文件正确关联。

    示例:

    • 对于字幕: curl -u user:password "http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json?type=vtt&offset=0"
    • 对于音频: curl -u user:password "http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json?type=audio&offset=0"

其他说明

  • 此方法依赖于使用浏览器开发人员工具(如AEM的 网络 选项卡)检查从客户端向Chrome发出的HTTP请求。
  • 这是一个内部实施,而不是受支持的公共API。
  • 此方法旨在根据特定用例和要求进行探索和测试。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f