このトピックでは、ビデオ編集モジュールのAPI操作の使用方法の例を示します。 API操作はApsaraVideo VOD SDK for Pythonにカプセル化されています。 API操作を呼び出して、オンライン編集プロジェクトを作成、変更、および削除できます。 オンライン編集プロジェクトの詳細を照会したり、オンラインプロジェクトの資料を構成したり、ビデオアセンブリタスクを作成したりすることもできます。
クライアントを初期化
SDKを使用する前に、クライアントを初期化してください。 For more information, see Initialization.
タイムラインに基づいてビデオアセンブリタスクを作成する
ProduceEditingProjectVideo操作を呼び出して、タイムラインに基づいてビデオアセンブリタスクを作成できます。
タイムライン方法は、ビデオの組み立てに最もよく使用されます。 この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「ProduceEditingProjectVideo」をご参照ください。 例:
タイムラインに基づいてビデオを組み立てる方法の例については、「ビデオアセンブリ」をご参照ください。
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)
タイムライン ['VideoTracks'] = videoTracks
request.set_Timeline(json.dumps(timeline))
# set media metadata
mediaMetadata = {'Title': 'editing sample title', 'Description': 'editing sample description', 'Tags': 'Tag1,Tag2,Test',
'CoverURL': 'http:// example.aliyundoc.com/media/cover/mediaid.jpg'}
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('<AccessKeyId>', '<AccessKeySecret>')
produce = produce_editing_video(clt)
print(produce['MediaId'])
print(json.dumps(produce, ensure_ascii=False, indent=4))
eとして例外を除いて:
print(e)
print(traceback.format_exc())
オンライン編集プロジェクトに基づいてビデオアセンブリタスクを作成する
ProduceEditingProjectVideo操作を呼び出して、オンライン編集プロジェクトに基づいてビデオアセンブリタスクを作成できます。
If you have high requirements for online editing and management, we recommend that you use this method. この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「ProduceEditingProjectVideo」をご参照ください。 例:
aliyunsdkvod.request.v20170321からProduceEditingProjectVideoRequestをインポート
def produce_editing_video_by_id(clt):
request = ProduceEditingProjectVideoRequest.ProduceEditingProjectVideoRequest()
# セットProjectId
request.set_ProjectId('<ProjectId>')
# setメディアメタデータ
mediaMetadata = {'Title': 'editing sample title by ProjectId' 、'Description': 'editing sample description by ProjectId' 、
「タグ」: 「Tag1、Tag2、テスト」}
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 (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
produce = produce_editing_video_by_id(clt)
print(produce['MediaId'])
print(json.dumps(produce, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
オンライン編集プロジェクトの作成
AddEditingProject操作を呼び出して、オンライン編集プロジェクトを作成できます。
この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「AddEditingProject」をご参照ください。 例:
からaliyunsdkvod.request.v20170321インポートAddEditingProjectRequest
def add_editing_project(clt):
request = AddEditingProjectRequest。AddEditingProjectRequest()
# タイムラインを設定します。このサンプルでは、2つのビデオをマージする方法を示します
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 (タイムライン))
# setプロジェクトメタデータ
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 (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
project = add_editing_project(clt)
print (プロジェクト [プロジェクト])
print(json.dumps(project, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
オンライン編集プロジェクトの変更
You can call the UpdateEditingProject operation to modify an online editing project.
この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「UpdateEditingProject」をご参照ください。 例:
からaliyunsdkvod.request.v20170321インポートUpdateEditingProjectRequest
def update_editing_project(clt):
request = UpdateEditingProjectRequest.UpdateEditingProjectRequest()
# set projectId
request.set_ProjectId('<projectId>')
# タイムラインを設定します。このサンプルでは、2つのビデオをマージする方法を示します
videoTrackClips = []
videoTracks = []
timeline = {}
videoTrackClip1 = {'MediaId': '<videoId1>'}
videoTrackClips.append(videoTrackClip1)
videoTrackClip2 = {'MediaId': '<videoId2>'}
videoTrackClips.append(videoTrackClip2)
videoTrack = {'VideoTrackClips': videoTrackClips}
videoTracks.append(videoTrack)
タイムライン ['VideoTracks'] = videoTracks
request.set_Timeline(json.dumps(timeline))
# setプロジェクトメタデータ
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 (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
res = update_editing_project(clt)
print(json.dumps(res, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
オンライン編集プロジェクトの削除
DeleteEditingProject操作を呼び出して、オンライン編集プロジェクトを削除できます。
この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「DeleteEditingProject」をご参照ください。 例:
からaliyunsdkvod.request.v20170321インポートDeleteEditingProjectRequest
def delete_editing_project(clt):
request = DeleteEditingProjectRequest。DeleteEditingProjectRequest()
# set projectIdリスト
request.set_ProjectIds('projectId1,projectId2')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
return response
try:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
res = delete_editing_project(clt)
print(json.dumps(res, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
オンライン編集プロジェクトの照会
GetEditingProject操作を呼び出して、オンライン編集プロジェクトの詳細を照会できます。
For more information about the request and response parameters of this operation, see GetEditingProject. 例:
aliyunsdkvod.request.v20170321からGetEditingProjectRequestをインポート
def get_editing_project(clt):
request = GetEditingProjectRequest。GetEditingProjectRequest()
# set projectId
request.set_ProjectId('<ProjectId>')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
project = get_editing_project(clt)
print(json.dumps(project, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
オンライン編集プロジェクトの検索
SearchEditingProject操作を呼び出して、オンライン編集プロジェクトを検索できます。
この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「SearchEditingProject」をご参照ください。 例:
からaliyunsdkvod.request.v20170321インポートSearchEditingProjectRequest
def search_editing_project(clt):
request = SearchEditingProjectRequest.SearchEditingProjectRequest()
request.set_Title (「タイトルキーワード」)
request.set_StartTime('2018-10-11T12:00:00Z')
request.set_EndTime('2018-12-25T12:00:00Z')
request.set_PageSize(10)
request.set_PageNo (1)
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
projects = search_editing_project(clt)
print(projects['ProjectList']['Project'])
print(json.dumps(projects, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())
オンライン編集プロジェクトのマテリアルを構成する
SetEditingProjectMaterials操作を呼び出して、オンライン編集プロジェクトのマテリアルを構成できます。
この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「SetEditingProjectMaterials」をご参照ください。 例:
からaliyunsdkvod.request.v20170321インポートSetEditingProjectMaterialsRequest
def set_editing_project_materials(clt):
request = SetEditingProjectMaterialsRequest。SetEditingProjectMaterialsRequest()
request.set_ProjectId('<ProjectId>')
request.set_MaterialIds('materialId1,materialId2')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
res = set_editing_project_materials(clt)
print(json.dumps(res, ensure_ascii=False, indent=4))
except Exception as e:
print(e)
print(traceback.format_exc())
オンライン編集プロジェクトの資料を照会する
GetEditingProjectMaterials操作を呼び出して、オンライン編集プロジェクトのマテリアルを照会できます。
For more information about the request and response parameters of this operation, see GetEditingProjectMaterials. 例:
aliyunsdkvod.request.v20170321からGetEditingProjectMaterialsRequestをインポート
def get_editing_project_materials(clt):
request = GetEditingProjectMaterialsRequest。GetEditingProjectMaterialsRequest()
request.set_ProjectId('<ProjectId>')
request.set_Type('video')
request.set_accept_format('JSON')
response = json.loads(clt.do_action_with_exception (リクエスト))
リターンレスポンス
トライ:
clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
res = get_editing_project_materials(clt)
print(json.dumps(res, ensure_ascii=False, indent=4))
eとして例外を除いて:
プリント (e)
print(traceback.format_exc())