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

ApsaraVideo VOD:メディア資産管理

最終更新日:Oct 28, 2024

このトピックでは、メディア管理モジュールのAPI操作の使用例を示します。 API操作はApsaraVideo VOD SDK for Pythonにカプセル化されています。 API操作を呼び出して、メディアアセット情報の照会、ビデオ情報の変更、およびソースファイル情報の照会を行うことができます。 ビデオや画像を照会して削除することもできます。

使用上の注意

  • この例では、AccessKeyペアを使用してクライアントインスタンスを初期化します。

  • この操作のリクエストおよびレスポンスパラメーターの詳細については、 OpenAPI Explorerに移動します。 上部のナビゲーションバーで [APIドキュメント] をクリックすると、API操作に関連する情報が表示されます。

  • このトピックでは、一部の複雑なAPI操作のサンプルコードのみを示します。 他のAPI操作のサンプルコードを取得するには、次の操作を実行します。 Alibaba Cloud OpenAPI Explorerに移動します。左側のナビゲーションウィンドウで、サンプルコードを取得するAPI操作を見つけ、[パラメーター] タブで必要なパラメーターを指定します。 次に、[呼び出しの開始] をクリックします。 [SDKサンプルコード] タブで、サンプルコードを表示およびダウンロードする言語を選択します。

  • このトピックでは、ApsaraVideo VOD SDK for Java V1.0を使用してAPI操作を呼び出す方法について説明します。 ApsaraVideo VOD SDK for Java V2.0を使用してAPI操作を呼び出す場合、Alibaba Cloud OpenAPI Explorerでサンプルコードを取得するときにV2.0を指定します。image.png

クライアントを初期化

SDKを使用する前に、クライアントを初期化してください。 詳細については、「初期化」をご参照ください。

メディアアセット情報の照会

SearchMedia操作を呼び出して、メディアアセット情報を照会できます。

このAPI操作の詳細については、SearchMediaを参照してください。

サンプルコード:

from aliyunsdkvod.request.v20170321 import SearchMediaRequest
def search_media(clt):
    request = SearchMediaRequest.SearchMediaRequest()
    request.set_Fields('Title,CoverURL,Status');
    request.set_Match('Status in ("Normal","Checking") and CreationTime = ("2018-10-01T08:00:00Z","2018-12-25T08:00:00Z")')
    request.set_PageNo(1)
    request.set_PageSize(10)
    request.set_SearchType('video')
    request.set_SortBy('CreationTime:Desc')

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    medias = search_media(clt)
    print(medias['MediaList'])
    print(json.dumps(medias, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

オーディオまたはビデオファイルに関する情報の照会

  • GetVideoInfo操作を呼び出して、オーディオまたはビデオファイルに関する情報を照会できます。

    このAPI操作の詳細については、GetVideoInfoを参照してください。

  • GetVideoInfos操作を呼び出して、一度に複数のオーディオまたはビデオファイルに関する情報を照会できます。

    このAPI操作の詳細については、GetVideoInfosを参照してください。

オーディオまたはビデオファイルに関する情報を変更する

UpdateVideoInfo操作を呼び出して、オーディオまたはビデオファイルに関する情報を変更できます。

このAPI操作の詳細については、UpdateVideoInfoを参照してください。

複数のオーディオまたはビデオファイルに関する情報を変更する

UpdateVideoInfos操作を呼び出して、一度に複数のオーディオまたはビデオファイルに関する情報を変更できます。

このAPI操作の詳細については、UpdateVideoInfosを参照してください。

サンプルコード:

from aliyunsdkvod.request.v20170321 import UpdateVideoInfosRequest
def update_video_infos(clt):
    request = UpdateVideoInfosRequest.UpdateVideoInfosRequest()

    updateContent = []
    updateItem1 = {'VideoId': '<VideoId1>', 'Title': 'New Sample Title1', 'Tags': 'NewTag1,NewTag2'}
    updateItem2 = {'VideoId': '<VideoId2>', 'Title': 'New Sample Title2', 'Tags': 'NewTag3,NewTag4'}
    updateContent.append(updateItem1)
    updateContent.append(updateItem2)
    request.set_UpdateContent(json.dumps(updateContent))

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    update = update_video_infos(clt)
    print(update['NonExistVideoIds'])
    print(json.dumps(update, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

ソースファイル情報の照会 (ダウンロードURLを含む)

GetMezzanineInfo操作を呼び出して、ソースファイル情報を照会できます。

このAPI操作の詳細については、GetMezzanineInfoを参照してください。

オーディオおよびビデオファイルの照会

GetVideoList操作を呼び出して、オーディオおよびビデオファイルを照会できます。

このAPI操作の詳細については、GetVideoListを参照してください。

サンプルコード:

重要

時刻は UTC である必要があります。 たとえば、2018-01-01T12:00:00Zは、2018年1月1日の20:00:00 (UTC + 8) を示します。

from aliyunsdkvod.request.v20170321 import GetVideoListRequest
def get_video_list(clt):
    request = GetVideoListRequest.GetVideoListRequest()
    # The following sample code provides an example on how to query video files in the last 30 days.
    utcNow = datetime.datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ")
    utcMonthAgo = datetime.datetime.utcfromtimestamp(time.time() - 30*86400).strftime("%Y-%m-%dT%H:%M:%SZ")
    request.set_StartTime(utcMonthAgo)   # The beginning of the time range during which the video was created. The time must be in UTC.
    request.set_EndTime(utcNow)          # The end of the time range during which the video was created. The time must be in UTC.
    # request.set_Status('Uploading,Normal,Transcoding')  # The status of the video. Separate multiple video statuses with commas (,). By default, videos in all statuses are queried.
    #request.set_CateId(0)               # Filter by category.
    request.set_PageNo(1)
    request.set_PageSize(20)

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    videoList = get_video_list(clt)
    print(json.dumps(videoList, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

オーディオファイルとビデオファイルを削除する

DeleteVideo操作を呼び出して、オーディオおよびビデオファイルを削除できます。

このAPI操作の詳細については、DeleteVideoを参照してください。

メディアストリームの削除

DeleteStream操作を呼び出して、メディアストリームを削除できます。

このAPI操作の詳細については、DeleteStreamを参照してください。

複数のソースファイルを削除する

DeleteMezzanines操作を呼び出して、一度に複数のソースファイルを削除できます。

このAPI操作の詳細については、DeleteMezzaninesを参照してください。

複数の画像に関する情報の変更

UpdateImageInfos操作を呼び出して、一度に複数のイメージに関する情報を変更できます。

このAPI操作の詳細については、UpdateImageInfosを参照してください。

サンプルコード:

from aliyunsdkvod.request.v20170321 import UpdateImageInfosRequest
def update_image_infos(clt):
    request = UpdateImageInfosRequest.UpdateImageInfosRequest()

    updateContent = []
    updateItem1 = {'ImageId': '<imageId1>', 'Title': 'New Sample Title1', 'Tags': 'NewTag1,NewTag2'}
    updateItem2 = {'ImageId': '<imageId2>', 'Title': 'New Sample Title2', 'Tags': 'NewTag3,NewTag4'}
    updateContent.append(updateItem1)
    updateContent.append(updateItem2)
    request.set_UpdateContent(json.dumps(updateContent))

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    update = update_image_infos(clt)
    print(update['NonExistImageIds']['ImageId'])
    print(json.dumps(update, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

イメージに関する情報の照会

GetImageInfo操作を呼び出して、イメージに関する情報を照会できます。

このAPI操作の詳細については、GetImageInfoを参照してください。

画像の削除

DeleteImage操作を呼び出して、画像を削除できます。

このAPI操作の詳細については、DeleteImageを参照してください。

サンプルコード:

from aliyunsdkvod.request.v20170321 import DeleteImageRequest
def delete_image(clt):
    request = DeleteImageRequest.DeleteImageRequest()

    # Delete image files based on ImageURL.
    request.set_DeleteImageType('ImageURL')
    request.set_ImageURLs('http://192.168.0.0/16/cover.jpg')

    # Delete image files based on ImageId.
    #request.set_DeleteImageType('ImageId')
    #request.set_ImageIds('ImageId1,ImageId2')

    # Delete image files based on VideoId and ImageType.
    #request.set_DeleteImageType('VideoId')
    #request.set_VideoId('VideoId')
    #request.set_ImageType('SpriteSnapshot')

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:
    clt = init_vod_client()
    delInfo = delete_image(clt)
    print(json.dumps(delInfo, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())