yt-dlp → PikPak パイプライン / Download-to-Cloud Pipeline
1 コマンド:yt-dlp で動画ダウンロード → WebDAV 経由で PikPak にアップロード → 検証 → ローカルコピーを削除。 One command: yt-dlp downloads a video, uploads it to PikPak over WebDAV, verifies, then removes the local copy.
安全の約束 / Safety promise:ローカルファイルは、アップロードとリモートサイズの検証が完了した後にのみ削除されます(コードレベルで制約:cleanup_local は検証済みファイルのみ処理)。Local files are deleted only after a verified upload.
対応サイト / Site coverage:yt-dlp は 1000 以上のサイトに対応。よく使われる YouTube、TikTok、X(Twitter)、Facebook、Instagram、Bilibili、Vimeo も対応可能 — PikPak 公式が主にターゲットとするソーシャルメディア転送シナリオをカバーします(PikPak の公式ソーシャルメディア転送はアプリ内のみですが、このパイプラインはコマンドラインでのバッチモードを提供します)。TikTok/X などのサイトはルール変更が頻繁に行われるため、解析に失敗した場合は最初に yt-dlp -U でアップグレードしてから再試行してください。
0. 前提条件 / Prerequisites
- PikPak Premium(WebDAV はメンバーのみ利用可能)。アカウントがない場合:最初に
pikpak-onboardingスキルで登録してください。 WebDAV requires PikPak Premium. No account? Start with thepikpak-onboardingskill. - yt-dlp:
pip install yt-dlp(またはwinget install yt-dlp)。 - Python 3.8+ と
requests。 webdav.config.json.exampleをwebdav.config.jsonにコピーし、WebDAV 認証情報を入力します(平文パスワード、git-ignore 済み、共有禁止)。
1. 使い方 / Usage
# 単一リンク / single URL
python scripts/pipeline.py "https://youtube.com/watch?v=..." --remote-dir my_videos
# 一括リスト / URL list
python scripts/pipeline.py --url-file urls.txt --remote-dir my_videos
# ドライラン(ダウンロード・アップロードなし)/ dry run
python scripts/pipeline.py --url-file urls.txt --remote-dir my_videos --dry-run
# ローカルコピーを保持 / keep local copies
python scripts/pipeline.py "URL" --remote-dir my_videos --keep-local
| パラメータ / Argument | 説明 / Description |
|---|---|
URL... / --url-file | yt-dlp 対応リンク;リストは 1 行 1 URL、# で始まる行はコメント |
--remote-dir | PikPak のターゲットフォルダ(自動作成)/ remote folder, auto-created |
--work-dir | ローカルダウンロード一時ディレクトリ、デフォルトは scripts/../downloads_tmp |
--keep-local | アップロード成功後もローカルファイルを保持 / keep local files after upload |
--retry | 単一ファイルのアップロード再試行回数、デフォルト 5 |
--dry-run | 処理計画のみを表示 / print plan only |
--yt-dlp-args | yt-dlp に渡す追加引数(例:--yt-dlp-args -f best) |
2. ワークフロー(ユーザー向け説明)/ How it works
各 URL は 4 ステップ / four steps per URL:
- ダウンロード yt-dlp →
--work-dir(スナップショット比較で新規ファイルを検出 / new files detected by snapshot) - アップロード ファイルごとにストリーミング PUT → PikPak、リモートサイズ検証 / streaming PUT + size verify
- クリーンアップ 検証に合格したローカルコピーを削除(
--keep-local指定時は除く)/ verified local copies removed - 状態記録
state/pipeline_<フォルダ名>.jsonに各 URL の done/failed を記録 → 中断後に再実行すると完了済みの URL を自動スキップ / resume-safe state
3. よくある落とし穴 / Gotchas
- yt-dlp が PATH にない場合、エラーで即終了します。まず
yt-dlp --versionが使用可能か確認してください。 - 同じ URL を再度実行するとスキップされます(状態が done とマークされているため)。再実行したい場合は、
state/内の対応するレコードを削除してください。 - WebDAV ではクラウド上のファイルを完全に削除できません。クラウド上のクリーンアップは公式アプリ/ウェブサイトを使用してください。
- 一部のサイトでは Cookie/ログインが必要です。
--yt-dlp-args --cookies-from-browser chromeで透過的に渡します。 - コンプライアンス注意:アクセス権限のあるコンテンツのみをダウンロードしてください。Only download content you have the right to access.
4. 関連スキル / Related skills
pikpak-onboarding:PikPak アカウントをお持ちでない場合:登録から開始します(公式 CLI インストールガイドを含む)。pikpak-webdav-upload:既にローカルにダウンロード済みのファイルがある場合:直接一括アップロードします。