Tubería yt-dlp → PikPak / Pipeline de descarga a la nube
Un comando: yt-dlp descarga un video, lo sube a PikPak por WebDAV, lo verifica y luego elimina la copia local.
Promesa de seguridad / Safety promise: Los archivos locales solo se eliminan después de una subida verificada (restricción a nivel de código, cleanup_local solo procesa archivos verificados).
Cobertura de sitios / Site coverage: yt-dlp admite más de 1000 sitios, incluidos YouTube, TikTok, X(Twitter), Facebook, Instagram, Bilibili, Vimeo, etc., justo los casos de uso principales de PikPak para guardar contenido de redes sociales. PikPak ofrece esta funcionalidad solo en su app; esta tubería la lleva al modo por lotes en línea de comandos. Las reglas de sitios como TikTok/X cambian rápidamente; si falla la extracción, prueba primero yt-dlp -U para actualizar.
0. Requisitos previos / Prerequisites
- PikPak Premium (WebDAV solo para miembros premium). ¿No tienes cuenta? Comienza con el skill
pikpak-onboardingpara registrarte. WebDAV requires PikPak Premium. No account? Start with thepikpak-onboardingskill. - yt-dlp:
pip install yt-dlp(owinget install yt-dlp). - Python 3.8+ con
requests. - Copia
webdav.config.json.examplecomowebdav.config.jsony completa las credenciales WebDAV (contraseña en texto plano, ya está en git-ignore, no la compartas).
1. Uso / Usage
# Un solo enlace / single URL
python scripts/pipeline.py "https://youtube.com/watch?v=..." --remote-dir my_videos
# Lista por lotes / URL list
python scripts/pipeline.py --url-file urls.txt --remote-dir my_videos
# Simulación (sin descargar ni subir) / dry run
python scripts/pipeline.py --url-file urls.txt --remote-dir my_videos --dry-run
# Conservar copias locales / keep local copies
python scripts/pipeline.py "URL" --remote-dir my_videos --keep-local
| Parámetro / Argument | Descripción / Description |
|---|---|
URL... / --url-file | Enlaces compatibles con yt-dlp; en la lista, uno por línea, líneas que comienzan con # son comentarios |
--remote-dir | Carpeta de destino en PikPak (se crea automáticamente) / remote folder, auto-created |
--work-dir | Directorio temporal local para descargas, por defecto scripts/../downloads_tmp |
--keep-local | Conservar archivos locales después de la subida / keep local files after upload |
--retry | Número de reintentos de subida por archivo, por defecto 5 |
--dry-run | Solo imprime el plan de procesamiento / print plan only |
--yt-dlp-args | Argumentos adicionales para pasar a yt-dlp, ej. --yt-dlp-args -f best |
2. Flujo de trabajo (para explicar al usuario) / How it works
Cuatro pasos por cada URL / four steps per URL:
- Descarga yt-dlp →
--work-dir(detección de archivos nuevos mediante comparación de instantáneas / new files detected by snapshot) - Subida PUT streaming archivo por archivo → PikPak, verificación de tamaño remoto / streaming PUT + size verify
- Limpieza Eliminación de copias locales verificadas (a menos que
--keep-local) / verified local copies removed - Registro
state/pipeline_<carpeta>.jsonguarda el estado de cada URL: hecho/fallido → al reanudar, salta los ya completados / resume-safe state
3. Problemas comunes / Gotchas
- Si yt-dlp no está en PATH, el script falla de inmediato: primero verifica que
yt-dlp --versionfuncione. - Ejecutar la misma URL dos veces la salta (estado marcado como hecho); para reprocesar, elimina el registro correspondiente en
state/. - WebDAV no puede eliminar archivos de la nube permanentemente; para limpiar en la nube usa la app/sitio oficial.
- Algunos sitios requieren cookies/inicio de sesión; usa
--yt-dlp-args --cookies-from-browser chromepara pasar las cookies. - Aviso de cumplimiento: Descarga solo contenido que tengas derecho a acceder. Only download content you have the right to access.
4. Skills relacionados / Related skills
pikpak-onboarding: ¿Aún no tienes cuenta en PikPak? Empieza desde el registro (incluye guía de instalación de la CLI oficial).pikpak-webdav-upload: ¿Ya tienes descargas locales? Súbelas directamente por lotes.