Os SDKs do ApsaraVideo VOD oferecem diversas operações de API para upload de mídia. Chame essas operações para enviar arquivos de mídia ao ApsaraVideo VOD. Este tópico descreve os cenários de uso do SDK do ApsaraVideo VOD para Python na chamada de operações de API para upload de arquivos de mídia e fornece exemplos de código.
Cenários
Este tópico apresenta apenas exemplos de chamadas de operações de API, como a operação para obter uma credencial de upload e uma URL de upload. A tabela a seguir descreve os cenários em que é possível chamar operações de API para fazer upload de arquivos de mídia.
Operação de API | Cenário |
| |
| |
|
Pré-requisitos
SDK do ApsaraVideo VOD instalado. Para mais informações, consulte Instalação.
SDK do ApsaraVideo VOD inicializado. Para mais informações, consulte Inicialização.
Nos exemplos a seguir, usa-se um par de AccessKey para inicializar o SDK do ApsaraVideo VOD.
Observações de uso
Todos os exemplos deste tópico usam um par de AccessKey para inicializar uma instância de cliente.
Para detalhes sobre os parâmetros de solicitação e resposta, acesse o Alibaba Cloud OpenAPI Explorer e abra a aba API Documentations.
Para exemplos de SDK de outras operações de API, visite o Alibaba Cloud OpenAPI Explorer. Na aba Parameters, especifique os parâmetros e inicie a chamada. Em seguida, selecione a versão do SDK e a linguagem na aba SDK Sample Code para visualize e baixe o código.
Os exemplos neste tópico usam o SDK V1.0. Para exemplos da V2.0, selecione a versão correta do SDK no OpenAPI Explorer.

Exemplos de chamada de API
Obter uma URL e uma credencial para upload de arquivo de mídia
Chame a operação CreateUploadVideo para obter uma URL e uma credencial de upload de um arquivo de mídia.
Alibaba Cloud OpenAPI Explorer: CreateUploadVideo.
Exemplo de código:
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())
Atualize a credencial de upload
Chame a operação RefreshUploadVideo para atualize a credencial de upload de um arquivo de mídia.
Alibaba Cloud OpenAPI Explorer: RefreshUploadVideo.
Exemplo de código:
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())
Obter uma URL e uma credencial para upload de imagem
Chame a operação CreateUploadImage para obter uma URL e uma credencial para upload de imagem.
Alibaba Cloud OpenAPI Explorer: CreateUploadImage.
Exemplo de código:
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())
Obter uma URL e uma credencial para upload de ativo de mídia auxiliar
Chame a operação CreateUploadAttachedMedia para obter uma URL e uma credencial para upload de um ativo de mídia auxiliar.
Alibaba Cloud OpenAPI Explorer: CreateUploadAttachedMedia.
Exemplo de código:
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())
Fazer upload de vários arquivos de mídia simultaneamente usando URLs de arquivos de source
Chame a operação UploadMediaByURL para enviar múltiplos arquivos de mídia de uma só vez, utilizando as URLs dos arquivos de source.
Alibaba Cloud OpenAPI Explorer: UploadMediaByURL.
Exemplo de código:
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())
Consultar informações sobre jobs de upload por URL
Chame a operação GetURLUploadInfos para consultar informações sobre jobs de upload baseados em URL.
Exemplo de código:
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())
Registrar ativos de mídia
Chame a operação RegisterMedia para registrar ativos de mídia.
Alibaba Cloud OpenAPI Explorer: RegisterMedia.
Exemplo de código:
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())