124 lines
5.9 KiB
Python
124 lines
5.9 KiB
Python
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
# This file is auto-generated, don't edit it. Thanks.
|
|||
|
|
import sys
|
|||
|
|
|
|||
|
|
from typing import List
|
|||
|
|
from Tea.core import TeaCore
|
|||
|
|
|
|||
|
|
from alibabacloud_vod20170321.client import Client as Vod20170321Client
|
|||
|
|
from alibabacloud_tea_openapi import models as open_api_models
|
|||
|
|
from alibabacloud_darabonba_env.client import Client as EnvClient
|
|||
|
|
from alibabacloud_vod20170321 import models as vod_20170321_models
|
|||
|
|
from alibabacloud_tea_console.client import Client as ConsoleClient
|
|||
|
|
from alibabacloud_tea_util.client import Client as UtilClient
|
|||
|
|
|
|||
|
|
|
|||
|
|
class Sample:
|
|||
|
|
"""
|
|||
|
|
write your Darabonba code here...
|
|||
|
|
"""
|
|||
|
|
def __init__(self):
|
|||
|
|
pass
|
|||
|
|
|
|||
|
|
@staticmethod
|
|||
|
|
def init_vod_client(
|
|||
|
|
access_key_id: str,
|
|||
|
|
access_key_secret: str,
|
|||
|
|
region_id: str,
|
|||
|
|
) -> Vod20170321Client:
|
|||
|
|
"""
|
|||
|
|
使用AK&SK初始化账号Client
|
|||
|
|
"""
|
|||
|
|
config = open_api_models.Config()
|
|||
|
|
config.access_key_id = access_key_id
|
|||
|
|
config.access_key_secret = access_key_secret
|
|||
|
|
config.region_id = region_id
|
|||
|
|
return Vod20170321Client(config)
|
|||
|
|
|
|||
|
|
@staticmethod
|
|||
|
|
def main(
|
|||
|
|
args: List[str],
|
|||
|
|
) -> None:
|
|||
|
|
client = Sample.init_vod_client('LTAI5tSJ62TLMUb4SZuf285A', 'MWYynm30filZ7x0HqSHlU3pdLVNeI7', args[0])
|
|||
|
|
# 1.获取视频上传地址和凭证,并生成视频信息
|
|||
|
|
create_upload_video_request = vod_20170321_models.CreateUploadVideoRequest(
|
|||
|
|
title=args[1],
|
|||
|
|
file_name=args[2]
|
|||
|
|
)
|
|||
|
|
create_upload_video_response = client.create_upload_video(create_upload_video_request)
|
|||
|
|
ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(create_upload_video_response)))
|
|||
|
|
# 媒体id
|
|||
|
|
upload_video_id = create_upload_video_response.body.video_id
|
|||
|
|
ConsoleClient.log(upload_video_id)
|
|||
|
|
# 如果视频文件过大,上传超时后可以刷新视频凭证,然后继续上传
|
|||
|
|
refresh_upload_video_request = vod_20170321_models.RefreshUploadVideoRequest(
|
|||
|
|
video_id=upload_video_id
|
|||
|
|
)
|
|||
|
|
refresh_upload_video_reponse = client.refresh_upload_video(refresh_upload_video_request)
|
|||
|
|
ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(refresh_upload_video_reponse)))
|
|||
|
|
# # 2.oss视频文件上传,需要用户实现
|
|||
|
|
# # 3.上传过程中,获取媒体上传详情
|
|||
|
|
# get_upload_details_request = vod_20170321_models.GetUploadDetailsRequest(
|
|||
|
|
# media_ids=upload_video_id
|
|||
|
|
# )
|
|||
|
|
# get_upload_details_reponse = client.get_upload_details(get_upload_details_request)
|
|||
|
|
# ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(get_upload_details_reponse)))
|
|||
|
|
# # 4.媒体上传完成之后,可以获取媒体播放信息进行播放
|
|||
|
|
# # 4.1 通过播放凭证播放
|
|||
|
|
# get_play_info_request = vod_20170321_models.GetPlayInfoRequest(
|
|||
|
|
# video_id=upload_video_id
|
|||
|
|
# )
|
|||
|
|
# get_play_info_reponse = client.get_play_info(get_play_info_request)
|
|||
|
|
# ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(get_play_info_reponse)))
|
|||
|
|
# # 4.2 通过播放地址播放
|
|||
|
|
# get_video_play_auth_request = vod_20170321_models.GetVideoPlayAuthRequest(
|
|||
|
|
# video_id=upload_video_id
|
|||
|
|
# )
|
|||
|
|
# get_video_play_auth_reponse = client.get_video_play_auth(get_video_play_auth_request)
|
|||
|
|
# ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(get_video_play_auth_reponse)))
|
|||
|
|
|
|||
|
|
@staticmethod
|
|||
|
|
async def main_async(
|
|||
|
|
args: List[str],
|
|||
|
|
) -> None:
|
|||
|
|
client = Sample.init_vod_client(EnvClient.get_env('ACCESS_KEY_ID'), EnvClient.get_env('ACCESS_KEY_SECRET'), args[0])
|
|||
|
|
# 1.获取视频上传地址和凭证,并生成视频信息
|
|||
|
|
create_upload_video_request = vod_20170321_models.CreateUploadVideoRequest(
|
|||
|
|
title=args[1],
|
|||
|
|
file_name=args[2]
|
|||
|
|
)
|
|||
|
|
create_upload_video_response = await client.create_upload_video_async(create_upload_video_request)
|
|||
|
|
ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(create_upload_video_response)))
|
|||
|
|
# 媒体id
|
|||
|
|
upload_video_id = create_upload_video_response.body.video_id
|
|||
|
|
ConsoleClient.log(upload_video_id)
|
|||
|
|
# 如果视频文件过大,上传超时后可以刷新视频凭证,然后继续上传
|
|||
|
|
refresh_upload_video_request = vod_20170321_models.RefreshUploadVideoRequest(
|
|||
|
|
video_id=upload_video_id
|
|||
|
|
)
|
|||
|
|
refresh_upload_video_reponse = await client.refresh_upload_video_async(refresh_upload_video_request)
|
|||
|
|
ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(refresh_upload_video_reponse)))
|
|||
|
|
# 2.oss视频文件上传,需要用户实现
|
|||
|
|
# 3.上传过程中,获取媒体上传详情
|
|||
|
|
get_upload_details_request = vod_20170321_models.GetUploadDetailsRequest(
|
|||
|
|
media_ids=upload_video_id
|
|||
|
|
)
|
|||
|
|
get_upload_details_reponse = await client.get_upload_details_async(get_upload_details_request)
|
|||
|
|
ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(get_upload_details_reponse)))
|
|||
|
|
# 4.媒体上传完成之后,可以获取媒体播放信息进行播放
|
|||
|
|
# 4.1 通过播放凭证播放
|
|||
|
|
get_play_info_request = vod_20170321_models.GetPlayInfoRequest(
|
|||
|
|
video_id=upload_video_id
|
|||
|
|
)
|
|||
|
|
get_play_info_reponse = await client.get_play_info_async(get_play_info_request)
|
|||
|
|
ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(get_play_info_reponse)))
|
|||
|
|
# 4.2 通过播放地址播放
|
|||
|
|
get_video_play_auth_request = vod_20170321_models.GetVideoPlayAuthRequest(
|
|||
|
|
video_id=upload_video_id
|
|||
|
|
)
|
|||
|
|
get_video_play_auth_reponse = await client.get_video_play_auth_async(get_video_play_auth_request)
|
|||
|
|
ConsoleClient.log(UtilClient.to_jsonstring(TeaCore.to_map(get_video_play_auth_reponse)))
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__ == '__main__':
|
|||
|
|
Sample.main(['cn-shanghai', "/home/thsw/chenyukun/video/111111.mp4", "/home/thsw/chenyukun/video/111111.mp4"])
|