把视频和播客转成可引用的逐字稿。贴链接就能跑,全程在你电脑上,不需要 API Key。
- 视频:B 站 / 抖音 / 小红书 / YouTube / 微信视频号 → 带标点、带小标题的整理稿
- 播客:小宇宙 / 喜马拉雅 / Apple Podcasts → 自动区分说话人,输出 Markdown + SRT
- 本地文件:
mp4/m4a/mp3/wav同样能转
贴链接后,脚本自己判断走哪条。一般不用先选模式。
| 视频 | 播客 / 访谈 | |
|---|---|---|
| 何时启用 | 视频链接、本地视频 | 小宇宙 / 喜马拉雅 / Apple 单集;或加 --speakers |
| 引擎 | SenseVoice-Small,大约 6 倍实时 | paraformer + CAM++,大约音频时长的 25% |
| 说话人 | 不区分 | 自动分离,映射成主持人 / 嘉宾 |
| 给你的东西 | *_预整理.md,再由 agent 整理一版 |
*_逐字稿.md + *_逐字稿.srt,直接能用 |
| 首次模型 | 约 234MB | 约 1GB(之后走本地缓存) |
只想保存 MP4、不要逐字稿,请说明「只下载」,会改走配套的 video-download。
| 档位 | 平台 | 说明 |
|---|---|---|
| 专门解析 | B 站(含 b23.tv)、抖音、小红书、YouTube、微信视频号、小宇宙单集 | 最稳 |
| 播客链路 | 小宇宙、喜马拉雅、Apple Podcasts 的单集页 | 自动说话人分离 |
| yt-dlp 兜底 | 微博、知乎、西瓜、AcFun 等 | 先当视频转;要区分说话人就加 --speakers |
| 暂不支持 | Spotify(DRM)、快手 | 脚本会说明原因和替代做法 |
注意:小宇宙节目主页(/podcast/)和喜马拉雅专辑页(/album/)不是单集,贴进去会被明确提示。请用单集链接。
macOS 复制这一行到终端,回车,跟着提示走:
bash <(curl -fsSL https://raw.githubusercontent.com/Backtthefuture/video-transcript/main/bootstrap.sh)它会:把 Skill 装到 ~/.claude/skills/video-transcript/,检查 ffmpeg,安装 yt-dlp / Playwright / Chromium,装 FunASR,并带上视频号配套的 video-download。
装完后在 Claude Code / Codex 里就可以:
/video-transcript <视频或播客链接>
已经会装 Skill 的人:两步装
npx skills add Backtthefuture/video-transcript -a claude-code -g -y
bash ~/.claude/skills/video-transcript/install.sh手动安装(不想跑向导)
brew install ffmpeg
pip3 install --break-system-packages -r ~/.claude/skills/video-transcript/requirements.txt
python3 -m playwright install chromium
pip3 install --break-system-packages funasr torchaudio
python3 ~/.claude/skills/video-transcript/scripts/transcript.py --doctor把链接丢给 agent,或显式调用:
/video-transcript https://www.bilibili.com/video/BVxxx
/video-transcript https://www.xiaoyuzhoufm.com/episode/xxxx
# 视频
python3 ~/.claude/skills/video-transcript/scripts/transcript.py "<URL>"
# 播客 / 本地访谈:区分说话人
python3 ~/.claude/skills/video-transcript/scripts/transcript.py 访谈.m4a --speakers --host 张三 --guest 李四
# 只改版式或人名,不重跑识别(秒级)
python3 ~/.claude/skills/video-transcript/scripts/transcript.py "<同一输入>" --reformat --host 张三 --guest 李四版式或人名不对,用 --reformat。--force 会把十几分钟的识别一起重跑。
微信视频号怎么解析
公共 Worker 已失效。install.sh 第 7 步会引导用微信扫一次码,复用腾讯元宝登录态走官方接口,不导出 Cookie。
之后自己维护:
python3 ~/.claude/skills/video-transcript/scripts/sph_resolver.py --login
python3 ~/.claude/skills/video-transcript/scripts/sph_resolver.py --check只下载、不转录,请直接用 video-download。
视频稿带小标题和时间范围:
# 视频标题
> 时长 5:32 | 来源: <URL> | 引擎: FunASR(SenseVoice-Small)
## 1. 引入话题 [00:00 - 00:42]
大家好,今天我们要聊的是...
## 2. 核心观点 [00:42 - 02:15]
那么我的看法是这样的,首先...播客稿按说话人分块,并额外给一条可直接压字幕的 SRT:
## 曲凯 · 00:22
所以今天很开心请到 Evolving 的联创孟繁青,先给大家简单介绍一下。
## 孟繁青 · 00:30
非常感谢曲老师邀请。我是孟繁青,同时也是 Evolving 这边的联创。文件默认写在 ~/.claude/skills/video-transcript/outputs/。
| 参数 | 说明 |
|---|---|
input |
链接或本地路径(--doctor 时不需要) |
--title |
覆盖自动探测到的标题 |
--output-dir |
改输出目录 |
--speakers |
强制说话人分离(播客单集会自动启用) |
--host / --guest |
指定主持人 / 嘉宾姓名 |
--reformat |
复用已有识别结果,只重跑后处理 |
--keep-audio |
播客模式保留临时 wav(默认转录完就删) |
--keep-video |
额外留一份 MP4 |
--force |
忽略缓存,整条链路重跑 |
--doctor |
检查依赖,缺什么说什么 |
python3 ~/.claude/skills/video-transcript/scripts/transcript.py --doctor| 现象 | 处理 |
|---|---|
--doctor 报缺依赖 |
重跑 bash ~/.claude/skills/video-transcript/install.sh |
| funasr 未安装 | pip install funasr torchaudio |
| 首次很慢 / 联网失败 | 视频模型约 234MB,播客模型约 1GB,下完以后离线 |
| 抖音 / 小红书抓不到 | 平台改版常见,看 FALLBACK.md |
视频号找不到 video-download |
重跑 install.sh,或 npx skills add Backtthefuture/video-download |
| B 站 yt-dlp 报 412 | 会自动改走无头浏览器,可忽略 |
| 抖音图文笔记 | 只支持视频,不支持图文 |
| Chromium 找不到 / 下载失败 | python3 -m playwright install chromium,国内网络可设代理后重试 |
| 播客人名或版式要改 | 用 --reformat,不要用 --force |
抓取失败时:先 --doctor,再看 FALLBACK.md,仍不行就 提 Issue(附上链接和报错)。
音视频只在你电脑上处理,不上传到第三方,也不需要 API Key。可选热词写在本地 .env(已加入 .gitignore)。
第一次使用需要联网下载模型(ModelScope),之后全离线。
这个 Skill 能独立用。如果你还想把 Agent 从「会跑一条命令」推到「能落地项目」,不必一个人试。
社群里有:
- 课程:零基础智能体视频课,从入门到实战
- 案例:可复用的项目拆解
- 挑战:带着任务练,而不是只看
- 直播:跟黄叔、唯庸同步最新打法
微信扫下图小店码即可查看并加入。
黄叔和唯庸的 Agent 实战社群 · 不用一个人摸索 Agent
MIT。随便用,也欢迎 Star 和 PR。
