video-transcript:把任意视频 URL 变成结构化讲稿与新闻短片的开源管道

发布于 2026 年 4 月 28 日约 5 分钟阅读

一句话概括

video-transcript 是一条命令行优先的 Python 管道,输入任意视频 URL,输出带时间戳的双语讲稿、Word 文档、视觉截图摘要,以及可直接送入 Pixelle-Video 渲染的新闻短视频帧数据。


为什么需要它

市面上的转录工具要么只能提取字幕,要么只能输出一段平铺的文字。真正在制作内容的时候,你需要的是:

  • 可以引用的时间戳:知道每一段说的是哪分钟
  • 分章节的结构:直接变成文章大纲
  • 配套截图:让文档不再枯燥
  • 双语对照:中文读者友好版本同步产出
  • 可以继续加工的格式:不只是一个 txt,而是可以接着用的数据包

video-transcript 把这五件事打包成一条流水线,优先复用字幕,Whisper 只在字幕缺失时才启动。


系统架构

下图展示了完整的数据流向:

video-transcript 系统架构 任意视频 URL → 双语讲稿 / Word 文档 / 新闻短片 INPUT EXTRACTION PROCESSING OUTPUT 视频 URL任意平台入口 YouTube Bilibili TikTok Vimeo + yt-dlp 全平台 extract_transcript.pyStep 1 字幕优先级: ① 人工字幕 (VTT/SRT) ② 自动生成字幕 ③ 下载音频 ④ Whisper API 转录 ⚠ 音频 >24MB → 自动切片 输出: 📄 raw_transcript.txt 🕐 timestamped_transcript.json ℹ metadata.json section_splitter.pyStep 2 停顿(>3s)+过渡词 → 300–600词/节 📑 sections.json capture_frames.pyStep 3 ffmpeg 截帧 | DALL-E 概念图(备用) 🖼 images/ 目录 双语翻译(GPT)Step 4a · 信达雅 · 技术术语保留英文 非中文视频自动触发双语输出 generate_docx.pyStep 4b · Calibri 12pt · 2.54cm 边距 嵌入图片 · 封面元数据(作者/日期) newsroom_story_builderStep 5(可选)帧结构 JSON pixelle_end_to_end.pyStep 5(可选)Pixelle mp4 渲染 📄 transcript_enhanced.md带目录 + 时间戳 + 章节图片 📝 *.docxWord(封面 + 正文 + 内嵌图片) 🕐 timestamped_transcript.json带时间戳的分段结构 JSON 📰 Newsroom CardsTikTok 竖屏字幕卡(可选) 🎬 Pixelle Video (mp4)短视频自动渲染(可选) OpenAI APIWhisper · GPT · DALL-EOPENAI_API_KEY (env) ffmpeg截帧 · 音频切片brew install ffmpeg 图例 INPUT EXTRACTION PROCESSING OUTPUT 可选路径 备用/依赖

四层结构:

层次组件说明
Input视频 URLYouTube / Bilibili / TikTok / Vimeo / 任何 yt-dlp 支持的平台
Extractionyt-dlp → Whisper(备用)优先字幕,无字幕时下载音频 → Whisper 转录,超 24MB 自动切片
ProcessingSection Splitter · Frame Capture · 双语翻译停顿+过渡词启发式分段,ffmpeg 截帧,DALL-E 备用,中文信达雅翻译
OutputMarkdown · DOCX · Newsroom Cards带目录+时间戳的 md、Word 文档、Pixelle 短视频帧 JSON

核心管道:五步走

Step 1 · 字幕提取(extract_transcript.py)

优先级顺序:

人工字幕 → 自动生成字幕 → 下载音频 → Whisper 本地/API 转录

输出物:

  • raw_transcript.txt
  • timestamped_transcript.json(含每段起止时间)
  • metadata.json(标题、时长、上传者、平台)

Step 2 · 章节分割(section_splitter.py)

停顿时长(>3s)和过渡词(”接下来”、”然后讲”等)为切分信号,目标每节 300–600 词。产出 sections.json,每个节点包含:

  • 标题(自动生成)
  • 时间戳
  • 词数统计

Step 3 · 视觉摘要(capture_frames.py)

  • ffmpeg 在每节时间戳附近截帧
  • 如果视频不可下载:调 OpenAI DALL-E 生成概念图
  • 跳过:传入 --no-images 标志

Step 4 · 格式化导出

Markdown(transcript_enhanced.md)

## 章节标题 `[00:04:32]`

![section image](images/section_2.jpg)

正文内容……

Word 文档(generate_docx.py)

  • 页边距 2.54cm,Calibri 12pt
  • 嵌入图片,带封面元数据(标题、作者、来源、日期)

Step 5 · 新闻短片(可选)

newsroom_story_builder.py 把讲稿拆成新闻逻辑的帧结构(headline / body / angle / source),每帧对应一张 TikTok/竖屏字幕卡。pixelle_end_to_end.py 负责调用同目录的 Pixelle-Video 仓库渲染成 mp4。


双语输出策略

当检测到视频语言非中文时,自动同时产出:

  • 原语言文档(原汁原味)
  • 中文翻译文档(遵循”信达雅”原则,技术术语保留英文括注)

仅中文视频时,只输出中文版本。


快速上手

环境要求

python3 -m pip install yt-dlp python-docx openai
brew install ffmpeg

最简提取

python3 scripts/extract_transcript.py "https://youtu.be/VIDEO_ID" \
  --output-dir ./output/demo \
  --no-images

生成 Word 文档

python3 scripts/generate_docx.py \
  --input ./output/demo/transcript_enhanced.md \
  --output ./output/demo/transcript.docx \
  --title "视频标题" \
  --base-dir ./output/demo

端到端新闻短片

python3 scripts/pixelle_end_to_end.py \
  "https://youtu.be/VIDEO_ID" \
  --output-dir ./output/newsroom \
  --story-mode newsroom

项目结构

video_transcript/
├── SKILL.md                     ← Claude 技能定义
├── README.md
├── scripts/
│   ├── extract_transcript.py    ← 主入口:字幕/Whisper 转录
│   ├── section_splitter.py      ← 章节分割
│   ├── capture_frames.py        ← ffmpeg + DALL-E 截图
│   ├── generate_docx.py         ← Markdown → Word
│   ├── newsroom_story_builder.py← 新闻帧结构生成
│   └── pixelle_end_to_end.py    ← 端到端视频渲染
├── examples/
│   └── demo_player.html         ← 在线预览示例
└── tests/
    ├── test_newsroom_story_builder.py
    └── test_pixelle_end_to_end.py

输出文件清单

文件说明
metadata.json视频元数据(标题、时长、平台)
raw_transcript.txt原始转录文本
timestamped_transcript.json带时间戳的分段 JSON
sections.json章节结构
transcript_enhanced.md带目录、时间戳、图片的 Markdown
images/ffmpeg 截帧或 DALL-E 概念图
*.docxWord 文档
pixelle_script.txt短视频解说词
pixelle_payload.jsonPixelle 渲染配置

安全说明

  • OPENAI_API_KEY 仅通过环境变量传入,不要写死在代码里
  • 生成物(视频、转录文本)不应提交到版本库(已在 .gitignore 中排除)
  • Pixelle-Video 是独立仓库,需单独安装

适合谁用

  • 📹 内容创作者:把长视频自动切成带截图的图文笔记
  • 🎓 学习者:把英文课程讲座转成中英双语版本
  • 📰 媒体人:把财经/科技视频自动生成新闻卡片脚本
  • 🤖 AI 工作流:作为 Claude 等 AI 工具的数据预处理前置管道

总结

video-transcript 解决的是”视频到可用文字”这一段往往被低估的苦活:字幕获取、时间戳保留、章节切分、配图、翻译、格式化——每一步都有对应的脚本,串起来就是一条可靠的内容生产线。

项目地址:https://github.com/ylouis83/video_transcript


本文基于对项目代码库的完整阅读整理,架构图由 Cocoon-AI/architecture-diagram-generator 风格生成。

分享:
Scroll to Top