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

ApsaraVideo VOD:メディアのアップロード

最終更新日:Oct 28, 2024

ApsaraVideo VOD SDKは、メディアのアップロードにさまざまなAPI操作を提供します。 APIを呼び出して、メディアファイルをApsaraVideo VODにアップロードできます。 このトピックでは、ApsaraVideo VOD SDK for Pythonを使用してAPI操作を呼び出してメディアファイルをアップロードできるシナリオとサンプルコードについて説明します。

シナリオ

重要

このトピックでは、アップロード資格情報やアップロードURLを取得する操作など、API操作の呼び出し例のみを示します。 次の表に、API操作を呼び出してメディアファイルをアップロードできるシナリオを示します。

API 操作

シナリオ

CreateUploadVideo

  • Object Storage Service (OSS) SDKを使用してメディアファイルをアップロードする場合は、ApsaraVideo VOD SDKを使用し、操作を呼び出してアップロード資格情報とアップロードURLを取得する必要があります。 取得したURLと資格情報はBase64-encodedであり、OSSClientインスタンスの初期化に使用する前にデコードする必要があります。 詳細については、「OSS SDKを使用したメディアファイルのアップロード」をご参照ください。 上記のトピックでは、OSS SDK for Javaを使用してメディアファイルをアップロードするための完全なサンプルコードについて説明します。 他の言語のサンプルコードの詳細については、「Upload media files by calling the ApsaraVideo VOD API」をご参照ください。

  • アップロードSDKを使用してクライアントからメディアファイルをアップロードする場合は、ApsaraVideo VOD SDKを統合し、操作を呼び出してアップロード資格情報とアップロードURLを取得または更新する必要があります。 URLと資格情報をデコードすることなくクライアントに発行できます。 詳細については、「クライアントアップロードSDK」をご参照ください。

RefreshUploadVideo

CreateUploadImage

CreateUploadAttachedMedia

UploadMediaByURL

  • UploadMediaByURLを呼び出して、ソースファイルのURLを使用してメディアファイルをアップロードできます。 これにより、アップロードSDKを使用してメディアファイルをApsaraVideo VODにアップロードする前に、メディアファイルをサーバーまたはデバイスにダウンロードする必要がなくなります。

    説明

    URLベースのアップロードジョブは非同期です。 URLベースのアップロードジョブを送信した後、完了するまでに数時間、さらには数日かかる場合があります。

  • GetURLUploadInfos操作を呼び出して、URLベースのアップロードジョブの進行状況を照会できます。

GetURLUploadInfos

RegisterMedia

前提条件

  • ApsaraVideo VOD SDKがインストールされています。 詳細については、「インストール」をご参照ください。

  • ApsaraVideo VOD SDKが初期化されます。 詳細については、「初期化」をご参照ください。

説明

次の例では、AccessKeyペアを使用してApsaraVideo VOD SDKを初期化します。

使用上の注意

  • この例では、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

API呼び出しの例

メディアファイルをアップロードするためのURLと資格情報の取得

CreateUploadVideo操作を呼び出して、メディアファイルをアップロードするためのアップロードURLとアップロード資格情報を取得できます。

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

サンプルコード:

from aliyunsdkvod.request.v20170321 import CreateUploadVideoRequest
def create_upload_video(clt):
    request = CreateUploadVideoRequest.CreateUploadVideoRequest()
    request.set_Title('Video Title')
    request.set_FileName('/opt/video/sample/video_file.mp4')
    request.set_Description('Video Description')
    # The thumbnail URL. Example: http://192.168.0.1/16/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png.
    request.set_CoverURL('<your Cover URL>')
    request.set_Tags('tag1,tag2')
    request.set_CateId(0)

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

try:
    clt = init_vod_client()
    uploadInfo = create_upload_video(clt)
    print(uploadInfo['UploadAuth'])
    print(json.dumps(uploadInfo, ensure_ascii=False, indent=4))

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

アップロード資格情報の更新

RefreshUploadVideo操作を呼び出して、メディアファイルをアップロードするための資格情報を更新できます。

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

サンプルコード:

from aliyunsdkvod.request.v20170321 import RefreshUploadVideoRequest
def refresh_upload_video(clt, videoId):
    request = RefreshUploadVideoRequest.RefreshUploadVideoRequest()
    request.set_VideoId(videoId)
    request.set_accept_format('JSON')
    return json.loads(clt.do_action_with_exception(request))

try:
    clt = init_vod_client()
    uploadInfo = refresh_upload_video(clt, 'VideoId')
    print(json.dumps(uploadInfo, ensure_ascii=False, indent=4))

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

画像をアップロードするためのURLと資格情報の取得

CreateUploadImage操作を呼び出して、画像をアップロードするためのURLと資格情報を取得できます。

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

サンプルコード:

from aliyunsdkvod.request.v20170321 import CreateUploadImageRequest
def create_upload_image(clt, imageType, imageExt):
    request = CreateUploadImageRequest.CreateUploadImageRequest()
    request.set_ImageType(imageType)
    request.set_ImageExt(imageExt)
    request.set_accept_format('JSON')
    return json.loads(clt.do_action_with_exception(request))

try:
    clt = init_vod_client()
    imageInfo = create_upload_image(clt, 'cover', 'jpg')
    print(json.dumps(imageInfo, ensure_ascii=False, indent=4))

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

補助メディア資産をアップロードするためのURLと資格情報の取得

CreateUploadAttachedMedia操作を呼び出して、補助メディアアセットをアップロードするためのURLと資格情報を取得できます。

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

サンプルコード:

from aliyunsdkvod.request.v20170321 import CreateUploadAttachedMediaRequest
def create_upload_attached_media(clt):
    request = CreateUploadAttachedMediaRequest.CreateUploadAttachedMediaRequest()
    request.set_BusinessType("watermark");
    request.set_MediaExt("gif");
    request.set_Title("this is a sample");
    request.set_accept_format('JSON')
    return json.loads(clt.do_action_with_exception(request))

try:
    clt = init_vod_client()
    uploadInfo = create_upload_attached_media(clt)
    print(uploadInfo['UploadAuth'])
    print(json.dumps(uploadInfo, ensure_ascii=False, indent=4))

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

一度にソースファイルのURLを使用して複数のメディアファイルをアップロードする

UploadMediaByURL操作を呼び出して、一度にソースファイルのURLを使用して複数のメディアファイルをアップロードできます。

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

サンプルコード:

from aliyunsdkvod.request.v20170321 import UploadMediaByURLRequest
import sys,urllib
def upload_media_by_url(clt):
    request = UploadMediaByURLRequest.UploadMediaByURLRequest()
    # The URLs of source files. Examples: http://example-bucket-****.cn-shanghai.aliyuncs.com/sample1-****.mp4 and http://example-bucket-****.cn-shanghai.aliyuncs.com/sample2-****.flv.
    urls = ["<your URL1>",
            "your URL2"]
    # Encode the urls and add metadata
    uploadUrls = []
    uploadMetadatas = []
    for url in urls:
        if sys.version_info[0] == 3:
            encodeUrl = urllib.parse.quote(url)
        else:
            encodeUrl = urllib.quote(url)
        uploadUrls.append(encodeUrl)
        uploadMetadatas.append({'SourceURL': encodeUrl, 'Title': 'Sample Title'})

    request.set_UploadURLs(','.join(uploadUrls))
    request.set_UploadMetadatas(json.dumps(uploadMetadatas))

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

try:
    clt = init_vod_client()
    uploadInfo = upload_media_by_url(clt)
    print(uploadInfo['UploadJobs'])
    print(json.dumps(uploadInfo, ensure_ascii=False, indent=4))

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

URLベースのアップロードジョブに関する情報の照会

GetURLUploadInfos操作を呼び出して、URLベースのアップロードジョブに関する情報を照会できます。

サンプルコード:

from aliyunsdkvod.request.v20170321 import GetURLUploadInfosRequest
import sys,urllib
def get_url_upload_infos(clt):
    request = GetURLUploadInfosRequest.GetURLUploadInfosRequest()
    # The URLs. Example: http://192.168.0.1/16/sample1-****.mp4 and http://192.168.0.1/16/sample2-****.flv.
    urls = ["<your URL1>",
            "<your URL2>"]

    # Encode URLs.
    uploadUrls = []
    for url in urls:
        if sys.version_info[0] == 3:
            encodeUrl = urllib.parse.quote(url)
        else:
            encodeUrl = urllib.quote(url)
        uploadUrls.append(encodeUrl)

    # The URLs from which you want to upload media files. Separate multiple URLs with commas (,).
    request.set_UploadURLs(','.join(uploadUrls))

    # The IDs of the URL-based upload jobs.
    #request.set_JobIds("jobId1,jobId2")

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

try:
    clt = init_vod_client()
    res = get_url_upload_infos(clt)
    print(res['NonExists'])
    print(json.dumps(res, ensure_ascii=False, indent=4))

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

メディア資産の登録

RegisterMedia操作を呼び出して、メディアアセットを登録できます。

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

サンプルコード:

from aliyunsdkvod.request.v20170321 import RegisterMediaRequest
def register_media(clt):
    request = RegisterMediaRequest.RegisterMediaRequest()
    metadatas = []
    # The URL of the media file. Example: https://192.168.0.1/16/vod_sample_****.mp4.
    metadatas.append({'FileURL':"<your File URL>", "Title":"RegisterMedia sample Title"})
    request.set_RegisterMetadatas(json.dumps(metadatas))
    request.set_accept_format('JSON')
    return json.loads(clt.do_action_with_exception(request))

try:
    clt = init_vod_client()
    registerInfo = register_media(clt)
    print(registerInfo['RegisteredMediaList'])
    print(registerInfo['FailedFileURLs'])
    print(json.dumps(registerInfo, ensure_ascii=False, indent=4))

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