mcpField
A
advanced-video-downloader

advanced-video-downloader

github.com/jst-well-danクリエイティブ・メディア1086 回インストール31 週間前に更新
リポジトリ

advanced-video-downloader について

advanced-video-downloaderは、yt-dlpとSiliconFlow APIを組み合わせて動画・音声のダウンロードと文字起こしを行うスキルです。メディアの保存やテキスト化に使え、複数プラットフォーム、プレイリストの一括取得、画質選択に対応します。

主な機能

  1. 011,000以上のプラットフォームから動画をダウンロード
  2. 02動画やプレイリストの一括ダウンロード
  3. 03MP3またはM4A形式で音声を抽出
  4. 04動画の解像度を選択
  5. 05SiliconFlowでMarkdownに文字起こし

活用シーン

  1. 01オンライン動画をオフライン視聴用に保存
  2. 02プレイリストや複数リンクをまとめて取得
  3. 03動画から音声を抽出して聴く
  4. 04動画や音声の内容をテキスト化

インストール

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

$npx skills add https://github.com/jst-well-dan/skill-box --skill advanced-video-downloader

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

同梱ファイル

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

.env.example
docs/
README.md
references/
quality_formats.md
supported_platforms.md
scripts/
transcribe_siliconflow.py

詳細

高度な動画ダウンローダー

概要

このスキルは、YouTube、Bilibili、TikTok、Twitter、Instagramなど、1000以上のプラットフォームから動画をダウンロードし、文字起こしする機能を提供します。次のツールを組み合わせています。

  • yt-dlp:高機能な動画ダウンロードツール
  • SiliconFlow API:動画をMarkdownに変換する、無料のAI文字起こし機能

このスキルを使用する場面

ユーザーが次のようなことをした場合に、このスキルを有効にします。

  • 動画のダウンロードを明示的に依頼する(「この動画をダウンロードして」「下载视频」)
  • どのプラットフォームのものでも、動画URLを提供する
  • オフラインで視聴するために動画を保存したいと話す
  • 動画から音声を抽出したいと話す
  • 複数の動画またはプレイリストをダウンロードする必要がある
  • 動画の画質オプションについて質問する
  • 動画の文字起こしを依頼する(「转录视频」「提取字幕」「视频转文字」)
  • 動画や音声をテキストまたはMarkdownに変換したいと話す
  • 1つのワークフローで動画のダウンロードと文字起こしの両方を依頼する

主な機能

1. 単一動画のダウンロード

対応するプラットフォームから動画を1本ずつダウンロードします。画質は自動で選択されます。

使用例:

User: "Download this YouTube video: https://youtube.com/watch?v=abc123"
User: "下载这个B站视频: https://bilibili.com/video/BV1xxx"
2. 一括ダウンロードとプレイリストのダウンロード

複数の動画またはプレイリスト全体を一度にダウンロードします。

使用例:

User: "Download all videos from this playlist"
User: "Download these 3 videos: [URL1], [URL2], [URL3]"
3. 音声の抽出

動画から音声のみを抽出し、MP3またはM4A形式で保存します。

使用例:

User: "Download only the audio from this video"
User: "Convert this video to MP3"
4. 画質の選択

動画の画質(4K、1080p、720pなど)を指定します。

使用例:

User: "Download in 4K quality"
User: "Get the 720p version to save space"
5. 動画・音声の文字起こし

SiliconFlowの無料AI文字起こしAPIを使って、動画または音声ファイルをMarkdown形式のテキストに変換します。

使用例:

User: "Transcribe this video to text" / "转录这个视频"
User: "Download and transcribe this YouTube video"
User: "将这个音频转成文字"
User: "Extract transcript from this MP4 file"

対応形式:

  • 音声:MP3、WAV、M4A、FLAC、AAC、OGG、OPUS、WMA
  • 動画:MP4、AVI、MOV、MKV、FLV、WMV、WEBM、M4V

応答パターン

ユーザーが動画のダウンロードを依頼した場合:

ステップ 1:プラットフォームとURLを特定する
# Extract video URL(s) from user message
# Identify platform: YouTube, Bilibili, TikTok, etc.
ステップ 2:ツールが利用可能か確認する
# Check if yt-dlp is installed
yt-dlp --version
ステップ 3:適切なyt-dlpコマンドを選択する

プラットフォームと要件に応じて選択します。

  • YouTube、Twitter、Instagram、TikTok:基本コマンドでダウンロードできます
  • Bilibili:ほとんどの動画は基本コマンドでダウンロードできます
  • 画質の選択:高さフィルターとともに-fを使用します
  • 音声のみ:-x --audio-format mp3を使用します
  • プレイリスト:プレイリスト用の出力テンプレートを使用します
ステップ 4:ダウンロードを実行する

適切なオプションを指定してyt-dlpを直接使用します。

# Basic download (best quality MP4)
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" "VIDEO_URL"

# Specific quality (1080p)
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" --merge-output-format mp4 -o "%(title)s.%(ext)s" "VIDEO_URL"

# Audio only (MP3)
yt-dlp -x --audio-format mp3 -o "%(title)s.%(ext)s" "VIDEO_URL"

# With cookies file (for protected content)
yt-dlp --cookies cookies.txt -o "%(title)s.%(ext)s" "VIDEO_URL"

# Playlist download
yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" "PLAYLIST_URL"
ステップ 5:結果を報告する

ダウンロード完了後、次の内容を報告します。

  • ✅ 動画のタイトルと長さ
  • ✅ ファイルサイズと形式
  • ✅ 保存先
  • ✅ ダウンロード速度と所要時間
  • ⚠️ 警告や画質上の制限

出力例:

✅ Downloaded: "Video Title Here"
   Duration: 15:30
   Quality: 1080p MP4
   Size: 234 MB
   Location: ./Video Title Here.mp4
   Time: 45 seconds at 5.2 MB/s

文字起こしの応答パターン

ユーザーが動画・音声の文字起こしを依頼した場合:

ステップ 1:前提条件を確認する
# Verify SiliconFlow API key is available
echo $SILICONFLOW_API_KEY
# Or user must provide via --api-key parameter

APIキーの設定:

  • 無料のAPIキーをこちらから取得します:https://cloud.siliconflow.cn/account/ak
  • .env.exampleを.envにコピーし、APIキーを追加します
  • または環境変数を設定します:SILICONFLOW_API_KEY=sk-xxx
ステップ 2:ファイルを検証する

ファイルが存在し、対応形式(音声または動画)であることを確認します。

ステップ 3:文字起こしを実行する

同梱されているスクリプトscripts/transcribe_siliconflow.pyを使用します。

# Basic transcription
python scripts/transcribe_siliconflow.py --file video.mp4 --api-key sk-xxx

# With custom output path
python scripts/transcribe_siliconflow.py --file audio.mp3 --output transcript.md --api-key sk-xxx

# Using environment variable for API key
python scripts/transcribe_siliconflow.py --file video.mp4
ステップ 4:文字起こしの結果を報告する
✅ Transcription complete!
   File: video.mp4
   Output: 2025-01-15-video.md
   Size: 12.5 KB

   Preview:
   --------------------------------------------------
   [First 200 characters of transcription...]
   --------------------------------------------------

組み合わせたワークフロー:ダウンロード+文字起こし

「この動画をダウンロードして文字起こしして」のような依頼の場合:

# Step 1: Download video
yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/best" --merge-output-format mp4 -o "%(title)s.%(ext)s" "VIDEO_URL"

# Step 2: Transcribe the downloaded file
python scripts/transcribe_siliconflow.py --file "Downloaded Video Title.mp4" --api-key sk-xxx

プラットフォーム固有の注意事項

YouTube
  • yt-dlpで完全にサポートされています
  • 公開動画のダウンロードに認証は不要です
  • 4K/8Kを含む、すべての画質に対応しています
Bilibili
  • yt-dlpでサポートされています
  • 高画質でダウンロードするには、ログインCookieが必要な場合があります
  • 会員限定コンテンツには、cookies.txtとともに--cookiesを使用します
その他のプラットフォーム
  • ほとんどのプラットフォームはyt-dlpで適切に動作します
  • 対応プラットフォームの一覧はreferences/supported_platforms.mdを確認してください

保護されたコンテンツに対するCookieの処理

認証が必要なプラットフォーム(Bilibili VIP、会員限定コンテンツなど)の場合:

方法 1:Cookieファイルをエクスポートする(推奨)
# Use browser extension "Get cookies.txt LOCALLY"
# Export cookies.txt, then:
yt-dlp --cookies cookies.txt "VIDEO_URL"
方法 2:Cookieファイルを手動で作成する
# Create cookies.txt in Netscape format
# Use browser extension "Get cookies.txt LOCALLY"
# Then use with yt-dlp
yt-dlp --cookies cookies.txt "VIDEO_URL"

トラブルシューティング

問題:動画の画質が予想より低い

解決方法:

  1. HD の視聴にログインが必要なプラットフォームかどうか確認します
  2. 認証が必要なアクセスには --cookies cookies.txt を使用します
  3. -f パラメーターで画質を明示的に指定します
問題:ダウンロードが非常に遅い

解決方法:

  1. インターネット接続を確認します
  2. 時間帯を変えて試します(ピーク時間帯は速度に影響します)
  3. ダウンロードを高速化するには --concurrent-fragments を使用します
問題:「Video unavailable」または地域制限が表示される

解決方法:

  1. 動画が地域制限されている可能性があります
  2. 法的に許可されている場合は、プロキシ/VPN を使用します
  3. 動画がプラットフォームで引き続き視聴可能か確認します
問題:文字起こし API キーのエラー

解決方法:

  1. API キーが sk- で始まっていることを確認します
  2. 無料キーをこちらから取得します:https://cloud.siliconflow.cn/account/ak
  3. 環境変数を設定します:SILICONFLOW_API_KEY=sk-xxx
問題:文字起こし結果が空

解決方法:

  1. 音声/動画に明瞭な話し声が含まれているか確認します
  2. ファイル形式がサポートされていることを確認します
  3. ファイルが短すぎるか、音楽のみが含まれている可能性があります

よく使うコマンド

画質のプリセット
# 4K (2160p)
yt-dlp -f "bestvideo[height<=2160]+bestaudio/best[height<=2160]" --merge-output-format mp4 "VIDEO_URL"

# 1080p (Full HD)
yt-dlp -f "bestvideo[height<=1080]+bestaudio/best[height<=1080]" --merge-output-format mp4 "VIDEO_URL"

# 720p (HD)
yt-dlp -f "bestvideo[height<=720]+bestaudio/best[height<=720]" --merge-output-format mp4 "VIDEO_URL"

# 480p (SD)
yt-dlp -f "bestvideo[height<=480]+bestaudio/best[height<=480]" --merge-output-format mp4 "VIDEO_URL"
音声の抽出
# Extract as MP3
yt-dlp -x --audio-format mp3 -o "%(title)s.%(ext)s" "VIDEO_URL"

# Extract as M4A (better quality)
yt-dlp -x --audio-format m4a -o "%(title)s.%(ext)s" "VIDEO_URL"
一括ダウンロード
# Download multiple URLs from file
yt-dlp -a urls.txt

# Download playlist with custom naming
yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s" "PLAYLIST_URL"

# Download channel's videos
yt-dlp -o "%(uploader)s/%(title)s.%(ext)s" "CHANNEL_URL"

同梱リソース

設定
.env.example

環境変数のテンプレートです。.env にコピーし、SiliconFlow API キーを追加してください。

スクリプト
scripts/transcribe_siliconflow.py

SiliconFlow の無料 API を使用する、AI による文字起こしスクリプトです。

使い方:

python scripts/transcribe_siliconflow.py --file <audio/video> [--api-key <key>] [--output <path>]

パラメーター:

  • --file, -f:入力する音声/動画ファイル(必須)
  • --api-key, -k:SiliconFlow API キー(または SILICONFLOW_API_KEY 環境変数を使用)
  • --output, -o:出力する Markdown ファイルのパス(デフォルト:YYYY-MM-DD-filename.md)
  • --model, -m:使用するモデル(デフォルト:FunAudioLLM/SenseVoiceSmall)
参考資料
references/supported_platforms.md

サポート対象の 1000 以上のプラットフォームを、プラットフォーム固有の注意事項や要件とともにまとめた一覧です。

references/quality_formats.md

動画形式、コーデック、画質選択の方法について詳しく説明します。

最良の結果を得るためのヒント

  1. ユーザーに画質の希望がある場合は、必ず指定します - 帯域幅とストレージを節約できます
  2. 一括ダウンロードで時間を節約できます - 可能であればプレイリストの URL を使用します
  3. 音声の抽出はより高速です - ポッドキャスト/音楽コンテンツには音声の抽出を推奨します
  4. ダウンロード前にファイルサイズを確認します - ファイルが非常に大きい場合(>1GB)はユーザーに警告します
  5. 文字起こしは音声が明瞭な場合に最も効果的です - より良い結果を得るため、先に音声を抽出することを検討します

参照元

コメント