HLS/m3u8 + YouTube/TikTok/IG downloader and demucs audio stem splitter — Go
389
Web UI + Go server with two tools, switched by a dropdown in the header:
.m3u8 / .playlist / .txt playlists or direct .mp4 URLs. Up to 6 concurrent downloads; per-row format: full video+audio (mp4), muted video, or audio only (mp3). Photo albums/galleries are fetched as image sets.htdemucs_6s, plus 320k mp3 exports.docker run -p 6969:6969 -v "$HOME/Downloads:/downloads" indraoctama/hls-downloader:latest
Open http://localhost:6969. Downloads land in ~/Downloads; stems in ~/Downloads/separated/htdemucs_6s/<track>/ (wav + mp3).
| Tag | Size | Contents |
|---|---|---|
latest | ~2.1 GB | Full: Debian + ffmpeg + yt-dlp + demucs/PyTorch (CPU) |
lean | ~260 MB | Downloader only (Alpine); splitter disabled |
POST /api/download, GET /api/jobs, POST /api/cancel, POST /api/split (multipart files), GET /api/split/jobs, POST /api/split/cancel, POST /api/shutdown, POST /api/restart, GET /api/memstats.
| Var | Default | Purpose |
|---|---|---|
PORT | 6969 | listen port |
OUTPUT_DIR | /downloads | download destination |
SPLIT_OUTPUT_DIR | /downloads | stems destination |
DEMUCS_BIN | PATH lookup | explicit demucs binary |
YTDLP_COOKIES / YTDLP_COOKIES_FROM_BROWSER | — | logged-in sessions for gated media |
M3U8_SCRIPT | scripts/m3u8.sh | page→playlist resolver override |
Content type
Image
Digest
sha256:3ce2c2cae…
Size
472.3 MB
Last updated
3 days ago
docker pull indraoctama/hls-downloader