ApsaraVideo VODサーバーは、メディアアップロードのためのさまざまなAPI操作を提供します。 これらのAPIのいずれかを呼び出すことで、メディアファイルをApsaraVideo VODにアップロードできます。 このトピックでは、Python用のサーバー操作SDKを使用してこれらのAPI操作を呼び出すシナリオについて説明し、サンプルコードを提供します。
シナリオ
このトピックでは、URLを取得する操作やメディアファイルをアップロードするための資格情報など、API操作を呼び出すサンプルコードのみを提供します。 操作を使用できるシナリオの詳細については、次の表を参照してください。
操作 | シナリオ |
---|---|
| |
| |
|
前提条件
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())