B站视频全解析
B站视频一站式解析与创作工场。用户直接输入 B 站视频 URL 加一句简单要求即可:视频转文字(字幕/口播/画面内容)、内容分析总结、爆款视频拆解(按带货/流量逻辑拆结构分段、脚本类型、爆款归因、六维评分报告,照着学照着抄)、视频转脚本(镜头/运镜/转场/情绪/时间线/屏幕文字)、爆款脚本生成(原骨架改写成你的脚本,或按方向/目的/商品原创口播脚本,含分段表…
panting09266-ai
@panting09266-ai
Install
$ openclaw skills install @panting09266-ai/bilibili-video-studioB站视频全解析
输入一个 B 站视频 URL + 一句需求,产出可直接使用的文字稿、拆解报告、分镜脚本、原创脚本、生成提示词或课件内容。管线:Cue Omni Reader 远程端点(解析)→ 大模型(场景化加工)→ 交付。
隐私与数据传输说明
- 你提供的视频 URL 会发送至 Cue 远程解析端点(
mcp.cuecue.cn)抓取并解析,解析结果由大模型加工后交付。 - 默认
no_store=true:源文件与解析结果不落盘、不持久化于服务端。 - 本技能不读取、不收集你的浏览器 Cookie、登录态或任何本地敏感数据;降级方案不含登录态/Cookie 操作。
- Cue API Key 仅用于鉴权,推荐用环境变量
CUE_API_KEY传入,避免明文写入配置文件。
八大场景总览(意图路由表)
| # | 场景 | 用户典型说法 | 交付物 |
|---|---|---|---|
| 1 | 视频转文字 | 转文字 / 文字稿 / 字幕 / 转录 / 提取文字 | 口播全文 + 画面文字稿 + 时间线合并稿 |
| 2 | 内容分析总结 | 总结一下 / 讲了什么 / 分析 / 摘要 | 主旨 + 结构分段 + 核心要点 + 金句 + 受众分析 |
| 3 | 爆款视频拆解 | 拆解 / 为什么火 / 对标 / 抄作业 / 照着学 | 结构分段表 + 脚本类型 + 爆款归因 + 六维评分报告 + 可抄清单 |
| 4 | 视频转脚本 | 转脚本 / 分镜 / 还原脚本 | 分镜脚本表(镜头/运镜/转场/情绪/时间线/屏幕文字)+ 口播净稿 |
| 5 | 爆款脚本生成 | 帮我写脚本 / 改写成我的 / 仿写 / 原创脚本 | 多条脚本(分段表 + 口播全文 + 六维质检评分) |
| 6 | 视频提示词反推 | 反推提示词 / prompt / 提示词 | 风格提示词 + 分镜提示词序列 + TTS 文案 + 结构化 JSON |
| 7 | 视频提取 PPT 内容 | 提取PPT / 课件 / 幻灯 / 逐页内容 / 关键帧截图 | 逐页(去重)幻灯 + 关键帧截图(去重嵌图)+ 清洗讲解稿 + 课件大纲 |
| 8 | 备考笔记整理 | 备考笔记 / 题号+标准答案 / 整理成笔记 / 考点笔记 | 题号+标准答案 备考笔记(含记忆口诀、来源标注) |
路由规则:
- 仅在用户同时提供 B 站视频 URL 时激活:表中「总结一下 / 分析 / 帮我写脚本」等说法,只有伴随视频 URL 才触发本技能;无 URL 的普通对话不激活。
- 命中多个意图可组合执行(如「拆解并改写成我的脚本」= 场景3 → 场景5)。
- 只给 URL 无明确要求:默认执行场景 1(精简版)+ 一段内容速览,然后附场景菜单询问是否深入(「需要我进一步做爆款拆解 / 转脚本 / 改写成你的脚本吗?」),不要擅自跑深度场景。
- 多个 URL:逐个解析(每次一个),报告可合并交付。
前置依赖(新用户首次使用只需做这一件事)
-
Cue API Key:与 cue-omni-reader 技能共用同一把 Key,无需新建。获取:cuecue.cn/hub/api-key(新账号送 500 积分 + 每天 10 免费积分)。推荐用环境变量
CUE_API_KEY传入(避免明文落盘),或写入本地~/.cue/config.json:# 方式一(推荐):环境变量 export CUE_API_KEY="sk你的key" # 方式二:本地配置文件 mkdir -p ~/.cue && echo '{"api_key": "sk你的key"}' > ~/.cue/config.json -
远程端点直连(无需本地 Bridge、无需配置 MCP):B 站 URL 解析只走远程端点
https://mcp.cuecue.cn/api/omni-reader/mcp/(streamable-http),鉴权头Authorization: Bearer <Cue Key>。不依赖~/.mcp.json注册 MCP,也不装本地 Bridge;本地 Bridge 仅在降级方案中使用。 -
手动调用依赖:
curl(Python 参考实现另需python3,仅标准库)。实际使用时 Agent 自动完成解析,用户只需给一个 B 站 URL + 一句需求。
关键技术事实(必读)
- B 站 URL 必须走 Cue 远程端点:
https://mcp.cuecue.cn/api/omni-reader/mcp/(streamable-http)。本地 Bridge 提交 B 站 URL 会立即被拒(REMOTE_REQUEST_REJECTED,retryable:false)——B 站有服务端反爬(直连也是 HTTP 412),本地 Bridge 撞墙即拒;远程端点由 Cue 服务端抓取,可正常解析。 - 远程端点仅 3 个工具:
parse/get_parse_status/cancel_parse,无read_result。结果在get_parse_status返回completed时内联携带(result字段)。 detail只能用text:grounded/layout在远程报UNSUPPORTED_DETAIL。text模式的结果已含关键帧画面文字([画面 mm:ss]标注)+ ASR 口播稿([说话人N mm:ss]标注)。- 信封解析:
tools/call返回是 MCP 信封{content:[{type:"text",text:"<JSON字符串>"}]},必须先取content[].text再json.loads,否则状态字段永远读不到。响应为 SSE 流(data:前缀行)。 - 耗时预期:≤30 分钟视频 3-8 分钟解析完成;工作日 9:00-10:00 / 16:00-18:00 高峰期可能排队 5-15 分钟。提交前必须告知用户预计等待时长(如「这段 5 分钟的视频,预计 3-8 分钟出结果,高峰期可能排队」),避免用户误判卡死。
标准工作流
步骤 0:URL 预处理
- b23.tv 短链:
curl -sI "<短链>"取Location解析出 BV 号(Omni 不认短链)。 - 清理跟踪参数:去掉
spm_id_from/vd_source/share_source等,规范为https://www.bilibili.com/video/BVxxxxxxxx/。 - 分P / 合集:URL 带
?p=N的按该分P解析;给的是合集/favlist 链接时,先问用户要解析哪个分P。注意:x/web-interface/view返回的data.duration是全部分P时长之和,没带?p=N时默认播 P1——提取前务必用pages[]确认目标分P 的真实时长,别把「93 分P 合计 23.7h」误判成「单条 23.7h」而盲目启动全量批量任务。 - 时长预判:≤30 分钟单条视频直接提交;超长/多 P 引导用户按分P解析(单个分P 是短视频,页面 URL 通常能过),不要整条提交。
步骤 1:提交解析(远程端点)
告知用户等待时长后,调用 parse(参考实现见「解析调用手册」)。返回 {"status":"processing","operation_id":"op_..."},记下 operation_id。
步骤 2:轮询取回
循环调用 get_parse_status(wait_ms: 20000),status=completed 后从 result 字段取出全文。解析结果的三类原料:
[画面 mm:ss] ...—— 关键帧画面 OCR 文字(屏幕文字、标题卡、幻灯)[说话人N mm:ss] ...—— ASR 口播全文- 其余结构化段落 —— 幻灯/题目卡的结构化 OCR
步骤 3:场景化加工(大模型)
按「场景交付规范」用解析原料生成对应交付物。事实纪律:口播、屏幕文字、时间戳一律以解析结果为准;镜头、运镜、转场、情绪等解析结果中没有的信息,由大模型基于画面文字与叙事推断,必须标注「⚠️ 推断」。禁止编造视频中不存在的内容。
步骤 4:交付
- 输出为 Markdown,存工作区,命名
<BV号>_<场景>.md(如BV1eR4y1b7MK_爆款拆解.md)。 - 含表格的结果主动问一句:「需要转成 Excel / Word / PPT 吗?」——先确认再生成。
- 长报告先给「一屏速览」(结论先行),再给全文。
场景交付规范
场景 1:视频转文字
三件套,按用户需要给全或给精简:
- A. 口播全文:保留
[说话人 mm:ss]时间戳;另出一份净稿(去时间戳、去语气词,可直接当文案用)。 - B. 画面文字稿:按
[画面 mm:ss]逐条列出屏幕上出现的文字。 - C. 时间线合并稿(表格):
| 时间 | 口播 | 屏幕文字 |
|---|
场景 2:内容分析总结
- 一句话主旨
- 结构分段:时间轴 → 每段讲了什么(3-6 段)
- 核心要点:≤10 条,保留关键数字/结论
- 金句摘录:3-5 句可直接引用的原话(注明时间戳)
- 目标受众与观看价值
- 结尾 CTA:视频如何引导关注/行动
场景 3:爆款视频拆解(照着学、照着抄)
-
基本盘:标题 / 时长 / UP主 / 标签(来自解析结果与用户提供;播放点赞等数据用户提供了才写)。
-
结构分段表(核心)——按视频实际逻辑二选一或混合:
- 流量逻辑:冷启动钩子(0-5s) → 悬念留存 → 价值交付 → 情绪高潮 → 互动引导 → 转化钩子
- 带货逻辑:痛点唤醒 → 需求放大 → 方案引入 → 信任证明(证言/对比/演示)→ 价格锚点 → 逼单 → 售后兜底
时间轴 段落功能 时长 手法 话术摘录 -
脚本类型判定:口播干货型 / 剧情演绎型 / 混剪解说型 / 教程演示型 / 测评种草型 / vlog记录型 / 直播切片型……给出判定依据。
-
爆款归因(两层):
- 算法层:完播率设计、互动钩子(评论引导/争议点)、转发触发点
- 内容层:选题命中、结构节奏、情绪势能、人设信任
-
六维评分报告:见「六维评分体系」,表格 + 总分 + 评级(S/A/B/C)+ 每维一句依据。
-
抄作业清单:可复用的骨架模板(占位符化)、钩子公式、话术库、节奏参数(每段时长配比)。
场景 4:视频转脚本
还原为可拍摄的分镜脚本表:
| 时间线 | 镜头(景别/机位)⚠️推断 | 运镜 ⚠️推断 | 转场 ⚠️推断 | 画面内容 | 屏幕文字 | 口播/台词 | 情绪 | 备注 |
|---|
- 时间线、屏幕文字、口播 = Omni 实测;镜头/运镜/转场/情绪 = 大模型推断(表头已标注)。
- 表格之后附口播净稿(去语气词、断句成文)。
- 若用户要拿去翻拍,主动提示结合场景 5 做改写。
场景 5:爆款视频脚本生成
两种模式,先确认用户要哪种:
- 模式 A · 骨架改写:先跑场景 3 拿到原片骨架 → 保留钩子结构与节奏配比,替换主题/商品/人设/话术 → 产出「你的版本」。
- 模式 B · 原创生成:让用户给出 方向 / 目的(涨粉·带货·种草·科普)/ 商品或主题 / 受众 / 目标时长 → 生成 2-3 条差异化脚本(不同钩子角度)。
每条脚本交付:
- 分段表:段落功能 | 时长预算 | 口播要点 | 屏幕文字建议
- 口播全文:成稿,带语气与停顿标记
- 六维质检评分:生成后自检;任一维度 < 7 分必须改写一轮再交付,并附改写说明
场景 6:视频提示词反推
把画面和内容转成 agent / 生成式 AI 可直接使用的提示词:
- 整体风格提示词(一段式):主体 / 场景 / 风格 / 构图 / 色调 / 光线 / 画幅。
- 分镜提示词序列(表格):镜号 | 时长 | 画面 prompt(主体-动作-镜头-风格四段式) | 运镜 | 适配工具提示(即梦 / 可灵 / Vidu / Runway / Pika)。
- 口播 TTS 文案:带停顿(
/)与重音(**加粗**)标记。 - 结构化 JSON 版:
{"style_prompt": "...", "shots": [...], "narration": "..."},供 agent 自动化流水线直接调用。
场景 7:视频提取 PPT 内容(逐页课件 + 关键帧截图)
适用于录播课 / 讲座 / 路演 / 培训等含幻灯(PPT/课件)的视频。用户要的不是原始 OCR 流水,而是逐页、去重、带图、可直接复用的课件。
⚠️ 必做纪律:去重 + 清洗 + 滤废帧。否则会产出用户「读不了、图很多重复、内容乱」的废稿(详见下方「坑点」)。这是本技能被反复返工后固化的硬约束。
A. 纯文字逐页课件(用户只要文字时)
- 一页一行的去重表:同一张幻灯会在多个关键帧里被反复识别,必须按内容合并——页序唯一,每条 = 一张 distinct 幻灯。表格列:页序 | 出现时间戳
[画面 mm:ss]| 页标题 | 要点(幻灯 OCR 结构化)。 - 标题与要点来源:页标题优先取
[画面]识别出的标题;要点来自幻灯 OCR。口播稿只用于补全讲解,不直接当成幻灯正文写进要点列。 - OCR 清洗:合并因抽帧产生的断行/碎块,修正明显错字(保留判断依据,必要时用「⚠️修正」标注);不臆造幻灯上没有的内容。
- 无画面文字的页:某页只有讲师口播、画面没写字,标注「(口播整理)」,与含画面的页区分开。
- 完整口播稿(清洗版):讲师讲稿按幻灯页序对应分段,修正 ASR 音近错字(actual→Axure、圆型→原型、低保人员型→低保真原型 等),剥离水印文字(如「极客学院 jikexueyuan.com」整行删除)。
- 课件大纲:层级 Markdown 大纲(章→节→页)。
B. 带关键帧截图的课件(默认,强烈推荐)
Omni 解析产物只有文字 + 时间戳,不含图片文件;且 Omni 抽帧预算只到约 3:40,长视频后段抽不到。要补齐全片截图,必须下载整段视频 → ffmpeg 抽帧 → 去重 → 嵌 md:
- 解析:调 Omni
parse拿[画面 mm:ss]+[说话人N](用于文字与定位)。 - 下载整段视频:view API 拿 cid → playurl 取免登录直链(B 站对未登录只给 360p / 640×360,文字够用;要高清算需登录 cookie)。整段下载是为突破 Omni 的 3:40 抽帧预算,拿到全片任意时刻帧。
- 抽帧 + 去重(核心,禁止固定间隔盲抽):
ffmpeg -vf fps=1/2每 2 秒抽一帧作样本;- 逐帧算感知哈希(PIL +
imagehash.phash),全局聚类,与所有已保留帧汉明距离 > 16 才算新场景; - 人工/读图核对聚类代表帧,丢弃:片头动画、片尾 logo、同一幻灯的「构建中间帧」(空白→1 要点→完整版,只留完整那张);
- 按课件顺序重命名为
slide_01..NN.png,存入keyframes_final/<BV>_<分P>/。
- 生成带图课件 md(结构):
- 顶部:视频元信息 + 数据来源 + 整理方式说明;
- 第 1 节「课件截图」:N 张图,每张 = 图 + 一句准确图注(基于实际帧内容写,禁止把原始 OCR 整段倒灌);
- 第 2 节「讲解要点(清洗稿)」:按主题重写,修正 ASR 错字、剥离水印;
- 第 3 节「整理过程说明」:抽帧数→去重数→最终数,便于用户理解。
- 主动询问:「需要我把笔记转成 PPTX / Word / PDF 吗?」
多 P / 长视频特别注意事项:
data.duration是全部分P时长之和,未带?p=N默认播 P1。提取前用pages[]确认目标分P 真实时长,避免把「93 分P 合计 23.7h」误判成「单条 23.7h」而盲目启动全量批量任务。- 若页面 URL 报
SOURCE_ACCESS_DENIED(B 站风控,间歇性),走「降级路径」用 MP4 直链;但直链降级的 Omni 抽帧同样只到约 3 分钟,完整截图仍需本管线第 2–3 步下载整段补帧。
坑点(反复踩过,必须避免):
- ❌ 固定间隔抽帧(每 20 秒 1 张):塞入大量近似重复帧(人脸/屏幕轻微移动),用户报「图片很多重复」。→ 必须 phash 全局去重。
- ❌ 原样堆砌 ASR/OCR:满屏音近错字、水印反复出现、QQ邮箱 UI 文本 100 行整段倒灌。→ 必须按主题重写为清洗稿。
- ❌ 同一幻灯构建中间帧当多页:空白→1 要点→完整版,挤占版面无增量。→ 只留完整那张。
- ❌ 片头动画/片尾 logo 当课件。→ 丢弃。
- ✅ 正确样板:264 帧 → phash 去重 ~19 张 → 人工筛掉片头/中间帧 → 最终 9 张真课件,9 张内容各不同。
提问示例(用户这样问即可得到整理好的课件):
- 「解析这个视频,提取里面每一页 PPT 的内容并整理成逐页课件:<B站URL>」
- 「提取这个讲座视频的 PPT,把关键帧截图也放进课件 md,每页去重、文字清洗干净」
- 「用 bilibili-video-studio 把这门 Axure 课的第 3 课转成带图课件笔记」
场景 8:备考笔记(题号 + 标准答案)
适用于考试 / 面试 / 考证 / 题库 / 带背类视频(教资、公考、高校辅导员、考研、法考、教招等)。这类视频解析原料通常是「题目卡(画面)+ 讲解(口播)」,用户要的不是原始转录稿,而是可直接背诵的备考笔记。
重组规则:
- 识别题型结构:从
[画面 mm:ss]与[说话人N]中抽题号、题目原文、星级(★)、记忆口诀。 - 标准答案优先级:
[画面]题目卡/答案文字 >[说话人N]口播讲解。画面有标准答案以画面为准;画面没有的题目,用口播讲解整理成答案,并清洗 ASR 误识(口误、同音错字)。 - 统一为「题号 + 标准答案」结构:每题一个二级标题(保留原序号与星级),下接【标准答案】块;口诀/记忆点单独成行保留。
- 来源标注:答案来自画面还是口播,必要时用「(画面)」「(口播整理)」轻标记,便于用户核对。
- 禁止编造:解析结果里没有的题目、答案、数字,不补写;推断内容必须标注。
交付:
- Markdown,命名
<BV号>_备考笔记.md。 - 主动询问:「需要转成 Word / PDF / Anki 背诵卡片吗?」先确认再生成。
提问示例(用户这样问即可得到整理好的笔记):
- 「解析这个视频,按『题号 + 标准答案』整理成备考笔记:<B站URL>」
- 「用 bilibili-video-studio 把这个高校辅导员带背视频转成可背诵的备考笔记,每题保留答案和口诀」
- 「提取这个教资/公考带背视频里的所有题目和答案,做成题号+标准答案的笔记」
六维评分体系(场景 3 与场景 5 共用)
| 维度 | 考察点 | 评分 1-10 |
|---|---|---|
| 钩子力 | 前 3-5 秒留人能力(悬念/冲突/利益点前置) | |
| 节奏密度 | 信息与画面切换频率,无冗余 | |
| 情绪势能 | 情绪唤起与曲线(共鸣/好奇/焦虑/爽感) | |
| 价值密度 | 观众实际获得感(干货/娱乐/情绪价值) | |
| 转化引导 | CTA 清晰度与行动驱动力(关注/点赞/下单) | |
| 可复制性 | 结构与话术可模板化程度(越高越容易抄) |
- 总分 = 六维平均;评级:≥8.5 S / ≥7.5 A / ≥6 B / <6 C。
- 评分必须附依据(引用具体时间戳与话术),不许拍脑袋。
解析调用手册
curl 三步
# ① 提交解析(记下返回的 operation_id)
curl -sS -X POST "https://mcp.cuecue.cn/api/omni-reader/mcp/" \
-H "Authorization: Bearer $(python3 -c "import json;print(json.load(open('$HOME/.cue/config.json'))['api_key'])")" \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"parse","arguments":{"source":"<B站规范URL>","detail":"text"}}}'
# ② 轮询(每 15-20 秒一次,直到 status=completed)
# arguments 换成 {"operation_id":"op_xxx","wait_ms":20000}
# ③ completed 后取 result 字段文本 = 解析全文
Python 参考实现(提交→轮询→取结果)
import json, subprocess, time, os
KEY = json.load(open(os.path.expanduser("~/.cue/config.json")))["api_key"]
EP = "https://mcp.cuecue.cn/api/omni-reader/mcp/"
def call(name, args, timeout=70):
body = json.dumps({"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":name,"arguments":args}}).encode()
p = subprocess.run(["curl","-sS","--max-time",str(timeout),"-X","POST",EP,
"-H",f"Authorization: Bearer {KEY}","-H","Content-Type: application/json",
"-H","Accept: application/json, text/event-stream","--data-binary",body],
capture_output=True, text=True)
for line in p.stdout.splitlines():
line = line.strip()
if line.startswith("data: "): line = line[6:]
if line.startswith("{"):
r = json.loads(line)
if "result" in r:
txt = "".join(c.get("text","") for c in r["result"].get("content",[]))
try: return json.loads(txt) # 拆信封后再解析
except Exception: return {"_raw": txt}
raise RuntimeError(json.dumps(r.get("error","unknown"), ensure_ascii=False))
raise RuntimeError("无响应")
st = call("parse", {"source": url, "detail": "text"}) # 提交
op = st.get("operation_id")
while st.get("status") == "processing": # 轮询
time.sleep(min(st.get("poll_after_seconds", 10) or 10, 15))
st = call("get_parse_status", {"operation_id": op, "wait_ms": 20000})
r = st.get("result")
text = r if isinstance(r, str) else (r or {}).get("text") or st.get("text") or ""
错误处理
| 错误码 | 含义 | 处理 |
|---|---|---|
REMOTE_REQUEST_REJECTED | 多半是误走了本地 Bridge,或 URL 非规范 BV 链接 | 确认走远程端点、URL 已预处理 |
SERVICE_TEMPORARILY_UNAVAILABLE | 服务临时不可用(retryable:true) | 等 10 秒重新提交同一请求 |
UNSUPPORTED_DETAIL | 传了 grounded/layout | 改回 detail:"text" |
SOURCE_TOO_LARGE / 超长视频 | >30 分钟或超出上限 | 引导用户按分P/剪辑分段 |
INSUFFICIENT_CREDITS | 积分不足 | 指引 cuecue.cn/pay 充值或等次日免费额度 |
降级方案(远程端点长时间不可用时)
远程端点不可用时,优先走免登录 MP4 直链降级(见下方「降级路径:SOURCE_ACCESS_DENIED 时」,不涉及任何登录态/Cookie)。若为本地文件,经本地 Bridge(OMNI_ALLOWED_ROOTS 授权目录内)以 detail:"text" 解析,需用户确认。
质量与合规
- 拆解 ≠ 搬运:结构、手法可学;逐字洗稿发布有版权与平台风险,商用需获授权。
- 带货脚本红线:功效宣称遵守广告法(禁「最/第一/根治」类绝对化用语),事实性内容提示用户人工核查。
- 推断必标注:分镜的镜头/运镜/情绪等推断信息一律带 ⚠️,与 Omni 实测数据区分。
- 不解析:涉密、明显侵权、违反平台规则的内容。
FAQ
Q: 用户直接丢了个 b23.tv 短链? 先 curl -sI 解析出 BV 号再提交,Omni 不认短链。
Q: 解析结果只有口播没有画面文字? 该视频可能没有文字版面(纯真人出镜口播)。detail:"text" 已是画面信息最全的模式,layout/grounded 当前不可用,勿再尝试。
Q: 视频超过 30 分钟? 引导用户:分P链接逐个解析;或剪辑分段后走降级方案本地解析。
Q: 要 B 站官方 CC 字幕文件? 官方 CC 字幕需平台登录态,本技能不处理;Omni 的 ASR 结果通常已够用。
Q: 积分/额度? 与 cue-omni-reader 共用:新用户 500 积分 + 每天 10 免费积分,同一视频重复解析会复用结果不重复扣费。
Q: 想要的不是转录稿,而是题号+标准答案的备考笔记? 用场景 8:直接说「按题号+标准答案整理成备考笔记」并附 URL。解析原料里 [画面] 的题目卡是权威答案,[说话人N] 口播用于补全无画面的题目并清洗误识。
Q: 提取 PPT 时同一页出现好几次? 因 Omni 按关键帧抽帧,停留较久的幻灯会在多个帧被重复识别。场景 7 已要求按内容去重——一页一行、保留首次出现时间戳,交付的是 distinct 幻灯而非每一帧识别结果。
Q: 场景 7 用户拿到 PPT 笔记后说「读不了、图太多重复、内容乱」? 必查是否走了正确的去重+清洗管线:① 必须用感知哈希(phash)全局聚类去重,不能用固定间隔抽帧;② 必须按主题重写讲解稿、修正 ASR 音近错字、剥离水印,不能原样堆砌原始 OCR/ASR;③ 必须丢弃片头动画/片尾 logo/同一幻灯的构建中间帧,只留最终完整版。坑点详见解场景 7「必做」章节。
降级路径:远程端点报 SOURCE_ACCESS_DENIED 时(2026-09-09 实测)
远程端点对 B 站页面 URL 也可能被 B 站风控拦截(返回 SOURCE_ACCESS_DENIED,retryable:false,直连 B 站页面为 HTTP 412)。该拦截是间歇性的、按视频/时段波动——同一条视频换个时间窗口可能直接通过,并非每条都拦;且只作用于需服务端抓取的页面 URL,直链媒体(音频/视频文件 URL,如 SoundHelix 的 .mp3)不经过 B 站页面反爬,通常不受影响。实测:BV1eR4y1b7MK(辅导员带背)正常通过、未触发此错,仅 BV1Gx41187Bj(Axure 课)触发后走 MP4 直链降级。此时先确认视频本身可访问(api.bilibili.com/x/web-interface/view?bvid=<BV号> 返回 code:0 即公开正常),再走「MP4 直链 → 远程 parse」路径,无需用户登录态:
# ① 取 cid
curl -sS --compressed "https://api.bilibili.com/x/web-interface/view?bvid=BVxxxxxxxx" \
-H "User-Agent: Mozilla/5.0" -H "Referer: https://www.bilibili.com/"
# ② 取免登录 360p MP4 直链(durl[0].url,带 deadline 时效参数,需尽快提交)
curl -sS --compressed "https://api.bilibili.com/x/player/playurl?bvid=BVxxxxxxxx&cid=<cid>&qn=64&platform=html5&high_quality=1" \
-H "User-Agent: Mozilla/5.0" -H "Referer: https://www.bilibili.com/"
# ③ 把 MP4 直链作为 source 提交远程端点 parse(detail:"text"),流程同标准工作流
注意事项:
- 直链含
deadline时效参数,获取后立即提交解析,不要存储复用。 - 360p 画质 OCR 可用但抽帧覆盖有限(实测 2:49 视频仅捕获片头题目卡,后段拿不到),完整内容以 ASR 口播为准;若要带全片关键帧截图,仍须场景 7 管线第 2–3 步下载整段补帧。
- 此路径不适用于需要大会员/充电/登录的视频(playurl 拿不到或为试看片段)。
- 视频元信息(标题/UP主/发布时间/时长/播放量)可顺带从第 ① 步 API 获取,充实交付文档的基本盘。
- 多 P 视频的正确解析法:整条超长视频(如 23.7h 系列课)页面 URL 会
PARSE_FAILED(超长),但单个分P 是几分钟短视频,用分P 页面 URL(?p=N) 即可正常通过且覆盖整课——不必依赖整条直链降级。
参考
- 解析底座:cue-omni-reader 技能(远程端点调用规范、错误码总表)
- 在线体验:https://cuecue.cn/hub/omni-reader
- API Key 管理:https://cuecue.cn/hub/api-key
- 订阅付费页面:https://cuecue.cn/pay
Top skills in this category
Feishu Evolver Wrapper
@autogame-17(Depreciated: This skill is no longer maintained; its related functions have been absorbed by the Evolver main body.) Feishu-integrated wrapper for the capability-evolver. Manages the evolution loop lifecycle (start/stop/ensure), sends rich Feishu card reports, and provides...
Edge TTS
@i3130002Text-to-speech conversion using node-edge-tts npm package for generating audio from text. Supports multiple voices, languages, speed adjustment, pitch control, and subtitle generation. Use when: (1) User requests audio/voice output with the "tts" trigger or keyword. (2) Content needs to be spoken rather than read (multitasking, accessibility, driving, cooking). (3) User wants a specific voice, speed, pitch, or format for TTS output.
Google Ads
@hith3shInspect Google Ads accounts and campaigns, run GAQL reports, and coordinate campaign or audience changes with confirmation via the Google Ads API. Use this s...
Google Analytics
@hith3shRun GA4 reports, inspect properties, list audiences and data streams, and analyze traffic and conversion data via the Google Analytics Data API. Use this ski...
Figma
@maddiedreeseProfessional Figma design analysis and asset export. Use for extracting design data, exporting assets in multiple formats, auditing accessibility compliance, analyzing design systems, and generating comprehensive design documentation. Read-only analysis of Figma files with powerful export and reporting capabilities.