mcpField
S
solo-index-youtube

solo-index-youtube

github.com/fortunto2データ・データベース1847 回インストール今日更新
リポジトリ

solo-index-youtube について

YouTube動画の字幕を検索可能なナレッジベースに登録するスキルです。solographのMCPツールを優先し、利用できない場合はyt-dlpとテキスト検索に切り替えます。

主な機能

  1. 01指定チャンネルまたは設定済み全チャンネルの登録
  2. 02動画数の制限とドライラン
  3. 03solographまたはGrepによる字幕検索
  4. 04トピック、知見、実用的な要点の抽出

活用シーン

  1. 01指定チャンネルの動画を検索可能な形で整理
  2. 02ダウンロードした字幕からトピックを検索
  3. 03動画の重要な箇所や要点を確認

MCP 対応

solographのMCPツールが利用可能な場合、solographで登録し、source_list、source_search、source_tags、source_relatedで確認します。利用できない場合はyt-dlpとローカルのテキスト検索を使います。

インストール

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

$npx skills add https://github.com/fortunto2/solo-factory --skill solo-index-youtube

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

詳細

/index-youtube

YouTube 動画のトランスクリプトを検索可能なナレッジベースにインデックス化します。利用可能なツールに応じて、2 つのモードに対応しています。

前提条件

yt-dlp が利用可能であることを確認します。

which yt-dlp || echo "MISSING: install yt-dlp (brew install yt-dlp / pip install yt-dlp / pipx install yt-dlp)"

引数

チャンネルのハンドルまたは「all」を $ARGUMENTS から解析します。

  • 空の場合、または「all」の場合:すべてのチャンネルをインデックス化します(設定ファイルから取得するか、ユーザーに確認します)。
  • 1 つ以上のハンドルが指定されている場合:そのチャンネルのみをインデックス化します(例:GregIsenberg ycombinator)。
  • オプションのフラグ:-n <limit>(チャンネルあたりの動画の最大数。既定値は 10)、--dry-run(解析のみ)

モードの検出

利用可能なモードを確認します。

モード 1:solograph MCP を使用する場合(推奨)

MCP ツール source_search、source_list、source_tags が利用可能な場合は、インデックス化と検索に solograph を使用します。

セットアップ(未インストールの場合):

# Install solograph
pip install solograph
# or
uvx solograph

solograph CLI によるインデックス化:

# Single channel
solograph-cli index-youtube -c GregIsenberg -n 10

# Multiple channels
solograph-cli index-youtube -c GregIsenberg -c ycombinator -n 10

# All channels (from channels.yaml in solograph config)
solograph-cli index-youtube -n 10

# Dry run (parse only, no DB writes)
solograph-cli index-youtube --dry-run

solograph-cli が PATH にない場合は、次を試してください。

uvx solograph-cli index-youtube -c <handle> -n 10

MCP による確認:

  • source_list — youtube ソースが表示されることを確認します。
  • source_search("startup idea", source="youtube") — セマンティック検索をテストします。
  • source_tags — トランスクリプトから自動検出されたトピックを確認します。
  • source_related(video_id) — タグを使って関連動画を検索します。
モード 2:MCP を使用しない場合(スタンドアロンの代替手段)

solograph MCP ツールが利用できない場合は、yt-dlp を直接使用してトランスクリプトをダウンロードし、分析します。

ステップ 1:動画リストをダウンロード

# Get recent video URLs from a channel
yt-dlp --flat-playlist --print url "https://www.youtube.com/@GregIsenberg/videos" | head -n 10

ステップ 2:トランスクリプトをダウンロード

# Download auto-generated subtitles (no video download)
yt-dlp --write-auto-sub --sub-lang en --skip-download --sub-format vtt \
  -o "docs/youtube/%(channel)s/%(title)s.%(ext)s" \
  "<video-url>"

ステップ 3:VTT を読みやすいテキストに変換

# Strip VTT formatting (timestamps, positioning)
sed '/^$/d; /^[0-9]/d; /^NOTE/d; /^WEBVTT/d; /-->/d' docs/youtube/channel/video.vtt | \
  awk '!seen[$0]++' > docs/youtube/channel/video.txt

ステップ 4:インデックスを作成

Read ツールを使って各トランスクリプトを読み込みます。各動画について、次の情報を抽出します。

  • タイトル(ファイル名または yt-dlp のメタデータから)
  • 主なトピックと重要な知見
  • 実行可能な要点
  • 注目すべき箇所のタイムスタンプ(チャプターマーカーがある場合)

docs/youtube/index.md に要約インデックスを書き込みます。

# YouTube Knowledge Index

## Channel: {channel_name}

### {video_title}
- **URL:** {url}
- **Key topics:** {topic1}, {topic2}
- **Insights:** {summary}
- **Actionable:** {takeaway}

ステップ 5:インデックス化したコンテンツを検索

トランスクリプトがテキストファイルとして保存されている場合は、Grep を使って検索します。

# Search across all transcripts
grep -ri "startup idea" docs/youtube/

出力

ユーザーに次の内容を報告します。

  1. インデックス化した動画の数
  2. ダウンロードしたトランスクリプトの数(およびスキップした数 — トランスクリプトが利用できない動画)
  3. チャプターマーカーがある動画の数
  4. インデックスファイルの場所
  5. インデックス化したコンテンツの検索方法(MCP ツールまたは Grep コマンド)

よくある問題

「MISSING: install yt-dlp」

原因: yt-dlp がインストールされていません。
対処方法: brew install yt-dlp(macOS)、pip install yt-dlp、または pipx install yt-dlp を実行します。

動画がスキップされる(トランスクリプトなし)

原因: 動画に自動生成または手動の字幕がありません。
対処方法: これは想定される動作です。トランスクリプトのない動画もあります。利用可能な字幕がある動画のみインデックス化できます。

YouTube によるレート制限

原因: 短時間にリクエストを送りすぎています。
対処方法: -n の上限を下げる、yt-dlp コマンドに --sleep-interval 2 を追加する、または認証済みアクセスに --cookies-from-browser chrome を使用します。

solograph-cli が見つからない

原因: solograph がインストールされていないか、PATH にありません。
対処方法: pip install solograph または uvx solograph でインストールします。which solograph-cli で確認してください。

コメント