a329d4906b
- 方案文档: AVCC 体系建设、IPTV TCS 需求(0-req)/PRD(1-prd)/任务(2-task)/二三四期任务 - tcs-iptv: Go 后端(哈希SDK/MA码生成/可信数据空间mock/业务编排/HTTP API+HMAC鉴权) - web-console: React+AntD 监管大屏(角色工作台/全流程演示/监管片库) - 一剧一码+集级哈希, 集级下架/恢复, 全栈测试通过
71 lines
3.5 KiB
Bash
71 lines
3.5 KiB
Bash
#!/usr/bin/env bash
|
|
# 陕西 IPTV 场景演示数据:造若干条内容,跑通"送审→发码→审核→入库→发布→注入"。
|
|
#
|
|
# 参与方设定:
|
|
# 管理方(审核+监管):陕西IPTV运营公司(机构节点 6101)
|
|
# 内容提供商(CP):西安曲江丝路文化传播 / 陕文投艺达影视 / 西部电影集团(西影)
|
|
# 运营商:中国电信陕西(天翼高清) / 中国移动陕西(魔百和) / 中国联通陕西
|
|
set -e
|
|
BASE="http://localhost:8080/api/v1"
|
|
|
|
sign() { printf '%s\n%s' "$2" "$3" | openssl dgst -sha256 -hmac "$1" -binary | base64; }
|
|
call() { # key secret method path body
|
|
local key="$1" secret="$2" method="$3" path="$4" body="$5"
|
|
local sig; sig=$(sign "$secret" "$method" "/api/v1${path%%\?*}")
|
|
if [ "$method" = "GET" ]; then
|
|
curl -s -X GET "$BASE$path" -H "Authorization: TCS $key:$sig"
|
|
else
|
|
curl -s -X "$method" "$BASE$path" -H "Authorization: TCS $key:$sig" \
|
|
-H "Content-Type: application/json" -d "$body"
|
|
fi
|
|
}
|
|
field() { echo "$1" | sed -n "s/.*\"$2\":\"\([^\"]*\)\".*/\1/p"; }
|
|
|
|
# 一条内容完整流转:title category fhash cp_id cp_name op_id op_name cdn
|
|
flow() {
|
|
local title="$1" cat="$2" fh="$3" cpid="$4" cpname="$5" opid="$6" opname="$7" cdn="$8"
|
|
echo ">>> [$title] CP=$cpname"
|
|
local reg; reg=$(call ak-cp sk-cp POST /content/register \
|
|
"{\"title\":\"$title\",\"episode_count\":24,\"category\":\"$cat\",\"file_sha256\":\"$fh\",\"merkle_root\":\"mr-$fh\",\"perceptual_hash\":\"ph-$fh\",\"cp_media_id\":\"$cpid\",\"cp_name\":\"$cpname\"}")
|
|
local rid ctid; rid=$(field "$reg" review_id); ctid=$(field "$reg" content_twin_id)
|
|
|
|
# CSPS 合规审核(发码前)
|
|
call ak-reviewer sk-reviewer POST /content/csps-result \
|
|
"{\"review_id\":\"$rid\",\"approved\":true,\"reviewer_id\":\"sxiptv-审核员01\"}" >/dev/null
|
|
|
|
# 审核通过后发码签发
|
|
local iss; iss=$(call ak-regulator sk-regulator POST /content/issue \
|
|
"{\"review_id\":\"$rid\",\"issuer\":\"陕西IPTV运营公司\"}")
|
|
local ma cert; ma=$(field "$iss" ma_code); cert=$(field "$iss" certificate)
|
|
echo " MA码: $ma"
|
|
|
|
call ak-reviewer sk-reviewer POST /content/ingest \
|
|
"{\"ma_code\":\"$ma\",\"content_twin_id\":\"$ctid\",\"media_asset_id\":\"SXMEDIA-$fh\",\"lib_name\":\"陕西IPTV媒体资源库\"}" >/dev/null
|
|
call ak-reviewer sk-reviewer POST /content/publish \
|
|
"{\"ma_code\":\"$ma\",\"certificate\":\"$cert\"}" >/dev/null
|
|
local inj; inj=$(call ak-operator sk-operator POST /content/inject \
|
|
"{\"content_twin_id\":\"$ctid\",\"ma_code\":\"$ma\",\"file_sha256\":\"$fh\",\"operator_id\":\"$opid\",\"cdn_endpoint\":\"$cdn\"}")
|
|
echo " 运营商: $opname 注入: $(field "$inj" distribution_id)"
|
|
echo "$ma" >> /tmp/tcs_demo_macodes.txt
|
|
}
|
|
|
|
: > /tmp/tcs_demo_macodes.txt
|
|
|
|
flow "长安少年行" WD "fh-changan-001" \
|
|
"XAQJSL-2026-001" "西安曲江丝路文化传播有限公司" \
|
|
"CT-SX-IPTV" "中国电信陕西公司(天翼高清)" "cdn://ct-sx/iptv/vod/changan001"
|
|
|
|
flow "白鹿原·麦客" WJ "fh-bailuyuan-002" \
|
|
"SWTYD-2026-007" "陕文投艺达影视有限公司" \
|
|
"CM-SX-IPTV" "中国移动陕西公司(魔百和)" "cdn://cm-sx/iptv/vod/bailuyuan002"
|
|
|
|
flow "丝路驼铃" DY "fh-silu-003" \
|
|
"XIYING-2026-015" "西部电影集团(西影视频)" \
|
|
"CU-SX-IPTV" "中国联通陕西公司" "cdn://cu-sx/iptv/vod/silu003"
|
|
|
|
echo ""
|
|
echo "=== 已生成 MA 码(可复制到监管大屏查询)==="
|
|
cat /tmp/tcs_demo_macodes.txt
|
|
echo ""
|
|
echo "提示:在 http://localhost:5174 输入上述任一 MA 码查询全链路三方映射。"
|