基础工具与工作流 · Backtthefuture/huangshu

video-transcript

视频逐字稿提取专家(基于豆包视频理解模型)。支持 B 站 / 抖音 / 小红书 / YouTube / 微信视频号链接或本地视频。全程在用户电脑后台运行(headless),不弹窗、不要求登录视频网站。输出"语义分段 + 段落级时间戳"的严格逐字稿(保留口语词、网络梗、停顿),长视频自动分段处理避免被模型概括。 触发场景: - 用户说"出逐字稿"、"提取逐字稿"、"转文字"、"视频转文字" - 用户说"听写视频"、"提取视频文案"、"视频字幕" - 用户使用 /video-transcript 命令 - 用户贴一个视频链接(B站 / 抖音 / 小红书 / YouTube / 微信视频号),意图是要文字版 - 用户只贴视频链接或说"处理这个视频"但没说清下载还是转录时,先询问意图

L5 严管 · 隔离环境与严格审计V2 已复核条款/合规执行命令联网读写文件Dual-pass Audit
Author BacktthefutureGitHub Backtthefuture/huangshu ↗License MIT(仓库根 LICENSE)Commit 3cfa898c51
管控等级描述 skill 的能力与建议配套的管控措施,不代表质量或安全认证,也不表示可用或不可用。是否使用由用户和管理者决定。不同 agent 宿主对权限的约束各不相同,请勿假定宿主一定会提供安全兜底。第三方 skill 版权归原作者,使用风险由使用者自行承担。

1实现原理 · 为什么它能做到

先定位 skill 根目录,之后所有命令都经 scripts/transcript.py 执行。

skills/video-transcript/SKILL.md
被触发时你必须先定位自己,跑这段:
这里在做什么:解决 skill 被装到非标准路径时的自定位问题。

执行前先做意图分流:只要下载则改走 video-download,意图不明先询问。

skills/video-transcript/SKILL.md
在跑任何下载/转录命令前,先判断用户要的是哪一种:
这里在做什么:把「下载」与「转录」两条路径分开,避免误触发。

首次或报错时先跑 --doctor 体检,缺项引导跑 install.sh。

skills/video-transcript/SKILL.md
第一次跑或者遇到报错时,先做体检:
这里在做什么:把依赖/配置问题挡在转录之前。

启动 headless 浏览器探测,拿标题、时长与视频/音频直链并打印评估表。

skills/video-transcript/SKILL.md
0. **探测** — 启动 headless 浏览器,拿标题、时长、视频/音频直链;打印 📊 评估表 + 预估耗时
这里在做什么:先探测再下载,顺带给用户等待预期。

总时长超过 8 分钟自动切成 6 分钟/段,规避被模型概括成摘要。

skills/video-transcript/SKILL.md
2. **长视频切片** — 总时长 > 8min 自动切成 6min/段,避免被模型概括成摘要
这里在做什么:用切片保证长视频仍然逐字转录。

用 ffmpeg 把视频压缩到目标 30MB,并按时长自动选分辨率。

skills/video-transcript/SKILL.md
3. **压缩** — ffmpeg,目标 30MB;按时长自动选分辨率,一次到位
这里在做什么:控制上传体积以满足模型接口限制。

逐段调用豆包视频理解 API,用严格逐字 prompt 转录。

skills/video-transcript/SKILL.md
4. **转录** — 豆包视频理解 API,严格逐字 prompt(保留口语词、网络梗、停顿)
这里在做什么:模型直接听音频转录,无需独立 ASR。

合并各段输出并自动修正段头时间戳偏移。

skills/video-transcript/SKILL.md
5. **合并** — 长视频合并各段输出 + 自动调整段头时间戳偏移
这里在做什么:把分段转录拼回成一篇连续逐字稿。

强制 agent 复述评估表给用户等待预期,并完整展示逐字稿全文。

skills/video-transcript/SKILL.md
**你必须立刻把它复述给用户**,告诉他:
这里在做什么:用输出纪律对抗「只报保存路径」的偷懒行为。

平台前端改版导致抓取失败被当常态,配 FALLBACK.md 人工兜底。

skills/video-transcript/SKILL.md
| 平台前端改版导致抓取失败 | 看 `$VT_HOME/FALLBACK.md` 走人工兜底 |
这里在做什么:给抓取失败留一条可操作的人工退路。

2核心能力

01多平台视频源支持(B站/抖音/小红书/YouTube/视频号/本地)
02headless 探测与评估表输出
03长视频自动切片防概括
04ffmpeg 压缩与分辨率自适应
05豆包视频理解 API 严格逐字转录
06语义分段 + 段落级时间戳输出格式
07stdout 直出 + 落盘双通道
08doctor 体检与故障排查指引
09微信视频号桥接 video-download

3外部依赖

KindDependency / Endpoint
cliffmpeg / ffprobe
packageyt-dlp>=2024.3.10
packageplaywright>=1.40
api豆包 / 火山方舟视频理解 API
networkB站 / 抖音 / 小红书 / YouTube 等平台
clivideo-download(视频号桥接,可选依赖)

4管控建议与判定依据

建议配套管控措施
面向 Agent
隔离环境,逐次授权
面向管理者
严格授权、全量审计、合规确认
判定依据(文件路径与关键语句摘要)
  • SKILL.md / 脚本参数: 包含绕过自动化检测、关闭宿主沙箱或跳过 SSL 证书校验
  • scripts/: 执行本地脚本或命令: scripts/transcript.py(主流程)
  • 网络端点: 声明外部网络访问: headless 浏览器访问 B站/抖音/小红书/YouTube 页面取直链
  • 本地工作目录: 文件读写与工件输出: $VT_HOME/.env(API Key,chmod 600)
审计说明: 红色:scripts/platform_extractor.py 启动 Chromium 时传入 `args=["--disable-blink-features=AutomationControlled"],`,并显式 add_init_script 将 navigator 的 webdriver 置为 undefined(源码注释 `# 反 webdriver 检测`,语句 `Object.defineProperty(navigator, 'webdriver', { get: () => undefined });`)——属技术性绕开平台自动化侦测,按六档范式(red=绕过防护/反自动化检测绕过,且不看是否为默认路径)判红,与 notebooklm-skill、baoyu-post-to-x 先例一致。此外 skill 还读 .env 的 DOUBAO_API_KEY 并把用户视频/音频内容送豆包后端生成(命中橙色特征),但红档优先。判红为能力/策略级提示,非疑似恶意植入:代码可读、无混淆、无硬编码密钥、无向非预期对象外发。

5第二遍独立确认

  • [ok] 流程步骤完整性 — SKILL.md 阶段 0–5 与 README『架构』流程(探测→评估表→下载→切片→转录→合并→输出)一致。
  • [ok] 依赖声明 — requirements.txt 与 install.sh 的 pip / playwright 安装点一致。
  • [ok] 安装脚本性质 — bootstrap.sh 三档兜底(npx / git sparse-checkout / tarball)+ install.sh 均为用户主动运行的安装向导。
  • [ok] 反自动化证据 — 回源 scripts/platform_extractor.py 确认 --disable-blink-features=AutomationControlled 与隐藏 navigator.webdriver 的语句真实存在。
  • [ok] 凭证读取范围 — 仅读 $VT_HOME/.env 的 API Key,install.sh 写入后 chmod 600。
  • [ok] 外发对象 — 平台页与豆包 API 均为声明用途所需,未见向非预期第三方的回传。
  • [ok] 产物落盘 — .gitignore 屏蔽 .env 与 outputs/,逐字稿落 $VT_HOME/outputs/。
  • [ok] 档位复核 — 反自动化检测绕过硬证据 → red;同含凭据读取与外发特征,红档优先。

6结论

  • 多平台支持广:B站/抖音/小红书/YouTube/微信视频号 + 本地文件。
  • 严格逐字纪律:长视频自动切片防概括,且强制 agent 原样展示全文。
  • 安装与兜底齐全:bootstrap.sh 三档拉取 + install.sh 向导 + FALLBACK.md。
  • 适合: 需要把公开视频转成带时间戳逐字稿的内容创作者、研究者;能自备豆包 API Key 并接受安装 ffmpeg/Chromium 的用户。
    不适合: 在意平台合规、拒绝任何自动化侦测规避者;无法提供豆包 API Key 或不愿让视频内容出网者;需要词级时间戳或纯离线转录的场景。
    Install Agent-Ready
    ① Verified Mirror 2026-10-10
    Option A · Direct DownloadDownload video-transcript.tar.gz
    sha256: abd43fa2c309a839…
    Option B · Copy Guide for Agent
    install.json
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 3cfa898c51.