Self-hosted web app to fetch metadata and download video (MP4) or audio (MP3) from 1000+ sites via yt-dlp. Paste one or many URLs, pick quality, download locally.
- Single video — paste multiple links; dedupe; thumbnails (incl. Bilibili CDN proxy when needed)
- Profile / channel scan — flat playlist for TikTok, YouTube, Instagram, Bilibili space (
space.bilibili.com/…), Douyin, etc. (Facebook profile Reels tab is not supported by yt-dlp — use per-reelfacebook.com/reel/…links in single-video mode) - MP4 or MP3, optional resolution chips when the source exposes formats
- Cookies — by default, on a normal desktop (not Docker), yt-dlp uses
--cookies-from-browser(Chrome on Windows, Safari on macOS, Firefox on Linux) so logged-in sessions apply without exportingcookies.txt. Override with env vars below
brew install yt-dlp ffmpeg # or: apt install ffmpeg && pip install yt-dlp
git clone https://github.com/*****/clipbuild.git
cd clipbuild
chmod +x clipbuild.sh # Unix only, if needed
./clipbuild.shOpen http://localhost:8899 (or set PORT).
(Đổi URL clone nếu bạn đặt tên repo khác trên GitHub.)
docker build -t clipbuild . && docker run -p 8899:8899 clipbuildInside Docker there is no local browser profile; set YTDLP_COOKIES_FILE to a Netscape cookies file if a site requires login.
| Variable | Meaning |
|---|---|
PORT |
HTTP port (default 8899) |
HOST |
Bind address (default 127.0.0.1) |
YTDLP_COOKIES_FILE |
Path to cookies file (takes priority over browser) |
YTDLP_COOKIES_FROM_BROWSER |
e.g. chrome, edge, firefox — passed to yt-dlp |
YTDLP_BROWSER |
Default browser for auto cookie mode (chrome / safari / firefox by OS) |
YTDLP_SKIP_BROWSER_COOKIES |
1 — do not add --cookies-from-browser |
DOWNLOAD_TIMEOUT |
Download job timeout (seconds) |
PROFILE_SCAN_TIMEOUT |
Profile scan timeout (seconds) |
- Single video — paste URL(s), choose MP4 or MP3, Lấy thông tin, then download (or download all).
- Profile / channel — paste one profile URL, set max entries if needed, Quét danh sách; then download like single videos.
Anything yt-dlp supports: YouTube, TikTok, Instagram, Bilibili, Twitter/X, Reddit, Facebook (single reel/video URLs), Vimeo, Twitch, Dailymotion, SoundCloud, Loom, Streamable, Pinterest, Tumblr, Threads, LinkedIn, and more.
- Backend: Python, Flask (
app.py) - Frontend: one HTML template, vanilla CSS/JS (no bundler)
- Engine: yt-dlp + ffmpeg for merges
- Python deps: Flask, yt-dlp (see
requirements.txt)
For personal use only. Respect copyright and each platform’s terms of service. Authors are not responsible for misuse.
