video-transcript
Video verbatim transcript extraction expert (powered by Doubao video understanding model). Supports links from Bilibili, Douyin, Xiaohongshu, YouTube, WeChat Channels, or local video files. Runs entirely in the background (headless) on the user's computer with no popup windows and no login required for video platforms. Outputs strict verbatim transcripts with "semantic segmentation + paragraph-level timestamps" (preserving spoken filler words, internet slang, and pauses), and automatically segments long videos to prevent the model from summarizing. Trigger scenarios: - User says "generate transcript", "extract verbatim transcript", "transcribe to text", "video to text" - User says "dictate video", "extract video copy", "video subtitles" - User runs the /video-transcript command - User pastes a video link (Bilibili / Douyin / Xiaohongshu / YouTube / WeChat Channels) intending to get a text transcript - User only pastes a video link or says "process this video" without specifying whether to download or transcribe, asking for intent first
1How It Works & Mechanism
Locate the skill root directory first; all subsequent commands are executed via scripts/transcript.py.
被触发时你必须先定位自己,跑这段:
Perform intent routing before execution: switch to video-download if only downloading is needed; ask for clarification if intent is unclear.
在跑任何下载/转录命令前,先判断用户要的是哪一种:
Run --doctor health check on first use or upon errors; guide user to run install.sh if dependencies are missing.
第一次跑或者遇到报错时,先做体检:
Launch a headless browser probe to obtain title, duration, and direct video/audio URLs, and print an evaluation table.
0. **探测** — 启动 headless 浏览器,拿标题、时长、视频/音频直链;打印 📊 评估表 + 预估耗时
Automatically split videos longer than 8 minutes into 6-minute segments to prevent the model from summarizing them.
2. **长视频切片** — 总时长 > 8min 自动切成 6min/段,避免被模型概括成摘要
Compress video to a target size of 30MB using ffmpeg, automatically selecting resolution based on duration.
3. **压缩** — ffmpeg,目标 30MB;按时长自动选分辨率,一次到位
Call the Doubao video understanding API segment by segment using strict verbatim prompts for transcription.
4. **转录** — 豆包视频理解 API,严格逐字 prompt(保留口语词、网络梗、停顿)
Merge outputs from all segments and automatically adjust segment-start timestamp offsets.
5. **合并** — 长视频合并各段输出 + 自动调整段头时间戳偏移
Enforce the agent to restate the evaluation table to set wait expectations and display the full verbatim transcript.
**你必须立刻把它复述给用户**,告诉他:
Treat scraping failures caused by platform frontend updates as normal, providing FALLBACK.md for manual fallback.
| 平台前端改版导致抓取失败 | 看 `$VT_HOME/FALLBACK.md` 走人工兜底 |
2Core Capabilities
3External Dependencies
| Kind | Dependency / Endpoint |
|---|---|
| cli | ffmpeg / ffprobe |
| package | yt-dlp>=2024.3.10 |
| package | playwright>=1.40 |
| api | 豆包 / 火山方舟视频理解 API |
| network | B站 / 抖音 / 小红书 / YouTube 等平台 |
| cli | video-download(视频号桥接,可选依赖) |
4Recommended Governance & Evidence
- SKILL.md / 脚本参数: Contains evasion of automated detection, disabling host sandbox, or skipping SSL certificate validation
- scripts/: Executes local script or command: scripts/transcript.py (main flow)
- 网络端点: Declares external network access: headless browser accesses Bilibili/Douyin/Xiaohongshu/YouTube pages to fetch direct links
- 本地工作目录: File read/write and artifact output: $VT_HOME/.env (API Key, chmod 600)
5Second-Pass Verification
- [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;同含凭据读取与外发特征,红档优先。
6Verdict & Scenarios
abd43fa2c309a839…