tvd (Twitch VOD Downloader) is a command-line tool to download VODs from Twitch.tv. It is modeled after concat by ArneVogel.
- If building from source, you must have a client ID with appropriate privileges to query the GQL API for VODs
- Provided releases have an embedded client ID
If you’re using Homebrew on macOS, you can use it to install tvd
:
brew tap github.com/dbarbuzzi/homebrew-tap
brew install tvd
If you’re using Scoop on Windows, you can use it to install tvd
:
scoop bucket add dbarbuzzi https://github.com/dbarbuzzi/scoop-bucket.git
scoop install tvd
Visit the releases page to download the latest release for your platform.
Configuration is supported via config file and/org command-line flags. Values in the config file replace any built-in defaults, and values passed via command-line replace built-in/config file values.
Using a config file is alternative to command-line arguments. It can be used in conjunction with command-line arguments in which case command-line arguments will take precedence when duplicates are detected. Create a file named config.toml
and copy the contents from config-sample.toml
as a baseline. Marked values are optional and can be omitted to use defaults.
The accepted values are:
ClientID
- your Twitch app’s client IDQuality
(optional) - desired quality (e.g. “720p60”, “480p30”); can use “best” for best available (default: "best")StartTime
– start time in the format "HOURS MINUTES SECONDS" (e.g. "1 24 35" is 1h24m35s)EndTime
– end time in the same format as above (also supported: "end")Length
- duration in same format asStartTime
/EndTime
(also supported: "full")- Either
EndTime
orLength
is required. If both are specified,Length
takes precedence.
- Either
VodID
– ID of the VOD to be downloadedFilePrefix
(optional) – Prefix for the output filename, include your own separator (default: none)OutputFolder
(optional) – Full path to the folder to save the file (e.g./Users/username/downloads
orC:\Users\username\
) (default: current working directory)Workers
(optional) – Number of concurrent downloads (default: 4)
All options supported above are also supported through the command-line under the following flags:
client
=>ClientID
quality
=>Quality
start
=>StartTime
end
=>EndTime
length
=>Length
prefix
=>FilePrefix
folder
=>OutputFolder
workers
=>Workers
VodID
is passed as an argument, not a flag (e.g.tvd 123567489
)