阿里云视频点播上传视频和获取视频播放地址

这篇具有很好参考价值的文章主要介绍了阿里云视频点播上传视频和获取视频播放地址。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考官方文档: Python上传SDK-普通文件上传、获取播放地址

本文只对上传视频和获取单个视频播放地址操作。更多案例如批量获取所有视频列表等操作请直接参考官方文档: 媒体管理

一、上传视频:上传完成后返回一个videoId参数,后续使用这个videoId获取视频播放地址

from voduploadsdk.AliyunVodUtils import *
from voduploadsdk.AliyunVodUploader import AliyunVodUploader
from voduploadsdk.UploadVideoRequest import UploadVideoRequest
import re

filePath = "F:/Download/新增红色视频/丹心映红六盘山——夜宿单家集探寻“红色密码”.mp4"

# print(filename.rindex('/'))
# print(filename[filename.rindex('/')+1: filename.index('.')])
filename = filePath[filePath.rindex('/')+1: filePath.index('.')]

# 测试上传本地音视频
def testUploadLocalVideo(accessKeyId, accessKeySecret, filePath, storageLocation=None):
    try:
        # 可以指定上传脚本部署的ECS区域。如果ECS区域和视频点播存储区域相同,则自动使用内网上传,上传更快且更省公网流量。
        # ecsRegionId ="cn-shanghai"
        # uploader = AliyunVodUploader(accessKeyId, accessKeySecret, ecsRegionId)
        # 不指定上传脚本部署的ECS区域。
        uploader = AliyunVodUploader(accessKeyId, accessKeySecret)
        uploadVideoRequest = UploadVideoRequest(filePath, filename)
        # 可以设置视频封面,如果是本地或网络图片可使用UploadImageRequest上传图片到视频点播,获取到ImageURL
        # ImageURL示例:https://example.com/sample-****.jpg
        # uploadVideoRequest.setCoverURL('<your Image URL>')
        # 标签
        # uploadVideoRequest.setTags('tag1,tag2')
        if storageLocation:
            uploadVideoRequest.setStorageLocation(storageLocation)
        videoId = uploader.uploadLocalVideo(uploadVideoRequest)
        print("file: %s, videoId: %s" % (uploadVideoRequest.filePath, videoId))

    except AliyunVodException as e:
        print(e)

testUploadLocalVideo('yourAccessKeyID', "yourAccessKeySecret", filePath)

将代码中的yourAccessKeyID和yourAccessSecret替换为自己阿里云主账号的AccessKeyID和AccessKeySecret或RAM 访问控制的用户的AccessKeyID和AccessKeySecret即可

二、根据videoId获取视频播放地址:在返回中的参数PlayURL即是播放地址

官方参数说明文档: GetPlayInfo接口说明

import json
import traceback
from aliyunsdkcore.client import AcsClient

def init_vod_client(accessKeyId, accessKeySecret):
    regionId = 'cn-shanghai'   # 点播服务接入地域
    connectTimeout = 3         # 连接超时,单位为秒
    return AcsClient(accessKeyId, accessKeySecret, regionId, auto_retry=True, max_retry_time=3, timeout=connectTimeout)

from aliyunsdkvod.request.v20170321 import GetPlayInfoRequest
def get_play_info(clt, videoId):
    request = GetPlayInfoRequest.GetPlayInfoRequest()
    request.set_accept_format('JSON')
    request.set_VideoId(videoId)
    request.set_AuthTimeout(3600*5)  # 设置播放地址的有效时间。单位:秒。
    response = json.loads(clt.do_action_with_exception(request))
    return response

try:

    clt = init_vod_client('yourAccessKeyID', "yourAccessKeySecret")
    playInfo = get_play_info(clt, '4aa4f9c0b73c71ed80110675a0ec0102')  # 第二个参数是videoID
    print(json.dumps(playInfo, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

将代码中的yourAccessKeyID和yourAccessSecret替换为自己阿里云主账号的AccessKeyID和AccessKeySecret或RAM 访问控制的用户的AccessKeyID和AccessKeySecret即可

注:如在上传或获取地址等操作时报错,可能是因为使用的RAM用户没有权限,去对该用户搜索添加相应的权限即可

阿里云视频点播上传视频和获取视频播放地址

三、还可以使用sts获取token后访问

1、通过RAM访问控制里创建的用户获取AccessKeyID和AccessKeySecret,创建的角色里获取ARN(之前发布的文章里有具体说明这些参数的获取方式,这里就不赘述了)

2、通过AccessKeyID、AccessKeySecret和ARN获取SecurityToken、STS的AccessKeyID和AccessKeySecret用来接下来的访问识别图片文字的接口

参考官方api:STS SDK概览、安全令牌的获取(请在API接口中填写必要的参数后复制代码即可)

from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdksts.request.v20150401.AssumeRoleRequest import AssumeRoleRequest

credentials = AccessKeyCredential('yourAccessKeyID', 'yourAccessSecret')
# use STS Token
# credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>')
client = AcsClient(region_id='cn-shanghai', credential=credentials)

request = AssumeRoleRequest()
request.set_accept_format('json')
policy_text = '{"Version": "1","Statement": [{"Action": "vod:*","Resource": "*","Effect": "Allow"}]}' # 策略
request.set_RoleArn("yourRoleArn")  # 在RAM访问控制中的角色里获取ARN
request.set_RoleSessionName("client")  # 任意写
request.set_Policy(policy_text)

response = client.do_action_with_exception(request)
# python2:  print(response)
print(str(response, encoding='utf-8'))

请将上面代码中的yourAccessKeyID、yourAccessKeySecret和yourRoleArn替换为第一步中获取的值即可

2,使用SecurityToken请求接口获取数据

import json
import traceback
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkvod.request.v20170321 import GetPlayInfoRequest
from aliyunsdkvod.request.v20170321 import CreateUploadVideoRequest


def init_vod_client(accessKeyId, accessKeySecret, securityToken):
    regionId = 'cn-shanghai'   # 点播服务接入地域
    connectTimeout = 3         # 连接超时,单位为秒
    credential = StsTokenCredential(accessKeyId, accessKeySecret, securityToken)
    return AcsClient(region_id=regionId, auto_retry=True, max_retry_time=3, timeout=connectTimeout, credential=credential)



def get_play_info(clt, videoId):
    request = GetPlayInfoRequest.GetPlayInfoRequest()
    request.set_accept_format('JSON')
    request.set_VideoId(videoId)
    request.set_AuthTimeout(3600*5)  
    response = json.loads(clt.do_action_with_exception(request))
    return response


try:
    clt = init_vod_client('yourAccessKeyID', 'yourAccessSecret', "yourSecurityToken")

    playInfo = get_play_info(clt, '20b87bd0b73e71ed801d0674a2ce0102')  # 第二个参数是videoID
    print(json.dumps(playInfo, ensure_ascii=False, indent=4))

except Exception as e:
    print(e)
    print(traceback.format_exc())

将上面代码中的yourAccessKeyID、yourAccessKeySecret和yourSecurityToken替换成第三步第2小步骤代码返回的SecurityToken、AccessKeyId和AccessKeySecret即可文章来源地址https://www.toymoban.com/news/detail-427412.html

到了这里,关于阿里云视频点播上传视频和获取视频播放地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot集成阿里云视频点播服务的过程记录

    在对接阿里云视频点播服务时,踩了不少的坑。特此记录阿里云视频点播服务的相关使用。 同时使用Spring Boot集成阿里云视频点播服务,对接其上传SDK、服务端SDK、播放器SDK,最终完成如下Demo演示。 视频点播(ApsaraVideo VoD,简称VoD)是集视频采集、编辑、上传、媒体资源管

    2023年04月21日
    浏览(39)
  • 腾讯云点播web端视频上传及其注意事项

    问题描述:项目组长让我们研究一下云点播的视频上传是如何实现的,于是我们就买了一个9.9元的新手包进行测试。结果测试了两天依然没办法在web端把视频上传到腾讯云上,查了很多资料还是不行,最后去找客服进行友好的交流 (对线) 之后才成功的解决了视频上传的问

    2023年04月08日
    浏览(45)
  • 视频推拉流平台EasyDSS点播文件播放请求添加token验证的实现方法

    EasyDSS视频直播点播平台可提供一站式的视频推拉流、转码、点播、直播、播放H.265编码视频等服务,搭配RTMP高清摄像头使用,可将设备的实时流推送到平台上,实现无人机视频推流直播等应用。今天我们来介绍下EasyDSS系统点播文件播放请求添加token验证的实现方法。 1)首先

    2024年02月04日
    浏览(36)
  • 谷粒学苑项目实战(十四):实现阿里云视频点播功能(java编码实现)

            视频点播(ApsaraVideo for VoD)是集音视频采集、编辑、上传、自动化转码处理、媒体资源管理、分发加速于一体的一站式音视频点播解决方案。          在阿里云产品中找到视频点播,开通。         选择按流量计费(小视频大概也就话几毛钱)         点击开

    2023年04月25日
    浏览(63)
  • CRMEB知识付费二次开发 加密阿里云视频MP4点播链接为m3u8格式 hls blob协议

    只有添加分发加速的域名才能使用HLS加密,同时也要做HTTPS证书添加,不然也会报错。 1、这是电脑端视频播放页面效果 2、这个手机端H5视频播放页面效果 3、在网站后台上传你的视频内容 4、上传完之后可以进行预览 5、在阿里云控制台设置就好自己的转码模板 将不转码设为

    2024年02月08日
    浏览(55)
  • 浅述HLS视频服务器EasyDarwin视频直播点播平台如何快速搭建一个视频点播系统

    EasyDarwin视频直播点播平台能实现视频流媒体的上传、转码、存储、录像、推拉流、直播、点播等功能,可兼容Windows、Android、iOS、Mac等操作系统,系统支持HTTP、HLS、RTMP等播出协议,具备较强的可拓展性与灵活性。 EasyDarwin的特点包括: 1.开源免费:EasyDarwin以开源的形式发布

    2024年02月20日
    浏览(46)
  • 腾讯云视频点播

      视频点播我去年写过一篇阿里云的,这次写腾讯云。   腾讯云点播(Video on Demand,VOD)基于腾讯多年技术积累与基础设施建设,为有音视频应用相关需求的客户提供包括音视频存储管理、音视频转码处理、音视频加速播放和音视频通信服务的一站式解决方案。   文

    2024年02月08日
    浏览(40)
  • 【开发】视频集中存储/直播点播平台EasyDSS点播文件分类功能优化

    视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 TSINGSEE青犀视频的EasyDSS平台具有点播文件分类展示方法,有两种实现方式可供用户

    2024年02月09日
    浏览(39)
  • 视频集中存储/直播点播平台EasyDSS点播文件分类功能新升级

    视频推拉流EasyDSS视频直播点播平台,集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体,可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 TSINGSEE青犀视频的EasyDSS平台具有点播文件分类展示方法,有两种实现方式可供用户

    2024年02月09日
    浏览(35)
  • Asp.net视频点播系统

    目录 1 Asp.net视频点播系统前端部分AddVideo 1.1 引用css文件 1.2 添加新影片 1.3 上传影片 Asp.net视频点播系统 前端部分 AddVideo %@ Page language=\\\"c#\\\" Codebehind=\\\"AddVideo.aspx.cs\\\" AutoEventWireup=\\\"false\\\" Inherits=\\\"Vod.AddVideo\\\" % !DOCTYPE HTML PUBLIC \\\"-//W3C//DTD HTML 4.0 Transitional//EN\\\" HTML HEAD titleShowUserOrders/title m

    2024年02月12日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包