腾讯云云点播播放器签名示例_音视频解决方案_同尘科技

云点播 2年前 (2023-07-14) 浏览 72

Python 签名示例

使用 pyjwt 库计算签名,请使用pip install pyjwt安装。

#!/usr/bin/python#coding=utf-8
import jwt
AppId = 1255566655FileId = "4564972818519602447"AudioVideoType = "RawAdaptive"RawAdaptiveDefinition = 10ImageSpriteDefinition = 10CurrentTime = 1546340400PsignExpire = 1546344000UrlTimeExpire = "5c2b5640"PlayKey = "TxtyhLlgo7J3iOADIron"
Original = { "appId": AppId, "fileId": FileId, "contentInfo": { "audioVideoType": AudioVideoType, "rawAdaptiveDefinition": RawAdaptiveDefinition, "imageSpriteDefinition": ImageSpriteDefinition }, "currentTimeStamp": CurrentTime, "expireTimeStamp": PsignExpire, "urlAccessInfo": { "t": UrlTimeExpire }}
Signature = jwt.encode(Original, PlayKey, algorithm='HS256')
print("Original: ", Original)print("Signature: ", Signature)

Java 签名示例

使用 java-jwt 库计算签名。

import java.util.*;import com.auth0.jwt.algorithms.Algorithm;import com.auth0.jwt.exceptions.JWTCreationException;import com.auth0.jwt.JWT;
class Main { public static void main(String[] args) { Integer AppId = 1255566655; String FileId = "4564972818519602447"; String AudioVideoType = "RawAdaptive"; Integer RawAdaptiveDefinition = 10; Integer ImageSpriteDefinition = 10; Integer CurrentTime = 1589448067; Integer PsignExpire = 1589548067; String UrlTimeExpire = "5ebe9423‬"; String PlayKey = "TxtyhLlgo7J3iOADIron"; HashMap urlAccessInfo = new HashMap(); urlAccessInfo.put("t", UrlTimeExpire); HashMap contentInfo = new HashMap(); contentInfo.put("audioVideoType", AudioVideoType); contentInfo.put("rawAdaptiveDefinition", RawAdaptiveDefinition); contentInfo.put("imageSpriteDefinition", ImageSpriteDefinition);
try { Algorithm algorithm = Algorithm.HMAC256(PlayKey); String token = JWT.create().withClaim("appId", AppId).withClaim("fileId", FileId) .withClaim("contentInfo", contentInfo) .withClaim("currentTimeStamp", CurrentTime).withClaim("expireTimeStamp", PsignExpire) .withClaim("urlAccessInfo", urlAccessInfo).sign(algorithm); System.out.println("token:" + token); } catch (JWTCreationException exception) { // Invalid Signing configuration / Couldn't convert Claims. } }}

Go 签名示例

使用 jwt-go 库计算签名,请使用命令go get github.com/dgrijalva/jwt-go进行安装。


package main
import ( "fmt" "time" "strconv" "github.com/dgrijalva/jwt-go")
func main() { appId := 1255566655 // 用户 appid fileId := "4564972818519602447" // 目标 FileId audioVideoType := "RawAdaptive" // 播放的音视频类型 rawAdaptiveDefinition := 10 // 允许输出的未加密的自适应码流模板 ID imageSpriteDefinition := 10 // 做进度条预览的雪碧图模板 ID currentTime := time.Now().Unix() psignExpire := currentTime + 3600 // 可任意设置过期时间,示例1h urlTimeExpire := strconv.FormatInt(psignExpire, 16) // 可任意设置过期时间,16进制字符串形式,示例1h playKey := []byte("TxtyhLlgo7J3iOADIron")
// Create a new token object, specifying signing method and the claims // you would like it to contain. token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{ "appId": appId, "fileId": fileId, "contentInfo": { "audioVideoType": audioVideoType, "rawAdaptiveDefinition": rawAdaptiveDefinition, "imageSpriteDefinition": imageSpriteDefinition, }, "currentTimeStamp": currentTime, "expireTimeStamp": psignExpire, "urlAccessInfo": map[string]string{ "t": urlTimeExpire, }, })
// Sign and get the complete encoded token as a string using the secret tokenString, err := token.SignedString(playKey)
fmt.Println(tokenString, err)}

C# 签名示例

使用 jose-jwt 计算签名,请使用 NuGet 命令Install-Package jose-jwt进行安装。

using System;using System.Text;using System.Collections.Generic;using Jose;
public class Program{ public static void Main() { var appId = 1255566655; // 用户 appid var fileId = "4564972818519602447"; // 目标 FileId var audioVideoType = "RawAdaptive"; // 播放的音视频类型 var rawAdaptiveDefinition = 10; // 允许输出的未加密的自适应码流模板 ID var imageSpriteDefinition = 10; // 做进度条预览的雪碧图模板 ID var currentTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); var psignExpire = currentTime + 3600; // 可任意设置过期时间,示例1h var urlTimeExpire = psignExpire.ToString("X4"); // 可任意设置过期时间,16进制形式,示例1h var playKey = "TxtyhLlgo7J3iOADIron"; var playKeyBytes = Encoding.ASCII.GetBytes(playKey); var payload = new Dictionary() { {"appId", appId}, {"fileId", fileId}, {"contentInfo", new Dictionary() { {"audioVideoType", audioVideoType}, {"rawAdaptiveDefinition", rawAdaptiveDefinition}, {"imageSpriteDefinition", imageSpriteDefinition} } }, {"currentTimeStamp", currentTime}, {"expireTimeStamp", psignExpire}, {"urlAccessInfo", new Dictionary() { {"t", urlTimeExpire} } } }; string token = Jose.JWT.Encode(payload, playKeyBytes, JwsAlgorithm.HS256); Console.WriteLine(token); }}

PHP 签名示例

使用 php-jwt 计算签名,请使用命令composer require firebase/php-jwt进行安装。

<?phprequire 'vendor/autoload.php';use \Firebase\JWT\JWT;
$appId = 1255566655; // 用户 appid$fileId = "4564972818519602447"; // 目标 FileId$audioVideoType = "RawAdaptive"; // 播放的音视频类型$rawAdaptiveDefinition = 10; // 允许输出的未加密的自适应码流模板 ID$imageSpriteDefinition = 10; // 进度条预览的雪碧图模板 ID$currentTime = time();$psignExpire = $currentTime + 3600; // 可任意设置过期时间,示例1h$urlTimeExpire = dechex($psignExpire); // 可任意设置过期时间,16进制字符串形式,示例1h$playKey = "TxtyhLlgo7J3iOADIron";
$payload = array( "appId" => $appId, "fileId" => $fileId, "contentInfo" => array( "audioVideoType"=> $audioVideoType, "rawAdaptiveDefinition"=> $rawAdaptiveDefinition, "imageSpriteDefinition"=> $imageSpriteDefinition ), "currentTimeStamp" => $currentTime, "expireTimeStamp" => $psignExpire, "urlAccessInfo" => array( "t" => $urlTimeExpire ));
$jwt = JWT::encode($payload, $playKey, 'HS256');print_r($jwt);?>

Node.js 签名示例

使用 jsonwebtoken 计算签名,请使用命令npm install jsonwebtoken进行安装。

var jwt = require('jsonwebtoken');
var appId = 1255566655 // 用户 appidvar fileId = "4564972818519602447" // 目标 FileIdvar audioVideoType = "RawAdaptive" // 播放的音视频类型var rawAdaptiveDefinition = 10 // 允许输出的未加密的自适应码流模板 IDvar imageSpriteDefinition = 10 // 做进度条预览的雪碧图模板 IDvar currentTime = Math.floor(Date.now()/1000)var psignExpire = currentTime + 3600 // 可任意设置过期时间,示例1hvar urlTimeExpire = psignExpire.toString(16) // 可任意设置过期时间,16进制字符串形式,示例1hvar playKey = 'TxtyhLlgo7J3iOADIron'
var payload = { appId: appId, fileId: fileId, contentInfo: { audioVideoType: audioVideoType, rawAdaptiveDefinition: rawAdaptiveDefinition, imageSpriteDefinition: imageSpriteDefinition }, currentTimeStamp: currentTime, expireTimeStamp: psignExpire, urlAccessInfo: { t: urlTimeExpire }}var token = jwt.sign(payload, playKey);console.log(token);



对音视频的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?