mcpField
Y
yt-search-download

yt-search-download

github.com/joeseesunクリエイティブ・メディア118740 回インストール34 週間前に更新
リポジトリ

yt-search-download について

yt-search-download は、YouTube Data API v3 で検索し、yt-dlp でメディアをダウンロードするコマンドラインスキルです。検索条件と並べ替え、チャンネル閲覧、動画情報の取得、字幕処理に対応します。

主な機能

  1. 01条件指定と並べ替えによる YouTube 検索
  2. 02チャンネル動画の閲覧と検索
  3. 03画質を指定した動画ダウンロード
  4. 04動画情報の取得
  5. 05字幕を SRT とタイムスタンプ付き TXT で保存

活用シーン

  1. 01キーワード、日付、長さ、再生数で動画を検索
  2. 02チャンネルの最新動画や条件に合う動画を確認
  3. 03yt-dlp で動画やプレイリストを保存
  4. 04要約用にタイムスタンプ付き字幕を収集

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/joeseesun/yt-search-download --skill yt-search-download

インストール後、Claude Code で/yt-search-downloadを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
LICENSE
scripts/
yt_search.py

詳細

YouTube 検索 & ダウンロード

YouTube Data API v3 に基づく高度な検索と、yt-dlp によるダウンロードに対応しています。

前提条件

  1. YouTube API Key:

    echo $YT_BROWSE_API_KEY
    

    空の場合:Google Cloud Console → 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説明を表示
--jsonJSON 形式で出力
チャンネルの動画を閲覧
# 频道最新视频(按时间倒序)
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 は、ユーザーに表示する前に各行の 【译】___ を実際の日本語訳に置き換える必要があります。

最終的な表示例:

#タイトル(原文 → 日本語訳)日付再生時間再生回数
1Rick Beato: Greatest Guitarists...
リック・ベアト:史上最高のギタリスト
2026-03-012h33m302.2K
2State of AI in 2026: LLMs, Coding...
2026年の AI の現状:LLM、コーディング、スケーリングの法則
2026-01-314h25m741.7K

🔴 必須ルール:

  • ✅ 英語の元タイトルを保持します(クリック可能なリンクとして表示)
  • ✅ 【译】___ を簡潔な日本語訳に置き換えます(リンクの後、同じセルに配置)
  • ✅ すべての動画を 1 行ずつ翻訳し、省略しません
  • ❌ 翻訳が必要かどうかをユーザーに尋ねません(そのまま翻訳します)
  • ❌ 【译】___ をそのままユーザーに表示しません

典型的なワークフロー

特定のチャンネルの最新動画を探してダウンロード:

  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"

コメント