Sign inSign up

indraoctama/hls-downloader

By indraoctama

•Updated 3 days ago

HLS/m3u8 + YouTube/TikTok/IG downloader and demucs audio stem splitter — Go

Image
0

389

indraoctama/hls-downloader repository overview

⁠hls-downloader (Go)

Web UI + Go server with two tools, switched by a dropdown in the header:

  • HLS Downloader — paste video pages, YouTube / Instagram / TikTok links, .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.
  • Audio Splitter — drop audio files (mp3, wav, flac, m4a, ogg…) and split them into stems — vocals, drums, bass, guitar, piano, other + merged music — with demucs htdemucs_6s, plus 320k mp3 exports.

⁠Run

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).

⁠Tags

TagSizeContents
latest~2.1 GBFull: Debian + ffmpeg + yt-dlp + demucs/PyTorch (CPU)
lean~260 MBDownloader only (Alpine); splitter disabled

⁠API

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.

⁠Env

VarDefaultPurpose
PORT6969listen port
OUTPUT_DIR/downloadsdownload destination
SPLIT_OUTPUT_DIR/downloadsstems destination
DEMUCS_BINPATH lookupexplicit demucs binary
YTDLP_COOKIES / YTDLP_COOKIES_FROM_BROWSER—logged-in sessions for gated media
M3U8_SCRIPTscripts/m3u8.shpage→playlist resolver override

Source: https://github.com/indraoct/hls-downloader⁠

Tag summary

Content type

Image

Digest

sha256:3ce2c2cae…

Size

472.3 MB

Last updated

3 days ago

docker pull indraoctama/hls-downloader