Video Stream Downloader is a powerful command-line utility that enables users to download video content streamed over HTTP from websites. It supports both DASH (Dynamic Adaptive Streaming over HTTP) using .mpd manifest files and HLS (HTTP Live Streaming) using .m3u8 playlists. The tool is designed to handle adaptive bitrate streams, fetch individual video and audio segments, and optionally mux them into a single playable file, making it ideal for offline viewing, archival, or analysis of online video content.
- Captures network requests and lists playlist and subtitle files from websites.
- Compatible with both DASH and HLS playlists.
- Enables multi-threaded downloading for faster performance.
- Muxing streams to single video container using ffmpeg.
- Offers robust automation support.
- One unified progress bar tracking the entire download, with real-time file size updates.
- Supports decryption for
AES-128,SAMPLE-AES,CENC,CBCS,CENSandCBC1. - Live stream downloading (not currently planned).
- ffmpeg (optional, recommended) required for transmuxing and transcoding streams.
- chrome / chromium (optional) needed only for the capture sub-command.
Visit the releases page for pre-built binaries or grab the latest CI builds.
Download and extract the archive, then copy the vsd binary to a directory of your choice.
Finally, add that directory to your system's PATH environment variable.
| Host | Architecture | Download |
|---|---|---|
| Android 7+ (Termux) | aarch64 | .tar.xz |
| Linux | aarch64 | .tar.xz |
| MacOS | aarch64 | .tar.xz |
| Windows | aarch64 | .zip |
| Linux | x86_64 | .tar.xz |
| MacOS | x86_64 | .tar.xz |
| Windows | x86_64 | .zip |
You can also install vsd using cargo.
$ cargo install vsdBelow are some example commands. For additional usage details, see CLI.md.
- Capture playlists and subtitles from a website.
$ vsd capture <url> --save-cookiesThe saved cookies can be used as
--cookies cookies.jsonwithsavesub-command later on.
- Download playlists. (test streams)
$ vsd save <url> -o video.mp4Use
-i, --interactiveflag to open an interactive session.
- Download encrypted playlists. (drm test vectors)
$ vsd save https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/mpds/11331.mpd \
--keys "eb676abbcb345e96bbcf616630f1a3da:100b6c20940f779a4589152b57d2dacb" \
-o video.mp4- List and select specific streams from a playlist.
$ vsd save <url> --list-streams
$ vsd save <url> --select-streams "v=1,2:a=3" -o video.mp4- Prefer some specific languages when downloading audio/subtitles.
$ vsd save <url> --select-streams "a=en,fr:s=en,fr" -o video.mp4- Use as a playlist parser. (json schema)
$ vsd save <url> --parse > parsed-playlist.json- Install the Termux app on your device, then enable storage permissions manually from its settings page. After that, run the following commands in the terminal.
$ pkg update
$ pkg upgrade
$ pkg install ffmpeg
$ ln -s /storage/emulated/0/Download Download- Install vsd on termux. Currently, only arm64-v8a binaries pre-builts are available which can be installed using the following command.
curl -L https://github.com/clitic/vsd/releases/download/vsd-0.4.3/vsd-0.4.3-aarch64-linux-android.tar.xz | tar xJC $PREFIX/bin-
Use third party browsers like Kiwi Browser (developer tools) paired with Get cookies.txt LOCALLY extension or Via Browser (tools > resource sniffer) to find playlists within websites.
-
Now you can run vsd as usual. The streams would be directly downloaded in your android downloads folder.
$ cd Download
$ vsd save <url> -o video.mp4List of alternatives to vsd:
- N_m3u8DL-RE is the best alternative to vsd. It also supports live playlists, which vsd does not. However, it lacks features like capture functionality.
- yt-dlp is excellent for downloading various playlists, but its main drawback is limited support for decryption.
- dash-mpd-cli is a highly effective tool for downloading DASH playlists. In fact, much of vsd’s internal logic for parsing and downloading DASH content is based on this tool.
- ffmpeg supports direct encoding of playlists.
- Both streamlink and vlc allow direct streaming of playlists.
Dual Licensed

