ApsaraVideo VOD çevrimiçi düzenleme; ses, video ve metni birleştirerek yeni videolar oluşturur. Bu konuda, düzenleme projeleri oluşturma ve yönetme ile prodüksiyon işleri gönderme amacıyla kullanılan Python SDK örnekleri sunulmaktadır.
Kullanım notları
Bu konudaki tüm örnekler, istemci örneğini başlatmak için bir AccessKey çifti kullanır.
İstek ve yanıt parametrelerinin ayrıntıları için Alibaba Cloud OpenAPI Explorer adresini ziyaret edin ve API Documentations sekmesini açın.
Diğer API işlemlerine ilişkin SDK örnekleri için Alibaba Cloud OpenAPI Explorer adresini ziyaret edin. Parameters sekmesinde parametreleri belirtin ve çağrıyı başlatın. Ardından kodu görüntülemek ve indirmek için SDK Sample Code sekmesinden SDK sürümünü ve dili seçin.
Bu konudaki örnekler SDK V1.0 kullanır. V2.0 örnekleri için OpenAPI Explorer'da doğru SDK sürümünü seçin.
İstemciyi başlatma
SDK'yı kullanmadan önce bir istemci başlatın. Başlatma.
Zaman çizelgesine dayalı video prodüksiyon işi gönderme
Zaman çizelgesine dayalı bir video prodüksiyon işi göndermek için ProduceEditingProjectVideo işlemini çağırın.
Çoğu video prodüksiyon senaryosu için uygundur.
OpenAPI Explorer: ProduceEditingProjectVideo.
Örnek kod:
Daha fazla zaman çizelgesi düzenleme ve kompozisyon örneği için: Video Düzenleme - Kullanım Örnekleri.
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())
Çevrimiçi düzenleme projesine dayalı video prodüksiyon işi gönderme
Bir çevrimiçi düzenleme projesine dayalı video prodüksiyon işi göndermek için ProduceEditingProjectVideo işlemini çağırın.
Çevrimiçi düzenleme projelerini yönetmek için bu yöntemi kullanın.
OpenAPI Explorer: ProduceEditingProjectVideo.
Örnek kod:
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())
Çevrimiçi düzenleme projesi oluşturma
Bir çevrimiçi düzenleme projesi oluşturmak için AddEditingProject işlemini çağırın.
OpenAPI Explorer: AddEditingProject.
Örnek kod:
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())
Çevrimiçi düzenleme projesini değiştirme
Bir çevrimiçi düzenleme projesini değiştirmek için UpdateEditingProject işlemini çağırın.
OpenAPI Explorer: UpdateEditingProject.
Örnek kod:
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())
Çevrimiçi düzenleme projesini silme
Bir çevrimiçi düzenleme projesini silmek için DeleteEditingProject işlemini çağırın.
OpenAPI Explorer: DeleteEditingProject.
Çevrimiçi düzenleme projesinin ayrıntılarını sorgulama
Bir çevrimiçi düzenleme projesinin ayrıntılarını sorgulamak için GetEditingProject işlemini çağırın.
OpenAPI Explorer: veya GetEditingProject.
Çevrimiçi düzenleme projelerini sorgulama
Çevrimiçi düzenleme projelerini aramak için SearchEditingProject işlemini çağırın.
OpenAPI Explorer: veya SearchEditingProject.
Çevrimiçi düzenleme projesi için materyaller ayarlama
Bir çevrimiçi düzenleme projesi için materyaller ayarlamak üzere SetEditingProjectMaterials işlemini çağırın.
OpenAPI Explorer: SetEditingProjectMaterials.
Çevrimiçi düzenleme projesindeki materyalleri sorgulama
Bir çevrimiçi düzenleme projesindeki materyalleri sorgulamak için GetEditingProjectMaterials işlemini çağırın.
OpenAPI Explorer: GetEditingProjectMaterials.