omnicaptions-download

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Download from Video Platforms

从视频平台下载内容

Download videos, audio, and captions from YouTube and 1000+ video platforms using yt-dlp.
使用yt-dlp从YouTube及1000+视频平台下载视频、音频和字幕。

Confirmation Required

需要确认

IMPORTANT: Before executing any download, you MUST confirm with the user using AskUserQuestion:
  1. Show the URL to download
  2. Show the quality setting (audio/video)
  3. Show the output directory
  4. Ask for confirmation
Example confirmation:
Ready to download:
- URL: https://youtube.com/watch?v=xxx
- Type: Audio only / Video (1080p)
- Save to: Current directory

Confirm download?
Only proceed with the download command after user confirms.
重要提示:在执行任何下载操作前,必须使用AskUserQuestion与用户确认以下信息:
  1. 显示要下载的URL
  2. 显示画质设置(音频/视频)
  3. 显示输出目录
  4. 请求用户确认
确认示例:
Ready to download:
- URL: https://youtube.com/watch?v=xxx
- Type: Audio only / Video (1080p)
- Save to: Current directory

Confirm download?
仅在用户确认后再执行下载命令。

When to Use

适用场景

  • Download YouTube videos/audio for offline use
  • Extract captions from video platforms
  • Get audio for local transcription or editing
  • 下载YouTube视频/音频用于离线使用
  • 从视频平台提取字幕
  • 获取音频用于本地转录或编辑

When NOT to Use

不适用场景

  • Just need transcription (use
    /omnicaptions:transcribe
    - Gemini handles URLs directly)
  • Converting existing caption formats (use
    /omnicaptions:convert
    )
  • 仅需要转录内容(使用
    /omnicaptions:transcribe
    - Gemini可直接处理URL)
  • 转换现有字幕格式(使用
    /omnicaptions:convert

Setup

安装设置

bash
pip install omni-captions-skills
bash
pip install omni-captions-skills

CLI Usage

CLI使用方法

Note: By default, files are saved to the current working directory. Do not specify
-o
unless the user explicitly requests a different location.
bash
undefined
注意:默认情况下,文件会保存到当前工作目录。除非用户明确要求,否则不要指定
-o
参数。
bash
undefined

Download audio only (default, saves to current directory)

仅下载音频(默认设置,保存到当前目录)

Supports bare YouTube video ID (auto-validates via yt-dlp)

支持直接使用YouTube视频ID(通过yt-dlp自动验证)

omnicaptions download e882eXLtwkI
omnicaptions download e882eXLtwkI

Download video (1080p recommended)

下载视频(推荐1080p画质)

omnicaptions download "https://youtube.com/watch?v=VIDEO_ID" -q 1080p
omnicaptions download "https://youtube.com/watch?v=VIDEO_ID" -q 1080p

Only use -o when user explicitly requests a different location

仅在用户明确要求时使用-o指定输出目录

omnicaptions download "https://youtube.com/watch?v=VIDEO_ID" -o ./downloads/

| Option | Description |
|--------|-------------|
| `-o, --output` | Output directory (default: current) |
| `-q, --quality` | Quality: `audio` (default), `best`, `1080p`, `720p`, `480p`, `360p` |
| `-v, --verbose` | Verbose output |
omnicaptions download "https://youtube.com/watch?v=VIDEO_ID" -o ./downloads/

| 选项 | 说明 |
|--------|-------------|
| `-o, --output` | 输出目录(默认:当前目录) |
| `-q, --quality` | 画质选项:`audio`(默认)、`best`、`1080p`、`720p`、`480p`、`360p` |
| `-v, --verbose` | 详细输出模式 |

Quality Presets

画质预设

PresetDescription
audio
Audio only (m4a/mp3), smallest size
1080p
1080p video + audio (recommended for video)
720p
720p video + audio
480p
480p video + audio
360p
360p video + audio
best
Best available quality (may be 4K+, very large)
预设说明
audio
仅音频(m4a/mp3格式),文件体积最小
1080p
1080p视频+音频(推荐视频下载使用)
720p
720p视频+音频
480p
480p视频+音频
360p
360p视频+音频
best
最佳可用画质(可能为4K+,文件体积极大)

Output

输出内容

Downloads produce:
  • Audio/Video file:
    .m4a
    ,
    .mp4
    , etc.
  • Captions (if available):
    .vtt
    or
    .srt
  • Metadata:
    .meta.json
    (video resolution, title, etc. for ASS font scaling)
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
The
.meta.json
file stores video resolution, which
omnicaptions convert
uses to auto-calculate font size for ASS karaoke output.
下载完成后会生成以下文件:
  • 音频/视频文件
    .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  # 用于convert功能自动计算字体大小
Title: Video Title Here
.meta.json
文件存储了视频分辨率,
omnicaptions convert
会利用该信息自动计算ASS卡拉OK字幕的字体大小。

Supported Platforms

支持的平台

YouTube, Bilibili, Vimeo, Twitter/X, and 1000+ sites.
YouTube、Bilibili、Vimeo、Twitter/X,以及1000+其他站点

Related Skills

相关技能

SkillUse When
/omnicaptions:transcribe
Transcribe downloaded audio/video
/omnicaptions:translate
Translate captions with Gemini
/omnicaptions:translate
Translate captions with Claude (no API)
/omnicaptions:convert
Convert caption format
技能适用场景
/omnicaptions:transcribe
转录下载的音频/视频内容
/omnicaptions:translate
使用Gemini翻译字幕
/omnicaptions:translate
使用Claude翻译字幕(无需API)
/omnicaptions:convert
转换字幕格式

Workflow Examples

工作流示例

Important: Generate bilingual captions AFTER LaiCut alignment. Preserve language tag in filename.
bash
undefined
重要提示:在LaiCut对齐后再生成双语字幕。请保留文件名中的语言标签。
bash
undefined

Has caption: download → LaiCut align (JSON) → convert → translate

已有字幕:下载 → LaiCut对齐(JSON) → 转换 → 翻译

omnicaptions download "https://youtube.com/watch?v=xxx"
omnicaptions download "https://youtube.com/watch?v=xxx"

→ xxx.en.vtt

→ xxx.en.vtt

omnicaptions LaiCut xxx.mp4 xxx.en.vtt
omnicaptions LaiCut xxx.mp4 xxx.en.vtt

→ xxx.en_LaiCut.json

→ xxx.en_LaiCut.json

omnicaptions convert xxx.en_LaiCut.json -o xxx.en_LaiCut.srt
omnicaptions convert xxx.en_LaiCut.json -o xxx.en_LaiCut.srt

→ xxx.en_LaiCut_Claude_zh.srt (after translate)

→ xxx.en_LaiCut_Claude_zh.srt(翻译后)

No caption: download → transcribe → LaiCut align (JSON) → convert → translate

无字幕:下载 → 转录 → LaiCut对齐(JSON) → 转换 → 翻译

omnicaptions download "https://youtube.com/watch?v=xxx" omnicaptions transcribe xxx.mp4
omnicaptions download "https://youtube.com/watch?v=xxx" omnicaptions transcribe xxx.mp4

→ xxx_GeminiUnd.md

→ xxx_GeminiUnd.md

omnicaptions LaiCut xxx.mp4 xxx_GeminiUnd.md
omnicaptions LaiCut xxx.mp4 xxx_GeminiUnd.md

→ xxx_GeminiUnd_LaiCut.json

→ xxx_GeminiUnd_LaiCut.json

omnicaptions convert xxx_GeminiUnd_LaiCut.json -o xxx_GeminiUnd_LaiCut.srt
omnicaptions convert xxx_GeminiUnd_LaiCut.json -o xxx_GeminiUnd_LaiCut.srt

→ xxx_GeminiUnd_LaiCut_Claude_zh.srt (after translate)

→ xxx_GeminiUnd_LaiCut_Claude_zh.srt(翻译后)

undefined
undefined