做直播的朋友常遇到一个问题:每次开播前都要手动点开平台后台,填标题、选标签、上传封面、设置简介……一通操作下来,人还没开播,手先累了。其实,很多主流直播平台(比如斗鱼、B站、抖音直播开放平台)都支持通过 API 批量操作,其中「标签开播」就是最实用的功能之一——用脚本提前写好标签逻辑,一键触发开播,连带打上精准分类标签,省时又专业。
为什么非得写标签开播脚本?
举个例子:你固定每周三晚8点直播《英雄联盟》高分段复盘,但每次开播都手动输「LOL、电竞、教学、高端局」这四个标签,容易漏掉、顺序错乱,甚至某次误点成「单机、怀旧、RPG」,结果流量全跑偏。而脚本可以按规则自动匹配:检测到标题含「LOL」「英雄联盟」就打电竞类标签;含「教学」「复盘」「技巧」就加内容类标签;时间在周三20:00–22:00就追加「周更固定」标签——逻辑清晰,永不手抖。
基础脚本长啥样?以B站直播为例
B站开放平台提供 /xlive/web-room/v1/index/startLive 接口,需携带登录态 cookie 和 CSRF token。下面是一个简化但可运行的 Python 示例(使用 requests 库):
import requests
import json
# 替换为你自己的 cookie 和 bili_jct(CSRF token)
headers = {
"Cookie": "SESSDATA=xxx; bili_jct=yyy;",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
}
data = {
"platform": "pc",
"area_v2": "27", # 标签ID,27=英雄联盟(查B站API文档可得)
"room_id": "1234567",
"title": "【周三复盘】S14钻石局闪现惩戒教学!",
"cover": "https://i0.hdslb.com/xxx.jpg",
"tags": "LOL,电竞,教学,高端局,复盘" # 这里就是你要打的标签
}
resp = requests.post(
"https://api.live.bilibili.com/xlive/web-room/v1/index/startLive",
headers=headers,
data=data
)
print(resp.json())
标签ID不能瞎填,得查准
像B站、斗鱼这类平台,标签不是随便输文字就行,必须用平台规定的数字 ID。比如B站「王者荣耀」是 25,「原神」是 202,「知识区-编程」是 2010。这些ID藏在平台前端接口里——打开直播间发布页,用浏览器开发者工具(F12)切到 Network,筛选 XHR,新建直播时抓包 area_v2 相关请求,就能看到完整分类树。别复制别人博客里过时的ID,每年平台都会调整。
进阶一点:让脚本自己“看懂”标题
不想每次改脚本?可以加个简单关键词匹配逻辑:
def get_tags_by_title(title):
tags = []
title = title.lower()
if "lol" in title or "英雄联盟" in title:
tags.extend(["LOL", "电竞"])
if "教学" in title or "教程" in title or "怎么玩" in title:
tags.append("教学")
if "复盘" in title or "回放" in title:
tags.append("复盘")
if "s14" in title:
tags.append("S14")
return ",".join(list(set(tags))) # 去重
# 使用
my_title = "【S14】英雄联盟教学:闪现惩戒秒杀技巧!"
print(get_tags_by_title(my_title)) # 输出:LOL,电竞,教学,S14
小提醒:别踩坑
脚本跑不通?先确认三件事:
① cookie 是否过期(建议每24小时重新登录复制一次);
② 请求头里有没有漏掉 X-CSRFToken 或 bili_jct;
③ 标签字符串里别带空格,逗号必须是英文半角,比如 "LOL,教学,复盘" ✅,"LOL,教学,复盘" ❌。