ApsaraVideo VOD menyediakan fitur pengeditan video daring untuk menggabungkan audio, video, dan teks menjadi video baru. Topik ini mencakup contoh Python SDK yang menunjukkan cara membuat dan mengelola proyek pengeditan daring serta mengirimkan pekerjaan produksi video.
Catatan Penggunaan
Semua contoh pemanggilan API dalam topik ini menggunakan AccessKey untuk menginisialisasi instans client.
Untuk informasi lengkap mengenai parameter permintaan dan respons dari operasi API ini, kunjungi Alibaba Cloud OpenAPI Explorer. Di halaman operasi API tersebut, buka tab API Documentations di sisi kanan.
Topik ini menyediakan contoh untuk beberapa operasi API tertentu. Untuk mendapatkan contoh kode SDK untuk operasi API lainnya, kunjungi Alibaba Cloud OpenAPI Explorer. Di tab Parameters, tentukan parameter yang diperlukan lalu lakukan pemanggilan. Setelah itu, di tab SDK Sample Code, pilih versi SDK dan bahasa target Anda untuk melihat serta mengunduh contoh kode.
Contoh dalam topik ini menggunakan SDK versi V1.0. Untuk mendapatkan contoh versi V2.0, pastikan Anda memilih versi SDK yang sesuai di Alibaba Cloud OpenAPI Explorer.

Inisialisasi client
Inisialisasi client sebelum menggunakan SDK. Lihat Inisialisasi.
Kirim pekerjaan produksi video berdasarkan timeline
Panggil operasi ProduceEditingProjectVideo untuk mengirimkan pekerjaan produksi video berdasarkan timeline.
Metode ini berlaku untuk sebagian besar skenario produksi video.
OpenAPI Explorer: ProduceEditingProjectVideo.
Kode contoh:
Untuk lebih banyak contoh pengeditan timeline dan pencampuran aliran, lihat Pengeditan Video - Contoh Penggunaan.
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())
Kirim pekerjaan produksi video berdasarkan proyek pengeditan daring
Panggil operasi ProduceEditingProjectVideo untuk mengirimkan pekerjaan produksi video berdasarkan proyek pengeditan daring.
Gunakan metode ini ketika Anda perlu mengelola proyek pengeditan daring.
OpenAPI Explorer: ProduceEditingProjectVideo.
Kode contoh:
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())
Buat proyek pengeditan daring
Panggil operasi AddEditingProject untuk membuat proyek pengeditan daring.
OpenAPI Explorer: AddEditingProject.
Kode contoh:
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())
Ubah proyek pengeditan daring
Panggil operasi UpdateEditingProject untuk mengubah proyek pengeditan daring.
OpenAPI Explorer: UpdateEditingProject.
Kode contoh:
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())
Hapus proyek pengeditan daring
Panggil operasi DeleteEditingProject untuk menghapus proyek pengeditan daring.
OpenAPI Explorer: DeleteEditingProject.
Kueri detail proyek pengeditan daring
Panggil operasi GetEditingProject untuk mengkueri detail proyek pengeditan daring.
OpenAPI Explorer: atau GetEditingProject.
Kueri proyek pengeditan daring
Panggil operasi SearchEditingProject untuk mencari proyek pengeditan daring.
OpenAPI Explorer: atau SearchEditingProject.
Tetapkan materi untuk proyek pengeditan daring
Panggil operasi SetEditingProjectMaterials untuk menetapkan materi pada proyek pengeditan daring.
OpenAPI Explorer: SetEditingProjectMaterials.
Kueri materi dalam proyek pengeditan daring
Panggil operasi GetEditingProjectMaterials untuk mengkueri materi dalam proyek pengeditan daring.
OpenAPI Explorer: GetEditingProjectMaterials.