在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字幕文件并将其与视频资产关联:
-
将主视频文件上传到AEMaaCS DAM(数字资产管理)并确认它已成功处理。 示例路径:
/content/dam/test/sample.mp4。 -
通过向
/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\ -
将音频文件(如
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。 -
使用
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 -
每个描述文件的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 -
使用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。
- 此方法旨在根据特定用例和要求进行探索和测试。