AEMaaCS Dynamic Media にプログラムで VTT キャプションを追加する
Adobe Experience Manager as a Cloud Service(AEMaaCS)には、VTT キャプションファイルを Dynamic Media にプログラムでアップロードするパブリック API がありません。 これを解決するには、ビデオアセットをアップロードし、サブアセットフォルダーを作成し、VTT ファイルをアップロードして、S7AudioCaptionsMetadataServlet などの内部エンドポイントを使用してメタデータを投稿します。
説明 description
環境
Adobe Experience Manager as a Cloud Service(AEMaaCS) - Assets、Dynamic Media
問題/症状
AEMaaCS には、VTT キャプションファイルをプログラムでアップロードして Dynamic Media のビデオアセットに関連付けるためのパブリック API がありません。 キャプションは UI から手動でアップロードする必要があり、ビデオアセットのキャプション管理が自動化されないようにする必要があります。
解決策 resolution
次の手順では、内部実装方法を使用して、プログラムで VTT キャプションファイルをアップロードし、ビデオアセットに関連付ける方法の概要を説明します。
-
プライマリビデオファイルを AEMaaCS DAM (デジタルアセット管理)にアップロードして、正常に処理されていることを確認します。 パスの例:
/content/dam/test/sample.mp4 -
GET リクエストを
/content/dam/test/sample.mp4/subassets.jsonに送信して、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フォルダーにアップロードします。例:
Caption:
/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:を使用して各オーディオファイルのメタデータを 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 -
各キャプションファイルの 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 -
.audiocaptionsmetadata.jsonエンドポイントへのGET リクエストを使用してメタデータを取得し、キャプションとオーディオファイルが正しく関連付けられていることを確認します。例:
- キャプション:
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"
- キャプション:
その他のメモ
- このアプローチは、Chromeの「 ネットワーク 」タブなどのブラウザー開発者ツールを使用して、クライアントサイドからAEMに対して行われる HTTP リクエストを調べることに依存します。
- これは内部実装であり、サポートされているパブリック API ではありません。
- この方法は、特定の使用例と要件に基づいた探索とテストを目的としています。