A edição online do ApsaraVideo VOD combina áudio, vídeo e texto em novos vídeos. Este tópico fornece exemplos de Python SDK para criar e gerenciar projetos de edição e enviar jobs de produção.
Usage notes
-
All examples in this topic use an AccessKey pair to initialize a client instance.
-
For request and response parameter details, visit Alibaba Cloud OpenAPI Explorer and open the API Documentations tab.
-
For SDK examples of other API operations, visit Alibaba Cloud OpenAPI Explorer. On the Parameters tab, specify the parameters and initiate the call. Then select the SDK version and language on the SDK Sample Code tab to view and download the code.
-
The examples in this topic use SDK V1.0. For V2.0 examples, select the correct SDK version in OpenAPI Explorer.

Inicializar um cliente
Inicialize um cliente antes de usar o SDK. Inicialização.
Enviar um job de produção de vídeo com base em uma timeline
Chame a operação ProduceEditingProjectVideo para enviar um job de produção de vídeo com base em uma timeline.
Aplica-se à maioria dos cenários de produção de vídeo.
OpenAPI Explorer: ProduceEditingProjectVideo.
Código de exemplo:
Mais exemplos de edição e composição de timeline: Edição de vídeo - Exemplos de uso.
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())
Enviar um job de produção de vídeo com base em um projeto de edição online
Chame a operação ProduceEditingProjectVideo para enviar um job de produção de vídeo com base em um projeto de edição online.
Use este método para gerenciar projetos de edição online.
OpenAPI Explorer: ProduceEditingProjectVideo.
Código de exemplo:
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())
Criar um projeto de edição online
Chame a operação AddEditingProject para criar um projeto de edição online.
OpenAPI Explorer: AddEditingProject.
Código de exemplo:
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())
Modificar um projeto de edição online
Chame a operação UpdateEditingProject para modificar um projeto de edição online.
OpenAPI Explorer: UpdateEditingProject.
Código de exemplo:
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())
Excluir um projeto de edição online
Chame a operação DeleteEditingProject para excluir um projeto de edição online.
OpenAPI Explorer: DeleteEditingProject.
Consultar detalhes de um projeto de edição online
Chame a operação GetEditingProject para consultar os detalhes de um projeto de edição online.
OpenAPI Explorer: or GetEditingProject.
Pesquisar projetos de edição online
Chame a operação SearchEditingProject para pesquisar projetos de edição online.
OpenAPI Explorer: or SearchEditingProject.
Definir materiais para um projeto de edição online
Chame a operação SetEditingProjectMaterials para definir materiais para um projeto de edição online.
OpenAPI Explorer: SetEditingProjectMaterials.
Consultar materiais em um projeto de edição online
Chame a operação GetEditingProjectMaterials para consultar os materiais em um projeto de edição online.
OpenAPI Explorer: GetEditingProjectMaterials.