A self-hosted, open-source video and audio downloader with a clean web UI. Paste links from YouTube, TikTok, Instagram, Twitter/X, and 1000+ other sites — download as MP4 or MP3.
This is a fork of averygan/reclip with additional features: persistent download jobs, progress tracking, file management, and a concurrent download system.
preview.mp4
- Download videos from 1000+ supported sites (via yt-dlp)
- MP4 video or MP3 audio extraction
- Quality/resolution picker
- Bulk downloads — paste multiple URLs at once
- Persistent jobs — download state survives page reloads and server restarts
- Progress tracking — live progress bar with percentage and estimated size
- Cancel downloads — stop an active download at any time
- Downloaded files list — browse completed downloads directly in the UI
- Concurrent downloads — multiple downloads can run in parallel
- Clean, responsive UI — no frameworks, no build step
git clone https://github.com/papulo79/reclip.git
cd reclip
docker compose up -dOpen http://localhost:8899.
For development (uses local code with live reload):
docker compose -f docker-compose.dev.yml up -d --buildgit clone https://github.com/papulo79/reclip.git
cd reclip
./reclip.shThis creates a virtual environment, installs Flask and yt-dlp, and starts the app on port 8899.
- Paste one or more video URLs into the input box
- Choose MP4 (video) or MP3 (audio)
- Click Fetch to load video info and thumbnails
- Select quality/resolution if available
- Click Download on individual videos, or Download All
Downloaded files are saved to the downloads/ directory.
The backend exposes a small REST API used by the frontend:
| Endpoint | Method | Description |
|---|---|---|
/api/info |
POST | Fetch metadata for a URL |
/api/download |
POST | Start a download job |
/api/status/<job_id> |
GET | Poll job progress |
/api/jobs |
GET | List persisted jobs |
/api/files |
GET | List downloaded files |
/api/cancel/<job_id> |
POST | Cancel an active download |
Anything yt-dlp supports, including:
YouTube, TikTok, Instagram, Twitter/X, Reddit, Facebook, Vimeo, Twitch, Dailymotion, SoundCloud, Loom, Streamable, Pinterest, Tumblr, Threads, LinkedIn, and many more.
- Backend: Python + Flask (~400 lines)
- Frontend: Vanilla HTML/CSS/JS (no build step)
- Download engine: yt-dlp + ffmpeg
- Job persistence: JSON file (
jobs.json)
This tool is intended for personal use only. Please respect copyright laws and the terms of service of the platforms you download from. The developers are not responsible for any misuse of this tool.