安裝| 用途 | 嘗試不安裝
video s tream d ownloader 是一個命令列程序,用於從網站、HLS 和 DASH 播放清單下載透過 HTTP 提供的視訊串流。
捕獲網路請求並從網站收集.m3u8、.mpd和字幕並保存在本地。
使用 ffmpeg 將串流復用到單一視訊容器。
完整的下載過程的單一進度條,如帶有即時檔案大小估計的普通檔案下載。
支援AES-128
和CENC
播放清單解密。
支援 HLS 和 DASH
支援多線程下載。
GUI(也許將來)
支援SAMPLE-AES播放清單解密。
直播下載(wip)
看更多
依賴關係
ffmpeg(可選,建議)僅用於轉復用和轉碼流。
chrome / chromium(可選)僅適用於capture
和collect
子指令。
存取預先建置二進位檔案的版本。下載並解壓縮存檔,然後將 vsd 二進位檔案複製到任何路徑。現在將該路徑新增至您的PATH
環境變數。
主持人 | 建築學 | 下載 |
---|---|---|
Android 7+ (Termux) | 架構64 | .tar.xz |
Linux | 架構64 | .tar.xz |
MacOS 11.7+ | 架構64 | .tar.xz |
視窗 | 架構64 | 。 |
Linux | x86_64 | .tar.xz |
MacOS 11.7+ | x86_64 | .tar.xz |
視窗 | x86_64 | 。 |
您也可以使用此命令透過 Cargo 安裝 vsd。
貨物安裝vsd
可以在此處找到建置說明,並在此處找到變更日誌。
此外,您還可以安裝由 RealCataclysm 建立的第三方 GUI 前端。
下載 HLS 和 DASH 播放清單並將其儲存到磁碟。
$ vsd 儲存 <url> -o video.mp4
出於測試目的,您可以使用 https://test-streams.mux.dev 中的串流。
從網站收集 .m3u8 (HLS)、.mpd (Dash) 和字幕並將其保存在本地。
$ vsd capture <url> --save
$ vsd --幫助
Download video streams served over HTTP from websites, DASH (.mpd) and HLS (.m3u8) playlists. Usage: vsd.exe [OPTIONS] <COMMAND> Commands: capture Capture playlists and subtitles from a website extract Extract subtitles from mp4 boxes merge Merge multiple segments to a single file save Download DASH and HLS playlists help Print this message or the help of the given subcommand(s) Options: --color <COLOR> When to output colored text [default: auto] [possible values: auto, always, never] -h, --help Print help -V, --version Print version
$ vsd 保存 --help
Download DASH and HLS playlists Usage: vsd.exe save [OPTIONS] <INPUT> Arguments: <INPUT> http(s):// | .mpd | .xml | .m3u8 Options: --base-url <BASE_URL> Base url to be used for building absolute url to segment. This flag is usually needed for local input files. By default redirected playlist url is used -d, --directory <DIRECTORY> Change directory path for temporarily downloaded files. By default current working directory is used -o, --output <OUTPUT> Mux all downloaded streams to a video container (.mp4, .mkv, etc.) using ffmpeg. Note that existing files will be overwritten and downloaded streams will be deleted --parse Parse playlist and returns it in json format. Note that `--output` flag is ignored when this flag is used --color <COLOR> When to output colored text [default: auto] [possible values: auto, always, never] --raw-prompts Raw style input prompts for old and unsupported terminals -h, --help Print help Automation Options: --prefer-audio-lang <PREFER_AUDIO_LANG> Preferred language when multiple audio streams with different languages are available. Must be in RFC 5646 format (eg. fr or en-AU). If a preference is not specified and multiple audio streams are present, the first one listed in the manifest will be downloaded --prefer-subs-lang <PREFER_SUBS_LANG> Preferred language when multiple subtitles streams with different languages are available. Must be in RFC 5646 format (eg. fr or en-AU). If a preference is not specified and multiple subtitles streams are present, the first one listed in the manifest will be downloaded -q, --quality <WIDTHxHEIGHT|HEIGHTp> Automatic selection of some standard resolution streams with highest bandwidth stream variant from playlist. If matching resolution of WIDTHxHEIGHT is not found then only resolution HEIGHT would be considered for selection. comman values: [lowest, min, 144p, 240p, 360p, 480p, 720p, hd, 1080p, fhd, 2k, 1440p, qhd, 4k, 8k, highest, max] [default: highest] --skip-prompts Skip user input prompts and proceed with defaults Client Options: --cookies <COOKIES> Fill request client with some existing cookies value. Cookies value can be same as document.cookie or in json format same as puppeteer --header <KEY> <VALUE> Custom headers for requests. This option can be used multiple times --no-certificate-checks Skip checking and validation of site certificates --proxy <PROXY> Set http(s) / socks proxy address for requests --set-cookie <SET_COOKIE> <URL> Fill request client with some existing cookies per domain. First value for this option is set-cookie header and second value is url which was requested to send this set-cookie header. Example `--set-cookie "foo=bar; Domain=yolo.local" https://yolo.local`. This option can be used multiple times --user-agent <USER_AGENT> Update and set user agent header for requests [default: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"] Decrypt Options: --all-keys Use all supplied keys for decryption instead of using keys which matches with default kid only -k, --key <KEY|KID:KEY> Keys for decrypting encrypted streams. If streams are encrypted with a single key then there is no need to specify key id else specify decryption key in format KID:KEY. KEY value can be specified in hex, base64 or file format. This option can be used multiple times --no-decrypt Download encrypted streams without decrypting them. Note that --output flag is ignored if this flag is used Download Options: --retry-count <RETRY_COUNT> Maximum number of retries to download an individual segment [default: 15] --no-merge Download streams without merging them. Note that --output flag is ignored if this flag is used -t, --threads <THREADS> Maximum number of threads for parllel downloading of segments. Number of threads should be in range 1-16 (inclusive) [default: 5]
vsd 的替代品清單:
N_m3u8DL-RE 是 vsd 的最佳替代品。它還支援 vsd 不支援的即時播放清單。它不具備capture等功能。
N_m3u8DL-CLI 也不錯,但它不是跨平台的。
m3u8-downloader 也不錯,但它的可自訂選項很少。
webvideo-downloader 使用 Chrome 開啟網站,然後捕獲 m3u8 請求。 vsd 的capture指令最接近此功能。
dash-mpd-cli 非常適合下載 DASH 播放清單。此外,用於解析和下載 DASH 播放清單的 vsd 內部大部分內容都用於其主要項目。
雙重許可
Apache 許可證,版本 2.0 (LICENSE-APACHE)
麻省理工學院許可證(LICENSE-MIT)