python --阿里云(智能媒体管理/视频点播)

2024-03-18 06:20

本文主要是介绍python --阿里云(智能媒体管理/视频点播),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智能媒体服务获取token

# alibabacloud_imm20200930==4.1.0
class Sample(object):'''智能媒体服务'''def __init__(self):self.access_key = '111'self.key_secret = '222'def weboffice_permission(self):return imm_20200930_models.WebofficePermission(rename=False,readonly=True,history=False,print=False,export=False,copy=False)def create_client(self) -> imm20200930Client:"""使用AK&SK初始化账号Client"""config = open_api_models.Config(access_key_id=self.access_key, access_key_secret=self.key_secret)config.endpoint = f'imm.cn-beijing.aliyuncs.com'return imm20200930Client(config)def get_token(self, filename):'''获取凭证'''client = self.create_client()generate_weboffice_token_request = imm_20200930_models.GenerateWebofficeTokenRequest(project_name='edg',source_uri=f'oss://fileedg/{filename}',permission=self.weboffice_permission())runtime = util_models.RuntimeOptions()try:response = client.generate_weboffice_token_with_options(generate_weboffice_token_request, runtime).bodylogger.debug(f'获取凭证:【{response}】')response = dict({'code': 0, 'msg': 'success'}, **eval(str(response)))except Exception as error:logger.error(f'{error}')response = {'code': 500, 'msg': f'{error}'}return responsedef refresh_token(self, access_token, refresh_token):'''刷新token'''client = self.create_client()refresh_weboffice_token_request = imm_20200930_models.RefreshWebofficeTokenRequest(project_name='edg',access_token=access_token,refresh_token=refresh_token)runtime = util_models.RuntimeOptions()try:response = not client.refresh_weboffice_token_with_options(refresh_weboffice_token_request, runtime).bodylogger.debug(f'刷新凭证:【{response}】')response = dict({'code': 0, 'msg': 'success'}, **eval(str(response)))except Exception as error:logger.error(f'{error}')response = {'code': 500, 'msg': f'{error}'}return response

视频点播

获取凭证

# https://help.aliyun.com/zh/vod/developer-reference/api-vod-2017-03-21-refreshuploadvideo?spm=a2c4g.11186623.0.0.5b4e3c94BxaDxH
class VideoDianBo(object):'''视频点播'''def __init__(self):self.access_key = '111'self.key_secret = '222'def create_client(self) -> vod20170321Client:'''初始化对象'''config = open_api_models.Config(access_key_id=self.access_key, access_key_secret=self.key_secret)config.endpoint = f'vod.cn-shanghai.aliyuncs.com'return vod20170321Client(config)def createuploadvideo(self, filename: str, title: str):'''获取音视频上传地址和凭证@params  filename --> 文件名;@params  title    --> 标题;'''client = self.create_client()create_upload_video_request = vod_20170321_models.CreateUploadVideoRequest(file_name=filename, title=title)runtime = util_models.RuntimeOptions()try:result = client.create_upload_video_with_options(create_upload_video_request, runtime).body.to_map()logger.debug(f'视频点播获取上传凭证:【{result}】')return resultexcept Exception as error:return {'error': error}def refreshuploadvideo(self, video_id):'''刷新音视频上传地址和凭证@params  video_id  --> 视频id;'''client = self.create_client()refresh_upload_video_request = vod_20170321_models.RefreshUploadVideoRequest(video_id=video_id)runtime = util_models.RuntimeOptions()try:result = client.refresh_upload_video_with_options(refresh_upload_video_request, runtime).body.to_map()logger.debug(f'视频点播刷新上传凭证:【{result}】')return resultexcept Exception as error:return {'error': error}def play_info(self, video_id):'''根据视频id获取播放链接'''client = self.create_client()get_play_info_request = vod_20170321_models.GetPlayInfoRequest(video_id=video_id)runtime = util_models.RuntimeOptions()try:result = client.get_play_info_with_options(get_play_info_request, runtime).body.to_map()logger.debug(f'视频点播获取播放链接:【{result}】')return resultexcept Exception as error:return {'error': error}def delete_video(self, video_ids):'''删除点播中完整视频(获取凭证后会产生记录)@params video_ids --> 视频id;'''client = self.create_client()delete_video_request = vod_20170321_models.DeleteVideoRequest(video_ids=video_ids)runtime = util_models.RuntimeOptions()try:result = client.delete_video_with_options(delete_video_request, runtime).body.to_map()logger.debug(f'删除点播视频:【{result}】')return resultexcept Exception as error:return {'error': error}def get_video_infos(self, video_ids: str):'''批量查询视频信息@params  video_ids  --> 视频id;多个id用英文逗号分割;'''client = self.create_client()get_video_infos_request = vod_20170321_models.GetVideoInfosRequest(video_ids=video_ids)runtime = util_models.RuntimeOptions()try:result = client.get_video_infos_with_options(get_video_infos_request, runtime).body.to_map()logger.debug(f'获取视频信息:【{result}】')return resultexcept Exception as error:return {'error': error}

服务端分片上传

# 测试上传本地音视频
def testUploadLocalVideo(accessKeyId, accessKeySecret, filePath, storageLocation=None):try:# 可以指定上传脚本部署的ECS区域。如果ECS区域和视频点播存储区域相同,则自动使用内网上传,上传更快且更省公网流量。ecsRegionId ="cn-beijing"uploader = AliyunVodUploader(accessKeyId, accessKeySecret, ecsRegionId)uploadVideoRequest = UploadVideoRequest(filePath, 'exampleTitle')if storageLocation:uploadVideoRequest.setStorageLocation(storageLocation)videoId = uploader.uploadLocalVideo(uploadVideoRequest)print("file: %s, videoId: %s" % (uploadVideoRequest.filePath, videoId))except AliyunVodException as e:print(e)
accessKeyId = '111'
accessKeySecret = '22'localFilePath = r'D:\Users\11.MP4'
testUploadLocalVideo(accessKeyId, accessKeySecret, localFilePath)

这篇关于python --阿里云(智能媒体管理/视频点播)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/821444

相关文章

使用Redis实现会话管理的示例代码

《使用Redis实现会话管理的示例代码》文章介绍了如何使用Redis实现会话管理,包括会话的创建、读取、更新和删除操作,通过设置会话超时时间并重置,可以确保会话在用户持续活动期间不会过期,此外,展示了... 目录1. 会话管理的基本概念2. 使用Redis实现会话管理2.1 引入依赖2.2 会话管理基本操作

Python自动化提取多个Word文档的文本

《Python自动化提取多个Word文档的文本》在日常工作和学习中,我们经常需要处理大量的Word文档,本文将深入探讨如何利用Python批量提取Word文档中的文本内容,帮助你解放生产力,感兴趣的小... 目录为什么需要批量提取Word文档文本批量提取Word文本的核心技术与工具安装 Spire.Doc

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

Python容器转换与共有函数举例详解

《Python容器转换与共有函数举例详解》Python容器是Python编程语言中非常基础且重要的概念,它们提供了数据的存储和组织方式,下面:本文主要介绍Python容器转换与共有函数的相关资料,... 目录python容器转换与共有函数详解一、容器类型概览二、容器类型转换1. 基本容器转换2. 高级转换示

使用Python将PDF表格自动提取并写入Word文档表格

《使用Python将PDF表格自动提取并写入Word文档表格》在实际办公与数据处理场景中,PDF文件里的表格往往无法直接复制到Word中,本文将介绍如何使用Python从PDF文件中提取表格数据,并将... 目录引言1. 加载 PDF 文件并准备 Word 文档2. 提取 PDF 表格并创建 Word 表格

使用Python实现局域网远程监控电脑屏幕的方法

《使用Python实现局域网远程监控电脑屏幕的方法》文章介绍了两种使用Python在局域网内实现远程监控电脑屏幕的方法,方法一使用mss和socket,方法二使用PyAutoGUI和Flask,每种方... 目录方法一:使用mss和socket实现屏幕共享服务端(被监控端)客户端(监控端)方法二:使用PyA

Python列表的创建与删除的操作指南

《Python列表的创建与删除的操作指南》列表(list)是Python中最常用、最灵活的内置数据结构之一,它支持动态扩容、混合类型、嵌套结构,几乎无处不在,但你真的会创建和删除列表吗,本文给大家介绍... 目录一、前言二、列表的创建方式1. 字面量语法(最常用)2. 使用list()构造器3. 列表推导式

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处