yt-dlp → PikPak Pipeline / Pipeline de Download para a Nuvem
Um comando: yt-dlp baixa o vídeo → WebDAV envia para o PikPak → verifica → remove a cópia local. One command: yt-dlp downloads a video, uploads it to PikPak over WebDAV, verifies, then removes the local copy.
Compromisso de segurança / Safety promise: Arquivos locais são excluídos somente após o upload e verificação de tamanho remota (restrição no código, cleanup_local só processa arquivos verificados). Local files are deleted only after a verified upload.
Cobertura de sites / Site coverage: yt-dlp suporta mais de 1000 sites, incluindo YouTube, TikTok, X(Twitter), Facebook, Instagram, Bilibili, Vimeo – cobrindo exatamente os cenários de transferência de mídia social que o PikPak promove (o recurso próprio do PikPak é limitado ao app; esta pipeline traz isso para o modo de linha de comando em lote). Regras de sites como TikTok/X mudam rápido; se falhar na extração, tente yt-dlp -U para atualizar.
0. Pré-requisitos / Prerequisites
- PikPak Premium (WebDAV disponível apenas para assinantes). Não tem conta? Use a skill
pikpak-onboardingpara se registrar. WebDAV requires PikPak Premium. No account? Start with thepikpak-onboardingskill. - yt-dlp:
pip install yt-dlp(ouwinget install yt-dlp). - Python 3.8+ e
requests. - Copie
webdav.config.json.exampleparawebdav.config.jsone preencha as credenciais WebDAV (senha em texto claro, já no .gitignore, não compartilhe).
1. Uso / Usage
# URL única / single URL
python scripts/pipeline.py "https://youtube.com/watch?v=..." --remote-dir meus_videos
# Lista de URLs / URL list
python scripts/pipeline.py --url-file urls.txt --remote-dir meus_videos
# Simulação (sem download/upload) / dry run
python scripts/pipeline.py --url-file urls.txt --remote-dir meus_videos --dry-run
# Manter cópia local / keep local copies
python scripts/pipeline.py "URL" --remote-dir meus_videos --keep-local
| Parâmetro / Argument | Descrição / Description |
|---|---|
URL... / --url-file | Links suportados pelo yt-dlp; lista uma por linha, # no início é comentário |
--remote-dir | Pasta de destino no PikPak (criada automaticamente) / remote folder, auto-created |
--work-dir | Diretório temporário local para downloads, padrão scripts/../downloads_tmp |
--keep-local | Manter arquivos locais após upload bem-sucedido / keep local files after upload |
--retry | Número de tentativas de upload por arquivo, padrão 5 |
--dry-run | Apenas exibe o plano de processamento / print plan only |
--yt-dlp-args | Argumentos extras a serem passados para o yt-dlp, ex.: --yt-dlp-args -f best |
2. Fluxo de trabalho (explicação para o usuário) / How it works
Cada URL passa por quatro etapas / four steps per URL:
- Download yt-dlp →
--work-dir(novos arquivos detectados por comparação de snapshot / new files detected by snapshot) - Upload PUT streaming arquivo por arquivo → PikPak, verificação de tamanho remota / streaming PUT + size verify
- Limpeza Cópias locais verificadas são removidas (a menos que
--keep-local) / verified local copies removed - Registro
state/pipeline_<pasta>.jsonregistra cada URL como done/failed → retomada automática após interrupção / resume-safe state
3. Armadilhas comuns / Gotchas
- Se o yt-dlp não estiver no PATH, o script falha imediatamente – primeiro confirme que
yt-dlp --versionfunciona. - Executar a mesma URL novamente será ignorado (state marca como done); para refazer, exclua o registro correspondente em
state/. - O WebDAV não permite exclusão permanente de arquivos na nuvem; limpeza na nuvem deve ser feita pelo app/site oficial.
- Alguns sites exigem cookies/login: use
--yt-dlp-args --cookies-from-browser chrome. - Aviso de conformidade: Baixe apenas conteúdo que você tem direito de acessar. Only download content you have the right to access.
4. Skills relacionadas / Related skills
pikpak-onboarding: Não tem conta no PikPak? Comece pelo registro (inclui guia de instalação da CLI oficial).pikpak-webdav-upload: Já tem downloads locais? Faça upload em lote diretamente.