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

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

最終更新日:Jun 20, 2022

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

シナリオ

注意

このトピックでは、URLを取得する操作やメディアファイルをアップロードするための資格情報など、API操作を呼び出すサンプルコードのみを提供します。 操作を使用できるシナリオの詳細については、次の表を参照してください。

操作

シナリオ

CreateUploadVideo

  • Object Storage Service (OSS) SDKを使用してメディアファイルをアップロードする場合は、サーバー操作SDKを使用し、操作を呼び出して、メディアファイルをアップロードするためのURLと資格情報を取得する必要があります。 取得したURLと資格情報はBase64-encodedであり、OSSクライアントの初期化に使用する前にデコードする必要があります。 詳細については、「OSS SDKを使用したメディアファイルのアップロード」をご参照ください。

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

RefreshUploadVideo

CreateUploadImage

CreateUploadAttachedMedia

UploadMediaByURL

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

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

GetURLUploadInfos

RegisterMedia

前提条件

  • Python用のサーバー操作SDKがインストールされています。 詳細については、「インストール」をご参照ください。

  • Python用のサーバー操作SDKが初期化されます。 詳細については、「初期化」をご参照ください。

説明

次の例では、AccessKeyペアを使用してサーバー操作SDKを初期化します。

サンプルコード

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

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

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「CreateUploadVideo」をご参照ください。 次のサンプルコードに例を示します。

からaliyunsdkvod.request.v20170321 import CreateUploadVideoRequest
def create_upload_video(clt):
    request = CreateUploadVideoRequest.CreateUploadVideoRequest()
    request.set_Title (「ビデオタイトル」)
    request.set_FileName('/opt/video/sample/video_file.mp4')
    request.set_Description('Video Description')
    // サムネイルURL。 例: http:// 192.168.0.0/16/tps/TB1qnJ1PVXXXXXCXXXXXXXXXXXX-700-700.png
    request.set_CoverURL('<あなたのカバーURL>')
    request.set_Tags('tag1,tag2')
    request.set_CateId (0)

    request.set_accept_format('JSON')
    response = json.loads(clt.do_action_with_exception (リクエスト))
    リターンレスポンス

トライ:
    clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
    uploadInfo = create_upload_video(clt)
    print(uploadInfo['UploadAuth'])
    print(json.dumps(uploadInfo, ensure_ascii=False, indent=4))

eとして例外を除いて:
    プリント (e)
    print(traceback.format_exc()) 

オーディオファイルまたはビデオをアップロードするための資格情報を更新する

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

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「RefreshUploadVideo」をご参照ください。 次のサンプルコードに例を示します。

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

トライ:
    clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
    uploadInfo = refresh_upload_video(clt、'VideoId')
    print(json.dumps(uploadInfo, ensure_ascii=False, indent=4))

eとして例外を除いて:
    プリント (e)
    print(traceback.format_exc()) 

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

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

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「CreateUploadImage」をご参照ください。 次のサンプルコードに例を示します。

から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))

トライ:
    clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
    imageInfo = create_upload_image(clt, 'cover', 'jpg')
    print(json.dumps(imageInfo, ensure_ascii=False, indent=4))

eとして例外を除いて:
    プリント (e)
    print(traceback.format_exc()) 

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

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

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「CreateUploadAttachedMedia」をご参照ください。 次のサンプルコードに例を示します。

から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("これはサンプルです");
    request.set_accept_format('JSON')
    return json.loads(clt.do_action_with_exception(request))

トライ:
    clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
    uploadInfo = create_upload_attached_media(clt)
    print(uploadInfo['UploadAuth'])
    print(json.dumps(uploadInfo, ensure_ascii=False, indent=4))

eとして例外を除いて:
    プリント (e)
    print(traceback.format_exc()) 

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

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

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「UploadMediaByURL」をご参照ください。 次のサンプルコードに例を示します。

からaliyunsdkvod.request.v20170321 import UploadMediaByURLRequest
インポートsys、urllib
def upload_media_by_url(clt):
    request = UploadMediaByURLRequest.UploadMediaByURLRequest()
    // ソースファイルのURL。 例: http:// example-bucket-**** .cn-shanghai.aliyuncs.com/sample1-****.mp4、およびhttp:// example-bucket-**** .cn-shanghai.aliyuncs.com/sample2-****.flv.
    urls = ["<your URL1>" 、
            "あなたのURL2"]
    # URLのエンコードとメタデータの追加
    uploadUrls = []
    uploadMetadatas = []
    urlsのurlのため:
        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_UploadURL (','.join(uploadUrls))
    request.set_UploadMetadatas(json.dumps(uploadMetadatas))

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

トライ:
    clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
    uploadInfo = upload_media_by_url(clt)
    print(uploadInfo['UploadJobs'])
    print(json.dumps(uploadInfo, ensure_ascii=False, indent=4))

eとして例外を除いて:
    プリント (e)
    print(traceback.format_exc()) 

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

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

この操作のリクエストパラメーターとレスポンスパラメーターの詳細については、「GetURLUploadInfos」をご参照ください。 次のサンプルコードに例を示します。

aliyunsdkvod.request.v20170321から
GetURLUploadInfosRequestをインポート
インポートsys、urllib
def get_url_upload_infos(clt):
    request = GetURLUploadInfosRequest。GetURLUploadInfosRequest()
    // ソースファイルのURL。 例: http:// 192.168.0.0/16/sample1-****.mp4、およびhttp:// 192.168.0.0/16/sample2-****.flv。
    urls = ["<your URL1>" 、
            "<your URL2>"]

    # URLをエンコードします。
    uploadUrls = []
    urlsのurlのため:
        sys.version_info[0] == 3の場合:
            encodeUrl = urllib.parse.quote(url)
        else:
            encodeUrl = urllib.quote(url)
        uploadUrls.append(encodeUrl)

    # ソースファイルのURL。 複数のURLはコンマ (,) で区切ります。
    request.set_UploadURL (','.join(uploadUrls))

    # アップロードジョブのID。
    # request.set_JobIds("jobId1,jobId2")

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

トライ:
    clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
    res = get_url_upload_infos(clt)
    print(res['NonExists'])
    print(json.dumps(res, ensure_ascii=False, indent=4))

eとして例外を除いて:
    プリント (e)
    print(traceback.format_exc()) 

メディア資産の登録

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

For more information about the request and response parameters of this operation, see RegisterMedia. 次のサンプルコードに例を示します。

からaliyunsdkvod.request.v20170321 import RegisterMediaRequest
def register_media(clt):
    request = RegisterMediaRequest.RegisterMediaRequest()
    metadatas = []
    // メディアファイルのOSS URL。 例: https:// 192.168.0.0/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))

トライ:
    clt = init_vod_client('<AccessKeyId>', '<AccessKeySecret>')
    registerInfo = register_media(clt)
    print(registerInfo['RegisteredMediaList'])
    print(registerInfo['FailedFileURLs'])
    print(json.dumps(registerInfo, ensure_ascii=False, indent=4))

eとして例外を除いて:
    プリント (e)
    print(traceback.format_exc())