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 tvdIf 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 tvdVisit 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
EndTimeorLengthis required. If both are specified,Lengthtakes 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/downloadsorC:\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=>ClientIDquality=>Qualitystart=>StartTimeend=>EndTimelength=>Lengthprefix=>FilePrefixfolder=>OutputFolderworkers=>WorkersVodIDis passed as an argument, not a flag (e.g.tvd 123567489)