VTT-bijschriften programmatisch toevoegen in dynamische media van AEMaaCS
Adobe Experience Manager as a Cloud Service (AEMaaCS) biedt geen openbare API om bijschriftbestanden van VTT programmatisch te uploaden naar Dynamic Media. Als u dit wilt verhelpen, uploadt u het video-element, maakt u een map met submiddelen, uploadt u VTT-bestanden en plaatst u metagegevens via interne eindpunten, zoals S7AudioCaptionsMetadataServlet .
Beschrijving description
Omgeving
Adobe Experience Manager as a Cloud Service (AEMaaCS) - Assets, Dynamic Media
Probleem/symptomen
AEMaaCS biedt geen openbare API om bijschriftbestanden van VTT programmatisch te uploaden en aan video-elementen in Dynamic Media te koppelen. Bijschriften moeten handmatig via de gebruikersinterface worden geüpload, zodat het beheer van bijschriften voor video-elementen niet automatisch kan worden uitgevoerd.
Resolutie resolution
De volgende stappen bieden een overzicht van hoe u VTT-ondertitelingsbestanden programmatisch kunt uploaden en koppelen aan video-elementen met behulp van interne implementatiemethoden:
-
Upload het primaire videobestand naar AEMaaCS DAM (Digital Asset Management) en bevestig de processen correct. Voorbeeld:
/content/dam/test/sample.mp4. -
Controleer of de map
subassetsonder het video-element bestaat door een GET-aanvraag naar/content/dam/test/sample.mp4/subassets.jsonte verzenden.Als er een fout van 404 wordt geretourneerd, maakt u de map met behulp van een POST-aanvraag met
jcr:primaryType=nt:folder.Voorbeeld:
code language-none curl -u admin:admin \ -F "jcr:primaryType=nt:folder" \ http://localhost:4502/content/dam/test/sample.mp4/subassets\ -
Upload audiobestanden zoals
audio1.mp3- en bijschriftbestanden zoalsenglish.vttnaar de mapsubassets.Voorbeeld:
Bijschrift:
/content/dam/test/sample.mp4/subassets/chinese.vttAudio:
/content/dam/test/sample.mp4/subassets/audio1.mp3U kunt de
aem-uploadbibliotheek voor het uploaden gebruiken: https://github.com/adobe/aem-upload . -
POST-metagegevens voor elk audiobestand met de
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 -
Metagegevens POST voor elk bijschriftbestand:
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 -
Haal metagegevens op met GET-verzoeken aan het eindpunt van
.audiocaptionsmetadata.jsonom te bevestigen dat het bijschrift en de audiobestanden correct zijn gekoppeld.Voorbeelden:
- Voor bijschriften:
curl -u user:password "http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json?type=vtt&offset=0" - Voor audio:
curl -u user:password "http://localhost:4502/content/dam/test/sample.mp4.audiocaptionsmetadata.json?type=audio&offset=0"
- Voor bijschriften:
Aanvullende opmerkingen
- Deze benadering baseert zich op het inspecteren van de HTTP- verzoeken die van de cliëntkant aan AEM worden gemaakt gebruikend browser ontwikkelaarshulpmiddelen zoals Chrome Netwerk tabel.
- Dit is een interne implementatie en wordt niet ondersteund door een openbare API.
- Deze methode is bedoeld voor exploratie en beproeving op basis van specifieke gebruiksgevallen en -vereisten.