video-to-markdown

📁 imbatony/copilot-tools 📅 Feb 14, 2026
2
总安装量
2
周安装量
#64172
全站排名
安装命令
npx skills add https://github.com/imbatony/copilot-tools --skill video-to-markdown

Agent 安装分布

amp 2
gemini-cli 2
qwen-code 2
github-copilot 2
codex 2
kimi-cli 2

Skill 文档

视频转 Markdown 技能

从在线视频提取语音内容,生成结构化的 Markdown 文档,包含完整字幕和时间戳。

文件存储规范

文件类型 存储位置 说明
临时字幕文件 tmp/video-to-markdown/docs/ 脚本生成的原始字幕 Markdown(含完整时间戳字幕)
最终总结文档 docs/video-to-markdown/ 经 LLM 分析后的摘要文档,不含完整字幕,与临时文件同名

⚠️ 重要:

  • 脚本输出的字幕文件统一保存到 tmp/video-to-markdown/docs/ 目录
  • LLM 生成摘要后,将仅包含摘要的文档保存到 docs/video-to-markdown/ 目录,保持同名
  • 最终总结文档不需要保留完整字幕,只保留结构化摘要

工作流程

  1. 获取视频信息: 使用 yt-dlp 获取视频元数据
  2. 下载字幕(优先): 尝试下载视频自带的人工/自动字幕
  3. 语音识别(备用): 如果没有字幕,使用 Whisper 进行语音识别
  4. 生成临时文件: 输出带时间戳的 Markdown 到 tmp/video-to-markdown/docs/
  5. LLM 分析: 根据字幕内容生成要点摘要
  6. 保存最终文档: 将摘要文档(不含字幕)保存到 docs/video-to-markdown/,保持同名

💡 优先使用视频自带字幕:YouTube、Bilibili 等平台的视频大多有字幕,直接下载比语音识别更快更准确。

使用方法

步骤 1: 提取字幕

# 切换到 skill 目录
cd .github/skills/video-to-markdown

# 提取字幕到临时目录
uv run scripts/video_to_markdown.py <视频URL> --output ../../../tmp/video-to-markdown/docs/<文件名>.md

步骤 2: 生成摘要

脚本输出字幕内容后,LLM 应根据字幕内容生成结构化摘要。

步骤 3: 保存最终文档

将包含字幕和摘要的完整文档保存到 docs/video-to-markdown/ 目录,保持与临时文件同名。

示例

# 从 YouTube 视频提取字幕(保存到临时目录)
uv run scripts/video_to_markdown.py "https://www.youtube.com/watch?v=xxxxx" \
  --output ../../../tmp/video-to-markdown/docs/视频标题.md

# 从 Bilibili 视频提取字幕
uv run scripts/video_to_markdown.py "https://www.bilibili.com/video/BVxxxxx" \
  --output ../../../tmp/video-to-markdown/docs/视频标题.md

# 指定优先下载中文字幕
uv run scripts/video_to_markdown.py "https://..." --lang zh

# 强制使用 Whisper 语音识别
uv run scripts/video_to_markdown.py "https://..." --force-whisper --model medium

命令行参数

参数 说明 默认值
url 视频 URL(必需)
--lang 优先下载的字幕语言(如 zh, en, ja) 自动选择
--model Whisper 模型,仅在无字幕时使用 base
--output 输出文件路径(建议使用 tmp/video-to-markdown/docs/) <video_title>.md
--force-whisper 强制使用语音识别,忽略自带字幕 False
--keep-audio 保留下载的音频文件 False
--json 输出 JSON 格式 False

输出格式

生成的 Markdown 文件结构:

# 视频标题

> 来源: [原始链接](URL)
> 时长: HH:MM:SS
> 提取时间: YYYY-MM-DD

## 完整字幕

[00:00:00] 字幕内容...
[00:00:05] 字幕内容...
...

---

## 要点摘要

(由 LLM 根据字幕内容生成)

依赖工具

安装 Python 依赖

使用 uv 安装视频处理相关依赖:

uv sync --extra video

安装 FFmpeg

FFmpeg 需要单独安装(非 Python 包):

# Windows (winget)
winget install FFmpeg

# macOS
brew install ffmpeg

# Linux
sudo apt install ffmpeg

验证安装

uv run yt-dlp --version
ffmpeg -version
uv run whisper --help

详细文档

常见场景

用户问题 处理方式
“帮我总结这个视频” 提取字幕后生成要点摘要
“这个视频讲了什么” 提取字幕并分析主要内容
“把视频转成文字” 提取完整字幕文本
“视频太长,帮我提炼要点” 提取字幕后生成结构化摘要

注意事项

  1. 字幕优先: 脚本会优先下载视频自带字幕,比语音识别更快更准确
  2. 语言选择: 使用 --lang zh 优先下载中文字幕
  3. Whisper 备用: 仅在视频无字幕时才使用 Whisper,可用 --force-whisper 强制启用
  4. 模型选择: base 模型速度快但准确度一般,medium/large 更准确但更慢
  5. 网络要求: 下载视频和字幕需要网络,Whisper 本地运行无需网络