@@ -72,13 +72,13 @@ Finally, add that directory to your system's `PATH` environment variable.
7272
7373| Host | Architecture | Download |
7474| ---------------------| --------------| --------------------------------------------------------------------------------------------------------------|
75- | Android 7+ (Termux) | aarch64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.1 /vsd-0.4.1 -aarch64-linux-android.tar.xz ) |
76- | Linux | aarch64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.1 /vsd-0.4.1 -aarch64-unknown-linux-musl.tar.xz ) |
77- | MacOS | aarch64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.1 /vsd-0.4.1 -aarch64-apple-darwin.tar.xz ) |
78- | Windows | aarch64 | [ .zip] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.1 /vsd-0.4.1 -aarch64-pc-windows-msvc.zip ) |
79- | Linux | x86_64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.1 /vsd-0.4.1 -x86_64-unknown-linux-musl.tar.xz ) |
80- | MacOS | x86_64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.1 /vsd-0.4.1 -x86_64-apple-darwin.tar.xz ) |
81- | Windows | x86_64 | [ .zip] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.1 /vsd-0.4.1 -x86_64-pc-windows-msvc.zip ) |
75+ | Android 7+ (Termux) | aarch64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.2 /vsd-0.4.2 -aarch64-linux-android.tar.xz ) |
76+ | Linux | aarch64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.2 /vsd-0.4.2 -aarch64-unknown-linux-musl.tar.xz ) |
77+ | MacOS | aarch64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.2 /vsd-0.4.2 -aarch64-apple-darwin.tar.xz ) |
78+ | Windows | aarch64 | [ .zip] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.2 /vsd-0.4.2 -aarch64-pc-windows-msvc.zip ) |
79+ | Linux | x86_64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.2 /vsd-0.4.2 -x86_64-unknown-linux-musl.tar.xz ) |
80+ | MacOS | x86_64 | [ .tar.xz] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.2 /vsd-0.4.2 -x86_64-apple-darwin.tar.xz ) |
81+ | Windows | x86_64 | [ .zip] ( https://github.com/clitic/vsd/releases/download/vsd-0.4.2 /vsd-0.4.2 -x86_64-pc-windows-msvc.zip ) |
8282
8383### Install via Cargo
8484
@@ -123,13 +123,13 @@ $ vsd save https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/mpds/11331.
123123
124124``` bash
125125$ vsd save < url> --list-streams
126- $ vsd save < url> --select-streams " 1,2" -o video.mp4
126+ $ vsd save < url> --select-streams " v= 1,2:a=3 " -o video.mp4
127127```
128128
129129- Prefer some specific languages when downloading audio/subtitles.
130130
131131``` bash
132- $ vsd save < url> --audio-lang " en,fr" --subs-lang " en,fr" -o video.mp4
132+ $ vsd save < url> --select-streams " a= en,fr:s= en,fr" -o video.mp4
133133```
134134
135135- Use as a playlist parser. ([ json schema] ( https://github.com/clitic/vsd/blob/main/vsd/src/playlist.rs ) )
@@ -147,7 +147,7 @@ $ vsd --help
147147```
148148Download video streams served over HTTP from websites, DASH (.mpd) and HLS (.m3u8) playlists.
149149
150- Usage: vsd.exe [OPTIONS] <COMMAND>
150+ Usage: vsd [OPTIONS] <COMMAND>
151151
152152Commands:
153153 capture Capture playlists and subtitles from a website
@@ -169,77 +169,109 @@ $ vsd save --help
169169```
170170Download DASH and HLS playlists
171171
172- Usage: vsd.exe save [OPTIONS] <INPUT>
172+ Usage: vsd save [OPTIONS] <INPUT>
173173
174174Arguments:
175- <INPUT> http(s):// | .mpd | .xml | .m3u8
175+ <INPUT>
176+ http(s):// | .mpd | .xml | .m3u8
176177
177178Options:
178- --base-url <BASE_URL> Base url to be used for building absolute url to segment. This flag is usually needed for
179- local input files. By default redirected playlist url is used
180- -d, --directory <DIRECTORY> Change directory path for temporarily downloaded files. By default current working
181- directory is used
182- -o, --output <OUTPUT> Mux all downloaded streams to a video container (.mp4, .mkv, etc.) using ffmpeg. Note
183- that existing files will be overwritten and downloaded streams will be deleted
184- --parse Parse playlist and returns it in json format. Note that --output flag is ignored when
185- this flag is used
186- --color <COLOR> When to output colored text [default: auto] [possible values: auto, always, never]
187- -h, --help Print help
179+ --base-url <BASE_URL>
180+ Base url to be used for building absolute url to segment. This flag is usually needed for local input files. By default redirected
181+ playlist url is used
182+
183+ -d, --directory <DIRECTORY>
184+ Change directory path for temporarily downloaded files. By default current working directory is used
185+
186+ -o, --output <OUTPUT>
187+ Mux all downloaded streams to a video container (.mp4, .mkv, etc.) using ffmpeg. Note that existing files will be overwritten and
188+ downloaded streams will be deleted
189+
190+ --parse
191+ Parse playlist and returns it in json format. Note that --output flag is ignored when this flag is used
192+
193+ --color <COLOR>
194+ When to output colored text
195+
196+ [default: auto]
197+ [possible values: auto, always, never]
198+
199+ -h, --help
200+ Print help (see a summary with '-h')
188201
189202Automation Options:
190- --all-streams Download all streams with --skip-audio, --skip-video and --skip-subs filters
191- kept in mind
192- --audio-lang <AUDIO_LANG> Preferred languages when multiple audio streams with different languages are
193- available. Must be in RFC 5646 format (eg. fr or en-AU). If a preference is not
194- specified and multiple audio streams are present, the first one listed in the
195- manifest will be downloaded. The values should be seperated by comma
196- -i, --interactive Prompt for custom streams selection with modern style input prompts. By default
197- proceed with defaults
198- --interactive-raw Prompt for custom streams selection with raw style input prompts. By default
199- proceed with defaults
200- -l, --list-streams List all the streams present inside the playlist
201- --quality <WIDTHxHEIGHT|HEIGHTp> Automatic selection of some standard resolution video stream with highest
202- bandwidth stream variant from playlist. If matching resolution of WIDTHxHEIGHT
203- is not found then only resolution HEIGHT would be considered for selection.
204- comman values: [lowest, min, 144p, 240p, 360p, 480p, 720p, hd, 1080p, fhd, 2k,
205- 1440p, qhd, 4k, 8k, highest, max] [default: highest]
206- -s, --select-streams <SELECT_STREAMS> Select streams to download by their ids obtained by --list-streams flag. It has
207- the highest priority among the rest of filters. The values should be seperated
208- by comma
209- --skip-audio Skip default audio stream selection
210- --skip-subs Skip default subtitle stream selection
211- --skip-video Skip default video stream selection
212- --subs-lang <SUBS_LANG> Preferred languages when multiple subtitles streams with different languages
213- are available. Must be in RFC 5646 format (eg. fr or en-AU). If a preference is
214- not specified and multiple subtitles streams are present, the first one listed
215- in the manifest will be downloaded. The values should be seperated by comma
203+ -i, --interactive
204+ Prompt for custom streams selection with modern style input prompts. By default proceed with defaults
205+
206+ --interactive-raw
207+ Prompt for custom streams selection with raw style input prompts. By default proceed with defaults
208+
209+ -l, --list-streams
210+ List all the streams present inside the playlist
211+
212+ -s, --select-streams <SELECT_STREAMS>
213+ Filters to be applied for automatic stream selection.
214+
215+ SYNTAX: `v={}:s={}:a={}` where `{}` (in priority order) can contain
216+ |> all: select all streams.
217+ |> skip: skip all streams or select inverter.
218+ |> 1,2: ids obtained by --list-streams flag.
219+ |> 1080p,1280x720: stream resolution.
220+ |> en,fr: stream language.
221+
222+ EXAMPLES:
223+ |> v=skip:a=skip:s=all (download all sub streems)
224+ |> a:en:s=en (prefer en lang)
225+ |> v=1080p:a=all:s=skip (1080p with all audio streams)
226+
227+ [default: v=best:s=en]
216228
217229Client Options:
218- --cookies <COOKIES> Fill request client with some existing cookies value. Cookies value can be same
219- as document.cookie or in json format same as puppeteer
220- --header <KEY> <VALUE> Custom headers for requests. This option can be used multiple times
221- --no-certificate-checks Skip checking and validation of site certificates
222- --proxy <PROXY> Set http(s) / socks proxy address for requests
223- --query <QUERY> Set query parameters for requests
224- --set-cookie <SET_COOKIE> <URL> Fill request client with some existing cookies per domain. First value for this
225- option is set-cookie header and second value is url which was requested to send
226- this set-cookie header. Example: --set-cookie "foo=bar; Domain=yolo.local"
227- https://yolo.local. This option can be used multiple times
228- --user-agent <USER_AGENT> Update and set user agent header for requests [default: "Mozilla/5.0 (Windows NT
229- 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0
230- Safari/537.36"]
230+ --cookies <COOKIES>
231+ Fill request client with some existing cookies value. Cookies value can be same as document.cookie or in json format same as puppeteer
232+
233+ --header <KEY> <VALUE>
234+ Custom headers for requests. This option can be used multiple times
235+
236+ --no-certificate-checks
237+ Skip checking and validation of site certificates
238+
239+ --proxy <PROXY>
240+ Set http(s) / socks proxy address for requests
241+
242+ --query <QUERY>
243+ Set query parameters for requests
244+
245+ --set-cookie <SET_COOKIE> <URL>
246+ Fill request client with some existing cookies per domain. First value for this option is set-cookie header and second value is url
247+ which was requested to send this set-cookie header. EXAMPLE: --set-cookie "foo=bar; Domain=yolo.local" https://yolo.local. This option
248+ can be used multiple times
249+
250+ --user-agent <USER_AGENT>
251+ Update and set user agent header for requests
252+
253+ [default: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"]
231254
232255Decrypt Options:
233- --keys <KID:KEY;...> Keys for decrypting encrypted streams. KID:KEY should be specified in hex format
234- --no-decrypt Download encrypted streams without decrypting them. Note that --output flag is ignored if
235- this flag is used
256+ --keys <KID:KEY;...>
257+ Keys for decrypting encrypted streams. KID:KEY should be specified in hex format
258+
259+ --no-decrypt
260+ Download encrypted streams without decrypting them. Note that --output flag is ignored if this flag is used
236261
237262Download Options:
238- --retries <RETRIES> Maximum number of retries to download an individual segment [default: 15]
239- --no-merge Download streams without merging them. Note that --output flag is ignored if this flag is
240- used
241- -t, --threads <THREADS> Maximum number of threads for parllel downloading of segments. Number of threads should be in
242- range 1-16 (inclusive) [default: 5]
263+ --retries <RETRIES>
264+ Maximum number of retries to download an individual segment
265+
266+ [default: 15]
267+
268+ --no-merge
269+ Download streams without merging them. Note that --output flag is ignored if this flag is used
270+
271+ -t, --threads <THREADS>
272+ Maximum number of threads for parllel downloading of segments. Number of threads should be in range 1-16 (inclusive)
273+
274+ [default: 5]
243275```
244276
245277## Running on Android
@@ -256,7 +288,7 @@ $ ln -s /storage/emulated/0/Download Download
2562882 . Install [ vsd on termux] ( https://github.com/clitic/vsd/blob/main/vsd/BUILD.md#android-on-termux ) . Currently, only * arm64-v8a* binaries pre-builts are available which can be installed using the following command.
257289
258290``` bash
259- curl -L https://github.com/clitic/vsd/releases/download/vsd-0.4.1 /vsd-0.4.1 -aarch64-linux-android.tar.xz | tar xJC $PREFIX /bin
291+ curl -L https://github.com/clitic/vsd/releases/download/vsd-0.4.2 /vsd-0.4.2 -aarch64-linux-android.tar.xz | tar xJC $PREFIX /bin
260292```
261293
2622943 . Use third party browsers like [ Kiwi Browser] ( https://github.com/kiwibrowser/src.next ) (* developer tools* ) paired with [ Get cookies.txt LOCALLY] ( https://chromewebstore.google.com/detail/get-cookiestxt-locally/cclelndahbckbenkjhflpdbgdldlbecc ) extension or [ Via Browser] ( https://play.google.com/store/apps/details?id=mark.via.gp ) (* tools > resource sniffer* ) to find playlists within websites.
0 commit comments