ReClip: Descargador de video y audio autohospedado con interfaz web limpia

Publicado por


Autohospedado

ReClip: Descargador de video y audio autohospedado con interfaz web limpia

Descarga videos de más de 1000 sitios como YouTube, TikTok, Instagram y Twitter/X. Extracción MP4/MP3, selector de calidad, descargas masivas y UI responsiva sin frameworks.

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar ReClip: Descargador de video y audio autohospedado con interfaz web limpia en el canal GENBYTE:

¿Qué es ReClip: Descargador de video y audio autohospedado con interfaz web limpia?

ReClip es una herramienta de código abierto, ligera y autohospedada para descargar videos y audio desde casi cualquier sitio web. Utiliza yt-dlp como motor de descarga, lo que le da compatibilidad con más de 1000 plataformas, y expone una interfaz web minimalista construida con HTML, CSS y JavaScript vanilla sin dependencias de frontend ni pasos de compilación. El backend es un único archivo Python de aproximadamente 150 líneas basado en Flask. El proyecto se distribuye bajo licencia MIT y está pensado para uso personal, respetando los derechos de autor y los términos de servicio de cada plataforma.

Backend en un solo archivo Python (~150 líneas) con Flask, frontend vanilla sin paso de compilación y motor de descarga yt-dlp + ffmpeg.

Características principales

Compatibilidad masiva

Descarga desde más de 1000 sitios soportados por yt-dlp, incluyendo YouTube, TikTok, Instagram, Twitter/X, Reddit, Facebook, Vimeo, Twitch, Dailymotion, SoundCloud, Loom, Streamable, Pinterest, Tumblr, Threads, LinkedIn y muchos más.

Formatos de salida

Permite descargar video en MP4 o extraer solo audio en MP3.

Selector de calidad y resolución

Muestra las opciones de calidad disponibles para cada video y permite elegir la deseada antes de descargar.

Descargas masivas

Admite pegar múltiples URLs a la vez y descargarlas individualmente o todas juntas con un solo clic.

Deduplicación automática de URLs

Elimina enlaces repetidos para evitar descargas innecesarias.

Interfaz limpia y responsiva

UI en un solo archivo HTML/CSS/JS, sin frameworks, sin build step, funcional en móvil y escritorio.

Backend minimalista

Aplicación Flask de ~150 líneas con solo dos dependencias Python: Flask y yt-dlp.

Requisitos del sistema

  • Docker y Docker Compose (recomendado)
  • Python 3.8 o superior (para instalación manual)
  • ffmpeg instalado en el sistema (para conversión y mezcla de audio/video)
  • yt-dlp instalado (para instalación manual)
  • Puerto 8899 disponible en el host

Instalación con Docker Compose

Instalación con Docker Compose (recomendada)

Clona el repositorio y levanta el servicio con Docker Compose. Los archivos descargados se guardan en un volumen persistente llamado reclip-downloads.

git clone https://github.com/averygan/reclip.git
cd reclip
docker compose up -d

Instalación manual (sin Docker)

Instala las dependencias del sistema y de Python, clona el repositorio y ejecuta el script de arranque incluido.

# Debian/Ubuntu
apt update && apt install -y ffmpeg python3-pip
pip install yt-dlp

# macOS (Homebrew)
brew install yt-dlp ffmpeg

# Clonar y ejecutar
git clone https://github.com/averygan/reclip.git
cd reclip
./reclip.sh

Construcción y ejecución manual de la imagen Docker

Si prefieres no usar Docker Compose, puedes construir la imagen y ejecutar el contenedor directamente.

docker build -t reclip .
docker run -d –name reclip -p 8899:8899 -v reclip-downloads:/app/downloads –restart unless-stopped reclip

Acceder al proyecto

Interfaz web

Una vez el contenedor o el script estén en marcha, abre el navegador en http://localhost:8899. La interfaz permite pegar URLs, elegir formato (MP4/MP3), obtener información del video, seleccionar calidad y descargar.

Casos de uso

  • Descarga personal de videos de YouTube, TikTok, Instagram, Twitter/X y otras plataformas para visualización offline.
  • Extracción de audio en MP3 de videoclips, podcasts o conferencias publicadas en plataformas compatibles.
  • Descarga masiva de listas de reproducción o múltiples enlaces en una sola sesión.
  • Archivado de contenido propio o de dominio público para uso local.
  • Conversión rápida de video a audio sin instalar software adicional en la máquina del usuario.

Configuración avanzada

Persistencia de descargas

El docker-compose.yml define un volumen nombrado reclip-downloads montado en /app/downloads dentro del contenedor. Los archivos descargados sobreviven a reinicios y actualizaciones del contenedor.

volumes:
reclip-downloads:

Usuario no root y permisos

El Dockerfile crea un usuario reclip (UID 1000) y cambia la propiedad de /app a ese usuario. El contenedor se ejecuta como usuario no privilegiado, mejorando la seguridad.

RUN useradd -m -u 1000 reclip && \
mkdir -p /app/downloads && \
chown -R reclip:reclip /app
USER reclip

Actualización automática de yt-dlp al inicio

El PATH del usuario reclip incluye ~/.local/bin, lo que permite que yt-dlp se actualice automáticamente si se instala con pip install –user yt-dlp dentro del contenedor. El entrypoint puede aprovechar esto para mantener yt-dlp al día.

ENV PATH=/home/reclip/.local/bin:$PATH

Configuración de Gunicorn

El contenedor usa Gunicorn con 1 worker, 4 hilos, timeout de 600 segundos y registro de acceso en stdout. Estos parámetros pueden ajustarse modificando el CMD en el Dockerfile o sobrescribiéndolo en docker-compose.yml.

CMD ["gunicorn", "-b", "0.0.0.0:8899", "-w", "1", "–threads", "4", "–timeout", "600", "–access-logfile", "-", "app:app"]

Gestión y mantenimiento

Actualizar la imagen

Para actualizar a la última versión del código, vuelve a construir la imagen y recrea el contenedor. El volumen de descargas se conserva.

cd reclip
git pull
docker compose build
docker compose up -d

Ver logs del servicio

Los logs de Gunicorn y la aplicación salen por stdout/stderr y pueden consultarse con Docker.

docker compose logs -f reclip

Backup de descargas

Los archivos descargados residen en el volumen reclip-downloads. Para hacer backup, copia el contenido del volumen a un destino seguro.

docker run –rm -v reclip-downloads:/data -v $(pwd)/backup:/backup alpine tar czf /backup/reclip-downloads-$(date +%F).tar.gz -C /data .

Reiniciar el servicio

Reinicia el contenedor sin perder datos ni configuración.

docker compose restart reclip

Stack técnico

  • Python 3.12 (imagen base python:3.12-slim)
  • Flask (backend web)
  • yt-dlp (motor de descarga de video/audio)
  • ffmpeg (procesamiento de multimedia)
  • Gunicorn (servidor WSGI de producción)
  • HTML/CSS/JS vanilla (frontend, sin frameworks ni build)
  • Docker / Docker Compose (despliegue y orquestación)

Referencias oficiales

Apoya el canal GENBYTE

Sígueme en mis redes sociales

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *