You need to enable JavaScript to run this app.
导航

媒资播放

最近更新时间2023.10.13 17:01:59

首次发布时间2021.02.23 10:42:40

本文为您提供了服务端 Python SDK 的媒资播放模块相关的 API 调用示例。主要包含:签发 PlayAuthToken、获取播放地址等。

初始化

使用前请先完成初始化,参考初始化

签发 PlayAuthToken

由 App/Web Server 持有的 AK/SK 在本地签出,不依赖外网。若希望同时生成多个PlayAuthToken,您可以循环调用生成方法。PlayAuthToken用于客户端播放,详见客户端播放

# coding:utf-8
from __future__ import print_function

from volcengine.vod.VodService import VodService
from volcengine.vod.models.request.request_vod_pb2 import VodGetPlayInfoRequest

if __name__ == '__main__':

    vod_service = VodService()
    # call below method if you dont set ak and sk in $HOME/.vcloud/config
    vod_service.set_ak('your ak')
    vod_service.set_sk('your sk')
    try:
        vid = 'your vid'
        req = VodGetPlayInfoRequest()
        req.Vid = vid
        expire = 60  # seconds
        resp = vod_service.get_play_auth_token(req, expire)
    except Exception:
        raise
    else:
        print(resp)
   

获取播放地址

接口请求参数和返回参数详见 OpenAPI:获取播放地址

# coding:utf-8
from __future__ import print_function

from volcengine.vod.VodService import VodService
from volcengine.vod.models.request.request_vod_pb2 import VodGetPlayInfoRequest

if __name__ == '__main__':
    vod_service = VodService()
    # call below method if you dont set ak and sk in $HOME/.vcloud/config
    # vod_service.set_ak('ak')
    # vod_service.set_sk('sk')
    try:
        vid = 'your vid'
        req = VodGetPlayInfoRequest()
        req.Vid = vid
        req.Ssl = '1'
        req.NeedOriginal = '1'
        req.UnionInfo = 'your unionInfo'
        resp = vod_service.get_play_info(req)
    except Exception:
        raise
    else:
        print(resp)
        if resp.ResponseMetadata.Error.Code == '':
            print(resp.Result.PlayInfoList[0].MainPlayUrl)
        else:
            print(resp.ResponseMetadata.Error)

签发私有 DRM 加密 AuthToken

PrivateDrmAuthToken由 App/Web Server 持有的 Ak/Sk 在本地签出,不依赖外网。若希望同时生成多个PrivateDrmAuthToken,您可以循环调用生成方法。PrivateDrmAuthToken用于 Web 客户端播放视频点播自研 DRM 加密音视频,详情可参见客户端播放

说明

在 Web 端播放时,调用 GetPrivateDrmAuthToken 生成方法,需要指定参数 DrmType 取值为 webdevice

# coding:utf-8
from __future__ import print_function

from volcengine.vod.VodService import VodService
from volcengine.vod.models.request.request_vod_pb2 import VodGetPrivateDrmPlayAuthRequest

if __name__ == '__main__':

    vod_service = VodService()
    # call below method if you dont set ak and sk in $HOME/.vcloud/config
    vod_service.set_ak('your ak')
    vod_service.set_sk('your sk')
    try:
        vid = 'your vid'
        req = VodGetPrivateDrmPlayAuthRequest()
        req.Vid = vid
        req.DrmType = 'your drm type'
        req.PlayAuthIds = 'a,b,c (your PlayAuthIds)'
        req.UnionInfo = 'your unionInfo'
        expire = 60  # seconds
        resp = vod_service.get_private_drm_play_auth_token(req, expire)
    except Exception:
        raise
    else:
        print(resp)

签发 HlS 标准加密 AuthToken

由 App/Web Server 持有的 AK/SK 在本地签出,不依赖外网。若希望同时生成多个 Sha1HlsDrmAuthToken,您可以循环调用生成方法。Sha1HlsDrmAuthToken 用于 Web 客户端播放 HlS 加密音视频,详见客户端播放

# coding:utf-8
from __future__ import print_function

from volcengine.vod.VodService import VodService

if __name__ == '__main__':

    vod_service = VodService()
    # call below method if you dont set ak and sk in $HOME/.vcloud/config
    vod_service.set_ak('your ak')
    vod_service.set_sk('your sk')
    try:
        expireSeconds = 60000
        resp = vod_service.get_sha1_hls_drm_auth_token(expireSeconds)
    except Exception:
        raise
    else:
        print(resp)