インストール | 使い方 | インストールせずに試す
v ideo stream d ownloader は、Web サイト、HLS、および DASH プレイリストから HTTP 経由で提供されるビデオ ストリームをダウンロードするためのコマンド ライン プログラムです。
ネットワークリクエストをキャプチャし、Web サイトから .m3u8、.mpd、字幕を収集してローカルに保存します。
ffmpeg を使用して単一のビデオ コンテナにストリームを多重化します。
通常のファイルのダウンロードと同様に、完全なダウンロード プロセスを示す単一の進行状況バー。リアルタイムのファイル サイズ推定が行われます。
AES-128
およびCENC
プレイリストの復号化をサポートします。
HLSとDASHをサポート
マルチスレッドでのダウンロードをサポートします。
GUI (おそらく将来)
SAMPLE-AES プレイリストの復号化をサポートします。
ライブ ストリームのダウンロード (ウィップ)
もっと見る
依存関係
ffmpeg (オプション、推奨) はストリームのトランスマックスとトランスコーディングにのみ必要です。
chrome / chromium (オプション) は、 capture
およびcollect
サブコマンドの場合にのみ必要です。
ビルド済みバイナリについてはリリースを参照してください。アーカイブをダウンロードして抽出し、vsd バイナリを任意のパスにコピーします。次に、そのパスをPATH
環境変数に追加します。
ホスト | 建築 | ダウンロード |
---|---|---|
Android 7 以降 (Termux) | aarch64 | .tar.xz |
Linux | aarch64 | .tar.xz |
MacOS 11.7以降 | aarch64 | .tar.xz |
窓 | aarch64 | 。ジップ |
Linux | x86_64 | .tar.xz |
MacOS 11.7以降 | x86_64 | .tar.xz |
窓 | x86_64 | 。ジップ |
このコマンドを使用して、cargo を通じて vsd をインストールすることもできます。
カーゴインストールvsd
ビルド手順はここ、変更ログはここにあります。
さらに、RealCataclysm によって作成されたサードパーティの GUI フロントエンドをインストールすることもできます。
HLS および DASH プレイリストをダウンロードしてディスクに保存します。
$ vsd save <url> -o video.mp4
テスト目的には、https://test-streams.mux.dev からのストリームを使用できます。
Web サイトから .m3u8 (HLS)、.mpd (Dash)、字幕を収集し、ローカルに保存します。
$ vsd キャプチャ <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 保存 --ヘルプ
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 ではサポートされていないライブ プレイリストもサポートしています。キャプチャなどの機能は付いていません。
N_m3u8DL-CLI も優れていますが、クロスプラットフォームではありません。
m3u8-downloader も優れていますが、カスタマイズ可能なオプションがほとんどありません。
webvideo-downloader は、Chrome を使用して Web サイトを開き、m3u8 リクエストをキャプチャします。 vsd のキャプチャコマンドがこの機能に最も近いです。
dump-mpd-cli は、DASH プレイリストをダウンロードするのに非常に適しています。また、DASH プレイリストの解析とダウンロードのための vsd 内部のほとんどは、メイン プロジェクト用に取得されます。
デュアルライセンス
Apache ライセンス、バージョン 2.0 (LICENSE-APACHE)
MIT ライセンス (LICENSE-MIT)