video-download について
YouTube、TikTok、Douyin などの動画をローカルの MP4 ファイルとして保存するコマンドラインスキルです。形式選択や重複確認に加え、プラットフォーム別の再試行やブラウザ経由の代替手段を処理します。
主な機能
- 01動画を MP4 でダウンロード
- 02プラットフォーム接頭辞付き ID
- 03既存ファイルのスキップ
- 04TikTok Cookie による再試行
- 05Douyin・TikTok のブラウザ代替
活用シーン
- 01動画を 1 本ローカルに保存
- 02複数の動画 URL を一括取得
- 03TikTok・Douyin の失敗した取得を再試行
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ arcocodes/ renoise-plugins-official --skill video-downloadインストール後、Claude Code で/video-downloadを入力して読み込まれたか確認します。
同梱ファイルscripts/download-fallback.shscripts/download-video.sh
詳細
動画のダウンロード
YouTube、TikTok、その他のプラットフォームから動画をローカルの MP4 ファイルにダウンロードします。 フォーマットの選択、プラットフォーム接頭辞付きの重複排除、TikTok の Cookie を使ったフォールバック、Douyin/TikTok 向けのブラウザベースのフォールバックを自動で処理します。
クイックスタート
# Download any video
bash ${CLAUDE_SKILL_DIR}/scripts/download-video.sh '<URL>'
# Download to a custom directory
bash ${CLAUDE_SKILL_DIR}/scripts/download-video.sh '<URL>' 'path/to/output'
前提条件
yt-dlp --version # Required. Install: brew install yt-dlp (macOS) or pip install yt-dlp
任意(Douyin/TikTok のフォールバック用):
agent-browserをグローバルにインストール済みであること(npm install -g agent-browser)- Chrome for Testing をインストール済みであること(
agent-browser install)
使い方
動画を1本ダウンロードする
bash ${CLAUDE_SKILL_DIR}/scripts/download-video.sh '<URL>'
スクリプトがすべて自動で処理します:
- プラットフォーム接頭辞付きの動画 ID を抽出します(
yt-dQw4w9WgXcQ、tk-7571284267028729101、vid-aHR0cHM6Ly93d3) resources/references/<video_id>.mp4に保存します- ファイルがすでに存在する場合は、ダウンロードをスキップします(重複排除)
- TikTok のダウンロードに失敗した場合は、
--cookies-from-browser chromeを指定して再試行します - 中断されたダウンロードによるサイズ0の残存ファイルを削除します
一括ダウンロード
for URL in '<URL1>' '<URL2>' '<URL3>'; do
bash ${CLAUDE_SKILL_DIR}/scripts/download-video.sh "$URL"
done
スクリプトの出力
| 出力 | 意味 |
|---|---|
ALREADY_EXISTS: <path> | ファイルはすでにダウンロード済みのため、スキップされました |
DOWNLOADED: <path> | ダウンロードに成功しました |
FAILED: <message> | ダウンロードに失敗しました(終了コード1) |
ダウンロード後の操作
ダウンロードが成功した後、ユーザーは次の操作を行うことがあります:
-
動画を分析する — 台本、スタイル、リズムを抽出します:
renoise analyze <path> --target video --language <user-language> --json -
素材プールに追加する — 動画生成で参照素材として使用します:
node ${CLAUDE_PLUGIN_ROOT}/skills/renoise-cli/scripts/material-ingest.mjs <path>
ダウンロード完了後、これらの選択肢をユーザーに提案してください。
Douyin/TikTok のフォールバック
Douyin または TikTok の URL で yt-dlp が失敗した場合(403 エラーや地域制限のあるコンテンツでよく発生します)、次のワンステップのブラウザベースのフォールバックを使用します:
bash ${CLAUDE_SKILL_DIR}/scripts/download-fallback.sh '<douyin-or-tiktok-url>' 'output-dir'
このスクリプトは、agent-browser と GreenVideo を使った一連の処理を1つのコマンドにまとめています(開く → URL を貼り付ける → 解析する → 動画 URL を抽出する → ダウンロードする → 閉じる)。
手動でのフォールバック手順
フォールバックスクリプトを利用できない場合は、次の手順に従ってください:
-
GreenVideo を開きます:
agent-browser open "https://greenvideo.cc/en/" -
URL を貼り付けて解析します:
agent-browser snapshot agent-browser fill <input-ref> "<video-url>" agent-browser click <start-button-ref> -
5秒待ってから、動画 URL を抽出します:
agent-browser eval " (function() { const nuxtData = window.__NUXT__; if (!nuxtData) return 'ERROR: No Nuxt data found'; const str = JSON.stringify(nuxtData); const mp4Match = str.match(/https?:[^\\\"]*(?:mp4|video|play|aweme|douyinvod|bilivideo)[^\\\"]{0,500}/g); if (mp4Match && mp4Match.length > 0) return mp4Match[0]; return 'ERROR: No video URL found in Nuxt state'; })() " -
ダウンロードして後処理します:
curl -L -o ~/Downloads/<filename>.mp4 "<extracted-video-url>" agent-browser close
動画 ID のロジック
| プラットフォーム | パターン | ID の例 |
|---|---|---|
| YouTube | watch?v=、shorts/、embed/、youtu.be/ → 11文字の ID | yt-dQw4w9WgXcQ |
| TikTok | URL 内の15桁以上の数字の ID | tk-7571284267028729101 |
| その他 | URL の Base64url エンコードの先頭16文字 | vid-aHR0cHM6Ly93d3 |
トラブルシューティング
| エラー | 解決方法 |
|---|---|
HTTP Error 403(TikTok/Douyin) | スクリプトは Cookie を使って自動で再試行します。それでも失敗する場合は、フォールバックスクリプトを使用してください |
--max-filesize によりスキップされた | 動画が200Mの上限を超えています。-f 'best[height<=720]' を使って手動でダウンロードしてください |
is not a valid URL | URL が一重引用符で囲まれていることを確認してください |
Requested formats are incompatible | yt-dlp が自動でトランスコードするため、対応は不要です |
| GreenVideo での解析に失敗する | URL が有効で、一般にアクセス可能であることを確認してください |
| Nuxt の状態に動画 URL がない | ダウンロードボタンをクリックし、<video> 要素があるか確認してください |
| GreenVideo からのダウンロードに失敗する(403) | 動画 URL はすぐに期限切れになります。抽出後、すぐにダウンロードしてください |