すべてのプロダクト
Search
ドキュメントセンター

:ビデオ編集

最終更新日:Jun 27, 2022

このトピックでは、ビデオ編集モジュールのAPI操作の使用方法の例を示します。 API操作はApsaraVideo VOD SDK for Pythonにカプセル化されています。 API操作を呼び出して、オンライン編集プロジェクトを作成、変更、および削除できます。 オンライン編集プロジェクトの詳細を照会したり、オンラインプロジェクトの資料を構成したり、ビデオアセンブリタスクを作成したりすることもできます。

クライアントを初期化

SDKを使用する前に、クライアントを初期化してください。 For more information, see Initialization.

タイムラインに基づいてビデオアセンブリタスクを作成する

ProduceEditingProjectVideo操作を呼び出して、タイムラインに基づいてビデオアセンブリタスクを作成できます。

タイムライン方法は、ビデオの組み立てに最もよく使用されます。 この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「ProduceEditingProjectVideo」をご参照ください。 例:

説明

タイムラインに基づいてビデオを組み立てる方法の例については、「ビデオアセンブリ」をご参照ください。

aliyunsdkvod.request.v20170321から
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())