- Use video owner instead of creator when naming files, since creator can be the person who uploaded the video, not the author.
- Fix issue with cropping where blank frames were generated at the start of video (#166)
- Add ffmpeg info to
twitch-dl env
- Fix compatibility with python 3.8
- Download VODs to cache dir instead of temp dir (#105, #115, #164)
- Add
download --cache-dir
to allow user to override the default cache dir - Add
cache
command for viewing cache usage and clearing cache - Chat rendering improvements: align fonts to a common baseline, scale badges and emotes
- Fix breaking bug in chat renderer
- Embed additional metadata to videos:
date
(publish date) andshow
(game name)
- When downloading a video with
--start
and/or--end
offsets, crop the video to the exact times given, used to be rounded to the nearest VOD boundary (usually 10s)
- Add new options when prompting if a file should be overwritten: overwrite, overwrite all, skip, skip all, abort (thanks @NuVanDibe)
- Embed chapter metadata in video, allows skipping to chapter if video player supports it
- Increase default worker count to 10, seems to improve speeds
- Fix a bug where some clip slugs would not be recognized
- Add
--skip-existing
option todownload
command - Add
--json
option tochat
command - Improvements to chat renderer
- Add
chat
command for rendering twitch chat as a video which can then be embedded into a downloaded stream using ffmpeg.
- Add support for HD video qualities (#163)
- Add
clips --target-dir
option. Use in conjunction with--download
to specify target directory. - Fix a crash when downloading clips (#160)
- Handle video URLs which contain the channel name (#162)
- Don't stop downloading clips if one download fails
- Fix fetching access token (#155, thanks @KryptonicDragon)
- Show more playlist data when choosing quality
- Improve detection of 'source' quality for Twitch Enhanced Broadcast Streams (#154)
- Add m dot url support to video and clip regexes (thanks @localnerve)
- Respect --dry-run option when downloading videos
- Add automated tests on github actions
- Fix more compat issues Python < 3.10 (#152)
- Fix compat with Python < 3.10 (#152)
- Fix division by zero in progress calculation when video duration is reported as 0
- Requires Python 3.8+
- Migrated to Click library for generating the commandline interface
- Add shell auto completion, see 'Shell completion' in docs.
- Add setting defaults via environment variables, see 'Environment variables' in docs
- Add
download --concat
option to avoid using ffmeg for joinig vods and concat them instead. This will produce a.ts
file by default. - Add
download --dry-run
option to skip actual download (thanks @metacoma) - Add video description to metadata (#129)
- Add
clips --compact
option for listing clips in one-per-line mode
- Fix error caused by twitch requiring https for the usher api (thanks @deanpcmad)
- Replace client ID with one that works for now (thanks @mwhite34)
- Fix error caused by twitch changing the Usher domain (thanks @adsa95)
- Fix Python 3.7 compatibility (#117, thanks @eliduvid)
- Fix default value for game_ids (#102, thanks @FunnyPocketBook)
- Add chapter list to
info
command - Add
download --chapter
option for downloading a single chapter
- Fix an issue where a temp vod file would be renamed while still being open, which caused an exception on Windows (#111)
This release switches from using requests
to httpx
for making http requests,
and from threads to asyncio
for concurrency. This enables easier
implementation of new features, but has no breaking changes for the CLI.
- BREAKING: Require Python 3.7 or later.
- Add
--rate-limit
option todownload
for limiting maximum bandwidth when downloading. - Add
--compact
option todownload
for displaying one video per line. - Allow passing multiple video ids to
download
to download multiple videos successively. - Improved progress meter, updates on each chunk downloaded, instead of each VOD downloaded.
- Improved speed estimate, displays recent speed instead of average speed since the start of download.
- Decreased default concurrent downloads to 5. This seems to be enough to
saturate the download link in most cases. You can override this by setting the
-w
option. Please test and report back if this works for you.
- Add support for downloading subscriber-only VODs (#48, thanks @cemiu)
- Add
env
command for printing environment info for attaching to bug reports
- Add
--json
option tovideos
command (#92, thanks @miff2000) - Add
--all
option tovideos
andclips
commands to list all clips or videos in one go. - Modify how
--pager
works, will make multiple requests if needed to show all available items, ignoring--limit
.
- Add support for downloading audio only (#10)
- Fix issues with output formats (#87, #89)
- Fix issues when downloading clip with no game set (#78)
- Add option to use clip slug in
--output
format
- Add
--output
option todownload
command which allows setting output file template (#70) - Ask to overwrite before downloading to avoid later prompt
- Upgrade m3u8 lib to 1.0.0+
- Fix speed calculation when resuming download (#75, thanks CroquetteTheThe)
- Add artist and title metadata to resulting video (#80)
- Fix compat with older versions of python (#71)
- Fix clips download caused by Twitch changes (#64, thanks to all participants)
- Add support for new format of clip slug (thanks @Loveangel1337)
- Handle videos which don't exist more gracefully
- Added
info
command for displaying video or clip info (#51) - Don't show there are more videos when there aren't (#52, thanks @scottyallen)
- Fixed Twitch regression for getting the access token (#53)
- Fixed clip download issue (#45)
- Added
clips
command for listing and batch downloading clips (#26)
- Fix bug introduced in previous version which broke joining
- Added
source
as alias for best available quality (#33) - Added
--no-join
option todownload
to skip ffmpeg join (#36) - Added
--overwrite
option todownload
to overwrite target without prompting for confirmation (#37) - Added
--pager
option tovideos
, don't page by default (#30)
- Make downloading more robust, fixes issues with some VODs (#35)
- Bundle twitch-dl to a standalone archive, simplifying installation, see installation instructions in README
- Fix version number displayed by
twitch-dl --version
(#29)
- Fix videos incorrectly identified as clips (#28)
- Make download command work with video URLs lacking 'www' before 'twitch.tv'
- Print an error when video or clip is not found instead of an exception trace
- Add
--quality
option todownload
command, allows specifying the video quality to download. In this case, twitch-dl will require no user input. (#22) - Fix download of clips which contain numbers in their slug (#24)
- Fix URL to video displayed by
videos
command (it was missing /videos/)
- Breaking: wrongly named
--max_workers
option changed to--max-workers
. The shorthand option-w
remains the same. - Fix bug where
videos
command would crash if there was no game info (#21) - Allow unicode characters in filenames, no longer strips e.g. cyrillic script
- Fix videos command (#18)
- Breaking:
videos
command no longer takes the--offset
parameter due to API changes - Add paging to
videos
command to replace offset - Add
--game
option tovideos
command to filter by game
- Support for specifying broadcast type when listing videos (#13)
- Support for downloading clips (#15)
- Fix VOD naming issue (#12)
- Nice console output while downloading
- Fix video downloads after Twitch deprecated access token access
- Don't print errors when retrying download, only if all fails
- Fix usage of deprecated v3 API
- Use m3u8 lib for parsing playlists
- Add
--keep
option not preserve downloaded VODs
- No changes, bumped to fix issue with pypi
- Add
--sort
and--offset
options tovideos
command, allows paging (#7) - Show video URL in
videos
command output
- Add
--format
option todownload
command for specifying the output format (#6) - Add
--version
option for printing program version
- Allow limiting download by start and end time
- Initial release