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, 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 지원 링크; 목록은 한 줄에 하나, #으로 시작하는 줄은 주석 처리 |
--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는 클라우드 파일을 영구 삭제할 수 없음; 클라우드 정리는 공식 앱/웹을 사용하세요.
- 일부 사이트는 쿠키/로그인이 필요합니다.
--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: 이미 로컬에 다운로드한 파일이 있나요? 직접 일괄 업로드하세요.