Communitygithub.com

metatools2023/pikpak-agent-skills

yt-dlp でダウンロード → PikPak にアップロード → オンライン視聴 → ローカル削除のワンストップパイプライン。中断後に再開可能、アップロード検証後にのみローカルファイルを削除、URL リスト一括処理に対応。YouTube、TikTok、X(Twitter)、Facebook、Bilibili など yt-dlp 対応サイトをカバー。Windows / macOS / Linux 対応。

pikpak-agent-skills とは?

このスキルは、yt-dlp を使用して動画をダウンロードし、WebDAV 経由で PikPak クラウドストレージにアップロードし、検証後にローカルコピーを削除する、効率的なパイプラインを提供します。主な用途は、ユーザーが「動画をダウンロードして PikPak に保存したい」「視聴後にローカルに残したくない」といった場合や、ディスク容量を節約したい場合です。対応サイトは YouTube、TikTok、X(Twitter)、Facebook、Instagram、Bilibili、Vimeo など yt-dlp がサポートする 1000 以上のサイトで、PikPak の主要機能であるソーシャルメディア転送をコマンドラインで一括実行できます。このスキルは Python スクリプトとして実装されており、中断後の再開機能(ステート管理)、アップロード検証後のみの安全なローカル削除、URL リストによる一括処理、ドライランモード、yt-dlp への追加引数渡しなどの機能を備えています。クロスプラットフォーム(Windows / macOS / Linux)で動作し、PikPak プレミアム会員であることが前提条件です。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/metatools2023/pikpak-agent-skills/tree/HEAD/skills/pikpak-yt-dlp-pipeline

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

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

  1. PikPak Premium(WebDAV はメンバーのみ利用可能)。アカウントがない場合:最初に pikpak-onboarding スキルで登録してください。 WebDAV requires PikPak Premium. No account? Start with the pikpak-onboarding skill.
  2. yt-dlp:pip install yt-dlp(または winget install yt-dlp)。
  3. Python 3.8+ と requests。
  4. 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-fileyt-dlp 対応リンク;リストは 1 行 1 URL、# で始まる行はコメント
--remote-dirPikPak のターゲットフォルダ(自動作成)/ 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-argsyt-dlp に渡す追加引数(例:--yt-dlp-args -f best)

2. ワークフロー(ユーザー向け説明)/ How it works

各 URL は 4 ステップ / four steps per URL:

  1. ダウンロード yt-dlp → --work-dir(スナップショット比較で新規ファイルを検出 / new files detected by snapshot)
  2. アップロード ファイルごとにストリーミング PUT → PikPak、リモートサイズ検証 / streaming PUT + size verify
  3. クリーンアップ 検証に合格したローカルコピーを削除(--keep-local 指定時は除く)/ verified local copies removed
  4. 状態記録 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:既にローカルにダウンロード済みのファイルがある場合:直接一括アップロードします。

関連スキル