mcpField
O
omnicaptions-download

omnicaptions-download

github.com/lattifai创意与媒体22101 次安装38 周前更新
代码仓库

关于 omnicaptions-download

omnicaptions-download 是一项技能,可从 YouTube 等 1,000 多个视频平台下载视频、音频和可用字幕。它通过 omnicaptions 命令行工具使用 yt-dlp,并要求下载前先取得用户确认。

主要功能

  1. 01下载视频和音频
  2. 02提取可用字幕
  3. 03音频与视频画质预设
  4. 04输出视频分辨率元数据

适用场景

  1. 01保存 YouTube 视频以供离线观看
  2. 02提取音频用于本地转录或编辑
  3. 03获取支持平台上的字幕

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lattifai/omni-captions-skills --skill omnicaptions-download

安装后在 Claude Code 中输入/omnicaptions-download确认已加载。

详细介绍

从视频平台下载

使用 yt-dlp 从 YouTube 和 1000 多个视频平台下载视频、音频和字幕。

需要确认

重要:执行任何下载前,必须使用 AskUserQuestion 征得用户确认:

  1. 显示要下载的网址
  2. 显示画质设置(音频/视频)
  3. 显示输出目录
  4. 询问是否确认

确认示例:

Ready to download:
- URL: https://youtube.com/watch?v=xxx
- Type: Audio only / Video (1080p)
- Save to: Current directory

Confirm download?

只有在用户确认后,才能执行下载命令。

适用场景

  • 下载 YouTube 视频/音频以供离线使用
  • 提取视频平台上的字幕
  • 获取音频以进行本地转录或编辑

不适用场景

  • 只需要转录(使用 /omnicaptions:transcribe — Gemini 可直接处理网址)
  • 转换现有字幕格式(使用 /omnicaptions:convert)

设置

pip install omni-captions-skills --extra-index-url https://lattifai.github.io/pypi/simple/

CLI 用法

注意:默认情况下,文件会保存到当前工作目录。除非用户明确要求更改位置,否则不要指定 -o。

# Download audio only (default, saves to current directory)
omnicaptions download "https://www.youtube.com/watch?v=VIDEO_ID"

# Supports bare YouTube video ID (auto-validates via yt-dlp)
omnicaptions download e882eXLtwkI

# Download video (1080p recommended)
omnicaptions download "https://youtube.com/watch?v=VIDEO_ID" -q 1080p

# Only use -o when user explicitly requests a different location
omnicaptions download "https://youtube.com/watch?v=VIDEO_ID" -o ./downloads/
选项描述
-o, --output输出目录(默认:当前目录)
-q, --quality画质:audio(默认)、best、1080p、720p、480p、360p
-v, --verbose详细输出

画质预设

预设描述
audio仅音频(m4a/mp3),文件最小
1080p1080p 视频 + 音频(视频推荐)
720p720p 视频 + 音频
480p480p 视频 + 音频
360p360p 视频 + 音频
best可用的最佳画质(可能达到 4K 或更高,文件非常大)

输出

下载会生成:

  • 音频/视频文件:.m4a、.mp4 等
  • 字幕(如有):.vtt 或 .srt
  • 元数据:.meta.json(视频分辨率、标题等,用于 ASS 字体缩放)
Video: ./VIDEO_ID.mp4
Audio: ./VIDEO_ID.m4a
Caption: ./VIDEO_ID.en.vtt
Metadata: ./VIDEO_ID.meta.json  # Used by convert for auto font size
Title: Video Title Here

.meta.json 文件会存储视频分辨率,omnicaptions convert 会使用该信息自动计算 ASS 卡拉 OK 输出的字体大小。

支持的平台

YouTube、Bilibili、Vimeo、Twitter/X,以及1000 多个网站。

相关技能

技能使用场景
/omnicaptions:transcribe转录已下载的音频/视频
/omnicaptions:translate使用 Gemini 翻译字幕
/omnicaptions:translate使用 Claude 翻译字幕(无需 API)
/omnicaptions:convert转换字幕格式
工作流示例

重要:LaiCut 对齐后再生成双语字幕。保留文件名中的语言标签。

# Has caption: download → LaiCut align (JSON) → convert → translate
omnicaptions download "https://youtube.com/watch?v=xxx"
# → xxx.en.vtt
omnicaptions LaiCut xxx.mp4 xxx.en.vtt
# → xxx.en_LaiCut.json
omnicaptions convert xxx.en_LaiCut.json -o xxx.en_LaiCut.srt
# → xxx.en_LaiCut_Claude_zh.srt (after translate)

# No caption: download → transcribe → LaiCut align (JSON) → convert → translate
omnicaptions download "https://youtube.com/watch?v=xxx"
omnicaptions transcribe xxx.mp4
# → xxx_GeminiUnd.md
omnicaptions LaiCut xxx.mp4 xxx_GeminiUnd.md
# → xxx_GeminiUnd_LaiCut.json
omnicaptions convert xxx_GeminiUnd_LaiCut.json -o xxx_GeminiUnd_LaiCut.srt
# → xxx_GeminiUnd_LaiCut_Claude_zh.srt (after translate)

评论

支持 Markdown