advanced-video-downloader について
advanced-video-downloaderは、yt-dlpとSiliconFlow APIを組み合わせて動画・音声のダウンロードと文字起こしを行うスキルです。メディアの保存やテキスト化に使え、複数プラットフォーム、プレイリストの一括取得、画質選択に対応します。
主な機能
- 011,000以上のプラットフォームから動画をダウンロード
- 02動画やプレイリストの一括ダウンロード
- 03MP3またはM4A形式で音声を抽出
- 04動画の解像度を選択
- 05SiliconFlowでMarkdownに文字起こし
活用シーン
- 01オンライン動画をオフライン視聴用に保存
- 02プレイリストや複数リンクをまとめて取得
- 03動画から音声を抽出して聴く
- 04動画や音声の内容をテキスト化
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ jst-well-dan/ skill-box --skill advanced-video-downloaderインストール後、Claude Code で/advanced-video-downloaderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.env.exampledocs/README.mdreferences/quality_formats.mdsupported_platforms.mdscripts/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"
トラブルシューティング
問題:動画の画質が予想より低い
解決方法:
- HD の視聴にログインが必要なプラットフォームかどうか確認します
- 認証が必要なアクセスには
--cookies cookies.txtを使用します -fパラメーターで画質を明示的に指定します
問題:ダウンロードが非常に遅い
解決方法:
- インターネット接続を確認します
- 時間帯を変えて試します(ピーク時間帯は速度に影響します)
- ダウンロードを高速化するには
--concurrent-fragmentsを使用します
問題:「Video unavailable」または地域制限が表示される
解決方法:
- 動画が地域制限されている可能性があります
- 法的に許可されている場合は、プロキシ/VPN を使用します
- 動画がプラットフォームで引き続き視聴可能か確認します
問題:文字起こし API キーのエラー
解決方法:
- API キーが
sk-で始まっていることを確認します - 無料キーをこちらから取得します:https://cloud.siliconflow.cn/account/ak
- 環境変数を設定します:
SILICONFLOW_API_KEY=sk-xxx
問題:文字起こし結果が空
解決方法:
- 音声/動画に明瞭な話し声が含まれているか確認します
- ファイル形式がサポートされていることを確認します
- ファイルが短すぎるか、音楽のみが含まれている可能性があります
よく使うコマンド
画質のプリセット
# 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
動画形式、コーデック、画質選択の方法について詳しく説明します。
最良の結果を得るためのヒント
- ユーザーに画質の希望がある場合は、必ず指定します - 帯域幅とストレージを節約できます
- 一括ダウンロードで時間を節約できます - 可能であればプレイリストの URL を使用します
- 音声の抽出はより高速です - ポッドキャスト/音楽コンテンツには音声の抽出を推奨します
- ダウンロード前にファイルサイズを確認します - ファイルが非常に大きい場合(>1GB)はユーザーに警告します
- 文字起こしは音声が明瞭な場合に最も効果的です - より良い結果を得るため、先に音声を抽出することを検討します