yt-dlp → PikPak 管道 / Download-to-Cloud Pipeline
一條命令: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、B站、Vimeo 均可——正好覆蓋 PikPak 官方主打的社媒轉存場景(PikPak 自家社媒轉存僅限其 App 內,本管道把它帶到命令列批次模式)。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 支援的連結;清單一行一個,# 開頭為註解 |
--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 四步 / 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 → 中斷重跑自動跳過已完成 / resume-safe state
3. 常見坑 / Gotchas
- yt-dlp 不在 PATH 會直接報錯退出——先確認
yt-dlp --version可用。 - 同一 URL 重複執行會跳過(state 標記 done);想重跑先刪
state/裡對應記錄。 - WebDAV 不能永久刪除雲端檔案;雲端清理請用官方 App/網頁。
- 部分站點需要 cookies/登入,用
--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:已有本機下載成果?直接批次上傳。