Skip to content
Video & Audio
Skill

/yt-search-download

YouTube 视频搜索、下载视频、下载字幕工具。结合 YouTube Data API v3 进行高级搜索,yt-dlp 下载视频/音频/字幕。 核心能力:全站关键词搜索、频道浏览、按时间/播放量/相关度排序、下载视频、提取音频(MP3)、下载字幕(中英文)、查看视频详情。 触发场景(任何涉及 YouTube 的操作都应使用此 skill): -

BOOST
From plugin
yt-search-download
1181 skill
Install
$ npx -y skills add joeseesun/yt-search-download --skill yt-search-download --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/yt-search-download

Context preview

The summary Claude sees to decide when to auto-load this skill.

YouTube 视频搜索、下载视频、下载字幕工具。结合 YouTube Data API v3 进行高级搜索,yt-dlp 下载视频/音频/字幕。 核心能力:全站关键词搜索、频道浏览、按时间/播放量/相关度排序、下载视频、提取音频(MP3)、下载字幕(中英文)、查看视频详情。 触发场景(任何涉及 YouTube 的操作都应使用此 skill): -

SKILL.md

yt-search-download.SKILL.md
name: yt-search-download
description: |
  YouTube 视频搜索、下载视频、下载字幕工具。结合 YouTube Data API v3 进行高级搜索,yt-dlp 下载视频/音频/字幕。
  核心能力:全站关键词搜索、频道浏览、按时间/播放量/相关度排序、下载视频、提取音频(MP3)、下载字幕(中英文)、查看视频详情。
  触发场景(任何涉及 YouTube 的操作都应使用此 skill):
  - 搜索类:"搜索YouTube"、"YouTube搜索"、"找YouTube视频"、"搜索[频道名]最新视频"、"查找[人名]的YouTube"、"[人名]最近更新的YouTube"、"YouTube上有什么关于XXX的"
  - 频道浏览类:"浏览频道"、"看看[频道名]最新视频"、"[人名]最近发了什么视频"、"[人名]YouTube更新"、"查看[频道名]的视频列表"
  - 下载视频类:"下载YouTube"、"下载这个视频"、"下载YouTube视频"、"把这个视频下载下来"、"保存视频"
  - 下载音频类:"提取音频"、"下载音频"、"YouTube转MP3"、"只要音频"
  - 下载字幕类:"下载字幕"、"提取字幕"、"获取字幕"、"下载YouTube字幕"、"中文字幕"、"英文字幕"、"提取文字"、"视频转文字"、"获取视频文本"
  - 视频信息类:"视频详情"、"视频信息"、"这个视频多长"
  关键词匹配:只要用户消息中出现 "YouTube"、"油管"、"YT"、"yt" 加上搜索/下载/字幕/频道/视频等动作词,就应触发此 skill。

YouTube 搜索 & 下载

基于 YouTube Data API v3 进行高级搜索,配合 yt-dlp 下载。

前置条件

1. **YouTube API Key**:

   echo $YT_BROWSE_API_KEY

如果为空:[Google Cloud Console](https://console.cloud.google.com/) → 启用 YouTube Data API v3 → 创建 API Key → 写入 `~/.zshrc`:

   export YT_BROWSE_API_KEY=your_key

2. **yt-dlp**(下载用):

   brew install yt-dlp   # macOS
   pip install yt-dlp     # 或 pip 安装

命令说明

脚本路径:`~/.claude/skills/yt-search-download/scripts/yt_search.py`

全站关键词搜索

python3 scripts/yt_search.py search "关键词" -n 20

| 参数 | 说明 | |------|------| | `-n 20` | 最多返回条数(默认 20) | | `-o date` | 按时间排序(默认 relevance) | | `-o viewCount` | 按播放量排序(API 级,准确) | | `--sort-by views` | 本地二次排序(按播放量降序) | | `--sort-by duration-asc` | 本地排序:时长从短到长 | | `--sort-by duration-desc` | 本地排序:时长从长到短 | | `--min-duration 30m` | 过滤:最短时长(支持 `30m`、`1h`、`1h30m`、纯数字=分钟) | | `--max-duration 1h` | 过滤:最长时长 | | `--after 2024-01-01` | 发布时间起 | | `--before 2024-12-31` | 发布时间止 | | `-c @handle` | 限定频道 | | `-d` | 显示简介 | | `--json` | JSON 格式输出 |

浏览频道视频

# 频道最新视频(按时间倒序)
python3 scripts/yt_search.py channel @channelHandle -n 10

# 频道内关键词搜索
python3 scripts/yt_search.py channel @channelHandle -q "关键词"

# 频道内按播放量排序
python3 scripts/yt_search.py channel @channelHandle -o viewCount

# 只看长视频(超过 1 小时)
python3 scripts/yt_search.py channel @channelHandle --min-duration 1h

# 只看短视频(30 分钟内),按时长升序
python3 scripts/yt_search.py channel @channelHandle --max-duration 30m --sort-by duration-asc

频道格式支持:`@handle`、`https://youtube.com/@handle`、频道 ID(`UCxxxx`)

下载视频

# 最佳画质下载到 ~/Downloads
python3 scripts/yt_search.py download "VIDEO_URL"

# 指定画质
python3 scripts/yt_search.py download "VIDEO_URL" -q 1080p

# 指定目录
python3 scripts/yt_search.py download "VIDEO_URL" --dir ~/Desktop

# 仅下载音频(MP3)
python3 scripts/yt_search.py download "VIDEO_URL" --audio-only

视频详情查询

python3 scripts/yt_search.py info "VIDEO_URL"

输出格式(Markdown 表格)

脚本已输出 Markdown 表格,AI **必须将每行的 `【译】___` 替换为实际中文翻译**后再呈现给用户。

最终呈现效果:

| # | 标题(原文 → 中文译文) | 日期 | 时长 | 播放量 | |---|------------------------|------|------|--------| | 1 | [Rick Beato: Greatest Guitarists...](url)<br>里克·贝阿托:史上最伟大的吉他手 | 2026-03-01 | 2h33m | 302.2K | | 2 | [State of AI in 2026: LLMs, Coding...](url)<br>2026年AI现状:大模型、编程、Scaling法则 | 2026-01-31 | 4h25m | 741.7K |

**🔴 强制规范**:

  • ✅ 保留原英文标题(作为可点击链接)
  • ✅ `【译】___` 替换为简洁中文译文(放在链接后同一单元格)
  • ✅ 所有视频逐行翻译,不得跳过
  • ❌ 不询问用户是否需要翻译(直接翻译)
  • ❌ 不把 `【译】___` 原样输出给用户

典型工作流

**找某频道最新视频并下载:** 1. `channel @handle -n 10` → 浏览结果 2. 问用户要下载哪个 3. `download "URL"` → 保存到 ~/Downloads

**搜索 + 按播放量筛选:** 1. `search "关键词" -o viewCount -n 20`

**提取播客音频:** 1. `search "播客名" -o date -n 5` 2. `download "URL" --audio-only`

下载字幕(默认同时输出 SRT + TXT)

**标准流程**:下载字幕转为 SRT,同时生成保留时间戳的 TXT(供 AI 总结用,时间戳有助于定位内容)。

# Step 1:下载字幕并转为 SRT(英文优先,无则用自动字幕)
yt-dlp --cookies-from-browser chrome \
  --write-auto-sub --write-sub \
  --sub-lang en,zh-Hans \
  --convert-subs srt \
  --skip-download \
  -o "~/Downloads/%(title)s.%(ext)s" \
  "VIDEO_URL"
# 输出:~/Downloads/视频标题.en.srt 或 .zh-Hans.srt

# Step 2:从 SRT 生成 TXT(保留时间戳,仅去除序号和空行,供 AI 总结使用)
python3 -c "
import re, sys
srt = open(sys.argv[1]).read()
# 去除序号行(纯数字行),保留时间戳和字幕文本
txt = re.sub(r'^\d+\s*\n', '', srt, flags=re.MULTILINE)
txt = re.sub(r'\n{3,}', '\n\n', txt).strip()
txt_path = sys.argv[1].replace('.srt', '.txt')
open(txt_path, 'w').write(txt)
print(f'已保存:{txt_path}')
" ~/Downloads/视频标题.en.srt
# 输出:~/Downloads/视频标题.en.txt(格式:时间戳 + 字幕文本)

TXT 格式示例(保留时间戳,便于 AI 总结时引用具体时间点):

00:00:01,000 --> 00:00:04,000
Welcome to the Lex Fridman podcast.

00:00:05,000 --> 00:00:09,000
Today we're talking about the greatest guitarists of all time.

**其他场景**:

# 仅中文字幕(SRT + TXT)
yt-dlp --cookies-from-browser chrome --write-auto-sub --write-sub \
  --sub-lang zh-Hans --convert-subs srt --skip-download \
  -o "~/Downloads/%(title)s.%(ext)s" "VIDEO_URL"

# 字幕 + 视频一起下载
yt-dlp --cookies-from-browser chrome --write-auto-sub --write-sub \
  --sub-lang en --convert-subs srt \
  -o "~/Downloads/%(title)s.%(ext)s" "VIDEO_URL"

> **规范**:下载字幕时**始终加 `--convert-subs srt`**,下载完成后**始终执行 Step 2 生成 TXT**,让用户同时拿到 `.srt`(带时间轴)和 `.txt`(纯文本)两个文件。

高级用法(直接用 yt-dlp)

# 列出可用格式
yt-dlp --cookies-from-browser chrome -F "VIDEO_URL"

# 下载整个播放列表
yt-dlp --cookies-from-browser chrome -o "~/Downloads/%(playlist_title)s/%(title)s.%(ext)s" "PLAYLIST_URL"
Read more
Ships withyt-search-download

YouTube 视频搜索、下载、字幕提取工具 — Claude Code Skill 基于 YouTube Data API v3 进行高级搜索,配合 yt-dlp 下载视频/音频/字幕,自动翻译英文标题为中文。

Get the whole plugin
Stats
118
Stars
18
Forks
Quiet
Maintenance
Python
Language
MIT
License
7mo ago
Last commit
7mo ago
Created
12h ago
Added

Repo: joeseesun/yt-search-download