Communitygithub.com

metatools2023/pikpak-agent-skills

yt-dlp 下载 → 上传 PikPak → 在线观看 → 清理本地 的一条龙管道:断点续跑、上传校验后才删本地、支持 URL 清单批量处理。覆盖 YouTube、TikTok、X(Twitter)、Facebook、B站 等 yt-dlp 支持的站点。支持 Windows / macOS / Linux。

pikpak-agent-skills란 무엇인가요?

이 스킬은 yt-dlp를 사용해 비디오를 다운로드한 후 WebDAV를 통해 PikPak 클라우드에 업로드하고, 업로드 검증 후에만 로컬 파일을 삭제하는 완전 자동화된 파이프라인을 제공합니다. YouTube, TikTok, X(Twitter), Facebook, Bilibili 등 1000개 이상의 yt-dlp 지원 사이트를 커버하며, URL 목록 파일을 통해 일괄 처리도 가능합니다. 주요 기능으로는 단일 또는 배치 다운로드, WebDAV 업로드 자동화, 업로드 검증 후 로컬 정리, 중단 시 재개 가능한 상태 저장, 드라이 런 모드 등이 있습니다. Windows, macOS, Linux에서 실행 가능하며, PikPak Premium 계정(WebDAV 사용 필수)과 yt-dlp 및 Python 3.8+ 환경이 필요합니다. 이 파이프라인은 로컬 디스크 공간을 절약하면서 클라우드에서 직접 비디오를 시청하려는 사용자에게 이상적입니다.

지원 대상~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

한 줄로 끝내기: 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 지원 링크; 목록은 한 줄에 하나, #으로 시작하는 줄은 주석 처리
--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당 네 단계 / 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 상태 저장 → 중단 후 재시작 시 자동으로 이미 완료된 작업 건너뜀 / 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: 이미 로컬에 다운로드한 파일이 있나요? 직접 일괄 업로드하세요.

관련 스킬