Le montage en ligne d'ApsaraVideo VOD combine l'audio, la vidéo et le texte pour créer de nouvelles vidéos. Cette rubrique fournit des exemples de code du SDK Python pour créer et gérer des projets de montage, ainsi que pour soumettre des tâches de production.
Remarques sur l'utilisation
Tous les exemples de cette rubrique utilisent une paire AccessKey pour initialiser une instance de client.
Pour obtenir des détails sur les paramètres de requête et de réponse, consultez Alibaba Cloud OpenAPI Explorer et ouvrez l'onglet API Documentations.
Pour consulter des exemples de SDK pour d'autres opérations d'API, rendez-vous sur Alibaba Cloud OpenAPI Explorer. Dans l'onglet Parameters, spécifiez les paramètres et lancez l'appel. Sélectionnez ensuite la version du SDK et le langage dans l'onglet SDK Sample Code pour afficher et télécharger le code.
Les exemples de cette rubrique utilisent le SDK V1.0. Pour les exemples V2.0, sélectionnez la version correcte du SDK dans OpenAPI Explorer.
Initialiser un client
Initialisez un client avant d'utiliser le SDK. Consultez la section Initialisation.
Soumettre une tâche de production vidéo basée sur une timeline
Appelez l'opération ProduceEditingProjectVideo pour soumettre une tâche de production vidéo basée sur une timeline.
Cette méthode s'applique à la plupart des scénarios de production vidéo.
OpenAPI Explorer : ProduceEditingProjectVideo.
Exemple de code :
Pour plus d'exemples de montage et de composition basés sur une timeline, consultez la section Montage vidéo - Exemples d'utilisation.
from aliyunsdkvod.request.v20170321 import ProduceEditingProjectVideoRequest
def produce_editing_video(clt):
request = ProduceEditingProjectVideoRequest.ProduceEditingProjectVideoRequest()
# set timeline, this sample shows how to merge two videos
videoTrackClips = []
videoTracks = []
timeline = {}
videoTrackClip1 = {'MediaId': '<videoId1>'}
videoTrackClips.append(videoTrackClip1)
videoTrackClip2 = {'MediaId': '<videoId2>'}
videoTrackClips.append(videoTrackClip2)
videoTrack = {'VideoTrackClips': videoTrackClips}
videoTracks.append(videoTrack)
timeline['VideoTracks'] = videoTracks
request.set_Timeline(json.dumps(timeline))
# set media metadata
# CoverURL example: http://example.aliyundoc.com/media/cover/mediaid****.jpg
mediaMetadata = {'Title': 'editing sample title', 'Description': 'editing sample description', 'Tags': 'Tag1,Tag2,Test',
'CoverURL': '<your Cover URL>'}
request.set_MediaMetadata(json.dumps(mediaMetadata))
# set produce config
produceConfig = {'TemplateGroupId': '<templateGroupId>'}
#request.set_ProduceConfig(json.dumps(produceConfig))
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
produce = produce_editing_video(clt)
print(produce['MediaId'])
print(json.dumps(produce, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
Soumettre une tâche de production vidéo basée sur un projet de montage en ligne
Appelez l'opération ProduceEditingProjectVideo pour soumettre une tâche de production vidéo basée sur un projet de montage en ligne.
Utilisez cette méthode pour gérer les projets de montage en ligne.
OpenAPI Explorer : ProduceEditingProjectVideo.
Exemple de code :
from aliyunsdkvod.request.v20170321 import ProduceEditingProjectVideoRequest
def produce_editing_video_by_id(clt):
request = ProduceEditingProjectVideoRequest.ProduceEditingProjectVideoRequest()
# set ProjectId
request.set_ProjectId('<ProjectId>')
# set media metadata
mediaMetadata = {'Title': 'editing sample title by ProjectId', 'Description': 'editing sample description by ProjectId',
'Tags': 'Tag1,Tag2,Test'}
request.set_MediaMetadata(json.dumps(mediaMetadata))
# set produce config
produceConfig = {'TemplateGroupId': '<templateGroupId>'}
#request.set_ProduceConfig(json.dumps(produceConfig))
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
produce = produce_editing_video_by_id(clt)
print(produce['MediaId'])
print(json.dumps(produce, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
Créer un projet de montage en ligne
Appelez l'opération AddEditingProject pour créer un projet de montage en ligne.
OpenAPI Explorer : AddEditingProject.
Exemple de code :
from aliyunsdkvod.request.v20170321 import AddEditingProjectRequest
def add_editing_project(clt):
request = AddEditingProjectRequest.AddEditingProjectRequest()
# set timeline, this sample shows how to merge two videos
videoTrackClips = []
videoTracks = []
timeline = {}
videoTrackClip1 = {'MediaId': '<videoId1>'}
videoTrackClips.append(videoTrackClip1)
videoTrackClip2 = {'MediaId': '<videoId2>'}
videoTrackClips.append(videoTrackClip2)
videoTrack = {'VideoTrackClips': videoTrackClips}
videoTracks.append(videoTrack)
timeline['VideoTracks'] = videoTracks
request.set_Timeline(json.dumps(timeline))
# set project metadata
request.set_Title('editing project title')
request.set_Description('editing project description')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
project = add_editing_project(clt)
print(project['Project'])
print(json.dumps(project, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
Modifier un projet de montage en ligne
Appelez l'opération UpdateEditingProject pour modifier un projet de montage en ligne.
OpenAPI Explorer : UpdateEditingProject.
Exemple de code :
from aliyunsdkvod.request.v20170321 import UpdateEditingProjectRequest
def update_editing_project(clt):
request = UpdateEditingProjectRequest.UpdateEditingProjectRequest()
# set projectId
request.set_ProjectId('<projectId>')
# set timeline, this sample shows how to merge two videos
videoTrackClips = []
videoTracks = []
timeline = {}
videoTrackClip1 = {'MediaId': '<videoId1>'}
videoTrackClips.append(videoTrackClip1)
videoTrackClip2 = {'MediaId': '<videoId2>'}
videoTrackClips.append(videoTrackClip2)
videoTrack = {'VideoTrackClips': videoTrackClips}
videoTracks.append(videoTrack)
timeline['VideoTracks'] = videoTracks
request.set_Timeline(json.dumps(timeline))
# set project metadata
request.set_Title('new editing project title')
request.set_Description('new editing project description')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception(request))
return response
try:
clt = init_vod_client()
res = update_editing_project(clt)
print(json.dumps(res, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
Supprimer un projet de montage en ligne
Appelez l'opération DeleteEditingProject pour supprimer un projet de montage en ligne.
OpenAPI Explorer : DeleteEditingProject.
Consulter les détails d'un projet de montage en ligne
Appelez l'opération GetEditingProject pour consulter les détails d'un projet de montage en ligne.
OpenAPI Explorer : ou GetEditingProject.
Rechercher des projets de montage en ligne
Appelez l'opération SearchEditingProject pour rechercher des projets de montage en ligne.
OpenAPI Explorer : ou SearchEditingProject.
Définir les éléments multimédias d'un projet de montage en ligne
Appelez l'opération SetEditingProjectMaterials pour définir les éléments multimédias d'un projet de montage en ligne.
OpenAPI Explorer : SetEditingProjectMaterials.
Consulter les éléments multimédias d'un projet de montage en ligne
Appelez l'opération GetEditingProjectMaterials pour consulter les éléments multimédias d'un projet de montage en ligne.
OpenAPI Explorer : GetEditingProjectMaterials.