CITV 开放文档
EventHub

CITV 开放接口

CITV 开放给客户的业务接口定义与接入说明

CITV 开放接口

本文档定义了 CITV 向客户开放的合规业务接口,用于商户注册、内容管理等场景。

一、接口概要

1. 接口调用方

  • 客户方调用 CITV 开放的接口
  • 调用前需完成身份认证和授权

2. 接口地址 BaseUrl

由 CITV 提供正式环境地址

范例:https://eh.citv.cc/api/v2

3. 接口一览

名称接口请求方式说明
商户注册/biz/merchants/registerPOSTSaaS 化商户注册接口

二、签名规则

1. 签名生成方式

按照固定格式拼接以下参数生成签名源串:

  • key - CITV 颁发的接口密钥(Secret),由 CITV 在分配 appid 时一并提供
  • t - 当前时间戳(Unix 时间戳,秒级,10 位数字)

签名源串拼接格式:

key + t

签名源串示例:

citv_secret_abc1231744567890

对签名源串进行 MD5 加密处理:

  • 将源串转换为 UTF-8 字节数组
  • 使用 MD5 算法计算哈希值
  • 将哈希值转换为 16 进制字符串表示(小写)

TypeScript 示例

import crypto from "crypto";

/**
 * 生成 CITV 开放接口请求签名
 * @param key - CITV 颁发的接口密钥
 * @param timestamp - 当前时间戳(秒级)
 * @returns 签名值(32 位小写十六进制字符串)
 */
function generateSign(key: string, timestamp: number): string {
  // 拼接签名源串:key + t
  const signString = `${key}${timestamp}`;
  
  // 计算 MD5 并转换为小写十六进制字符串
  return crypto
    .createHash("md5")
    .update(signString, 'utf8')
    .digest("hex")
    .toLowerCase();
}

// 使用示例
const key = "citv_secret_abc123";
const timestamp = Math.floor(Date.now() / 1000); // 秒级时间戳
const sign = generateSign(key, timestamp);

2. 请求说明

请求时需在请求体中携带 signt 字段:

  • sign - 签名值,sign = MD5(key + t)
  • t - 当前时间戳(秒级,10 位数字)

3. 错误处理

当鉴权失败时,服务端会返回统一格式的错误响应:

{
  "success": false,
  "message": "错误描述",
  "code": "错误码"
}

常见错误码说明:

错误码说明
INVALID_APPIDappid 无效或不存在
INVALID_SIGN签名验证失败
INVALID_PARAMETER请求参数错误
SERVER_ERROR服务器内部错误

三、接口列表

1. SaaS 化商户注册接口

描述: 用于在 CITV 平台注册,修改 SaaS 化商户,调用成功后可获得商户最新的 contentId

请求方式: POST

请求路径: /biz/merchants/register

请求参数

参数名类型必填描述
appidstring应用唯一标识,由 CITV 分配
providerstring云服务商类型:
tx = 腾讯云
volc = 火山引擎
volc-saas = 火山引擎 SaaS 化直播
merchantIdstring商户唯一标识
akstring云服务商的 Access Key
skstring云服务商的 Secret Key
tnumber当前时间戳(Unix 时间戳,秒级,10 位数字),用于签名验证
signstring请求签名,sign = MD5(key + t),其中 key 为 CITV 颁发给该 appid 的接口密钥,t 为当前时间戳(秒级)

签名生成

本接口使用统一的签名算法,详见「二、签名规则」。

请求示例

{
  "appid": "app_1234567890",
  "provider": "volc-saas",
  "merchantId": "mch_1234567890",
  "ak": "your_access_key",
  "sk": "your_secret_key",
  "t": 1744567890,
  "sign": "生成的签名值"
}

响应参数

参数名类型描述
contentIdstring商户最新 ContentId,由 CITV 颁发,用于转发火山引擎 SaaS 直播时 providers[].contentId 的携带
createdAtstring注册时间(ISO 8601 格式)

响应示例

{
  "isok": true,
  "msg": "",
  "code": 0,
  "dataObj": {
    "contentId": "83633_394_h5_mix",
    "createdAt": "2026-04-13T10:00:00.000Z"
  }
}

注意事项

  1. 调用时机:每次商户新增或修改时都需要调用「商户注册接口」
  2. AK/SK 保留:旧的 aksk 会保留,用以查询相关 VOD 等录像服务
  3. contentId 使用:每次火山引擎 SaaS 商户开播的消息中需要携带 contentId
  4. 每次注册都会颁发新的 contentId

On this page