ApsaraVideo VOD SDK'ları, medya yüklemeye yönelik çeşitli API işlemleri sunar. Bu API işlemlerini çağırarak medya dosyalarını ApsaraVideo VOD'a yükleyebilirsiniz. Bu konuda, Python için ApsaraVideo VOD SDK'sını kullanarak API işlemlerini çağırma ve medya dosyaları yükleme senaryoları ile örnek kodlar açıklanmaktadır.
Senaryolar
Bu konuda yalnızca yükleme kimlik bilgisi ve yükleme URL'si alma gibi API işlemlerinin çağrılmasına ilişkin örnekler sunulmaktadır. Medya dosyalarını yüklemek için API işlemlerinin çağrılabileceği senaryolar aşağıdaki tabloda açıklanmıştır.
API işlemi | Senaryo |
| |
| |
|
Önkoşullar
ApsaraVideo VOD SDK'sı yüklenmiştir. Daha fazla bilgi için bkz. Yükleme.
ApsaraVideo VOD SDK'sı başlatılmıştır. Daha fazla bilgi için bkz. Başlatma.
Aşağıdaki örneklerde, ApsaraVideo VOD SDK'sını başlatmak için bir AccessKey çifti kullanılır.
Kullanım notları
Bu konudaki tüm örneklerde, bir istemci örneğini başlatmak için AccessKey çifti kullanılır.
İstek ve yanıt parametrelerinin ayrıntıları için Alibaba Cloud OpenAPI Explorer adresini ziyaret edin ve API Documentations sekmesini açın.
Diğer API işlemlerine ilişkin SDK örnekleri için Alibaba Cloud OpenAPI Explorer adresini ziyaret edin. Parameters sekmesinde parametreleri belirtin ve çağrıyı başlatın. Ardından, kodu görüntülemek ve indirmek için SDK Sample Code sekmesinden SDK sürümünü ve dilini seçin.
Bu konudaki örnekler SDK V1.0 sürümünü kullanır. V2.0 örnekleri için OpenAPI Explorer'da doğru SDK sürümünü seçin.
API çağrı örnekleri
Medya dosyası yüklemek için URL ve kimlik bilgisi alma
Bir medya dosyası yüklemek için yükleme URL'si ve yükleme kimlik bilgisi almak amacıyla CreateUploadVideo işlemini çağırabilirsiniz.
Alibaba Cloud OpenAPI Explorer: CreateUploadVideo.
Örnek kod:
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())
Yükleme kimlik bilgisini güncelleme
Bir medya dosyası yüklemek için kullanılan kimlik bilgisini güncellemek amacıyla RefreshUploadVideo işlemini çağırabilirsiniz.
Alibaba Cloud OpenAPI Explorer: RefreshUploadVideo.
Örnek kod:
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())
Resim yüklemek için URL ve kimlik bilgisi alma
Bir resim yüklemek için URL ve kimlik bilgisi almak amacıyla CreateUploadImage işlemini çağırabilirsiniz.
Alibaba Cloud OpenAPI Explorer: CreateUploadImage.
Örnek kod:
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())
Yardımcı medya varlığı yüklemek için URL ve kimlik bilgisi alma
Bir yardımcı medya varlığı yüklemek için URL ve kimlik bilgisi almak amacıyla CreateUploadAttachedMedia işlemini çağırabilirsiniz.
Alibaba Cloud OpenAPI Explorer: CreateUploadAttachedMedia.
Örnek kod:
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())
Kaynak dosyaların URL'lerini kullanarak aynı anda birden çok medya dosyası yükleme
Kaynak dosyaların URL'lerini kullanarak aynı anda birden çok medya dosyası yüklemek için UploadMediaByURL işlemini çağırabilirsiniz.
Alibaba Cloud OpenAPI Explorer: UploadMediaByURL.
Örnek kod:
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 tabanlı yükleme işleri hakkında bilgi sorgulama
URL tabanlı yükleme işleri hakkında bilgi sorgulamak için GetURLUploadInfos işlemini çağırabilirsiniz.
Örnek kod:
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())
Medya varlıklarını kaydetme
Medya varlıklarını kaydetmek için RegisterMedia işlemini çağırabilirsiniz.
Alibaba Cloud OpenAPI Explorer: RegisterMedia.
Örnek kod:
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())