Go to file
2020-11-10 10:44:18 +01:00
tests Improve parsing inputs for download command 2020-08-09 11:45:39 +02:00
twitchdl Fix print_clip when game is not set 2020-11-10 10:44:18 +01:00
.flake8 Initial commit 2018-01-25 11:09:20 +01:00
.gitignore Add bundling with zipapp 2020-08-13 13:47:03 +02:00
CHANGELOG.md Bump version 2020-09-29 12:22:24 +02:00
LICENSE Initial commit 2018-01-25 11:09:20 +01:00
Makefile Improve bundle command 2020-09-03 11:09:38 +02:00
README.md Update readme 2020-11-10 10:44:09 +01:00
requirements-dev.txt Improve parsing inputs for download command 2020-08-09 11:45:39 +02:00
setup.py Bump version 2020-09-29 12:22:24 +02:00
stdeb.cfg Bump version 2019-08-13 12:40:00 +02:00
twitch-dl.1.scd Implement downloading clips 2020-04-11 16:07:17 +02:00

Twitch Downloader

CLI tool for downloading videos from twitch.tv

Inspired by youtube-dl but improves upon it by using multiple concurrent connections to make the download faster.

Resources

Requirements

  • Python 3.5+
  • ffmpeg, installed and on the system path

Installation

Download standalone archive

Go to the latest release and download the twitch-dl.<version>.pyz archive.

Run the archive by either:

a) passing it to python:

python3 twitch-dl.1.10.2.pyz --help

b) making it executable and invoking it directly (linux specific):

chmod +x twitch-dl.1.10.2.pyz
./twitch-dl.1.10.2.pyz --help

Feel free to rename the archive to something more managable, like twitch-dl.

To upgrade to a newer version, repeat the process with the newer release.

From PYPI using pipx

pipx is a tool which installs python apps into isolated environments, which prevents all kinds of problems later so it's the suggested way to install twitch-dl from PYPI.

Install pipx as described in pipx install docs.

Install twitch-dl:

pipx install twitch-dl

Check installation worked:

twitch-dl --help

If twitch-dl executable is not found, check that the pipx binary location (by default ~/.local/bin) is in your PATH.

To upgrade twitch-dl to the latest version:

pipx install twitch-dl

Usage

Listing videos

List recent streams for a given channel:

twitch-dl videos bananasaurus_rex

Yields (trimmed):

Found 33 videos

221837124
SUPER MARIO ODYSSSEY - Stream #2 / 600,000,000
Bananasaurus_Rex playing Super Mario Odyssey
Published 2018-01-24 @ 12:05:25  Length: 3h 40min

221418913
Dead Space and then SUPER MARIO ODYSSEY PogChamp
Bananasaurus_Rex playing Dead Space
Published 2018-01-23 @ 02:40:58  Length: 6h 2min

220783179
Dead Space | Got my new setup working! rexChamp
Bananasaurus_Rex playing Dead Space
Published 2018-01-21 @ 05:47:03  Length: 5h 7min

Use the --game option to specify one or more games to show:

twitch-dl videos --game "doom eternal" --game "cave story" bananasaurus_rex

Downloading videos

Download a stream by ID or URL:

twitch-dl download 221837124
twitch-dl download https://www.twitch.tv/videos/221837124

Specify video quality to download:

twitch-dl download -q 720p 221837124

Setting quality to source will download the best available quality:

twitch-dl download -q source 221837124

Listing clips

List clips for the given period:

twitch-dl clips bananasaurus_rex --period last_week

Supported periods are: last_day, last_week, last_month, all_time.

For listing a large number of clips, it's nice to page them:

twitch-dl clips bananasaurus_rex --period all_time --limit 10 --pager

This will show 10 clips at a time and ask to continue.

Downloading clips

Download a clip by slug or URL:

twitch-dl download VenomousTameWormHumbleLife
twitch-dl download https://www.twitch.tv/bananasaurus_rex/clip/VenomousTameWormHumbleLife

Specify clip quality to download:

twitch-dl download -q 720 VenomousTameWormHumbleLife

Note that twitch names for clip qualities have no trailing "p".

Batch downloading clips

It's possible to download all clips for a given period:

twitch-dl clips bananasaurus_rex --period last_week --download

Clips are downloaded in source quality.

A note about clips

Currently it doesn't seem to be possible to get a list of clips ordered by time of creation, only by view count. Clips with the same view count seem to be returned in random order. This can break paging resulting in duplicate clips listed or clips missed.

When batch downloading a large number of clips (over 100), it's possible that some will be missed.

Temporary files

By default, twitch-dl will download VODs to your systems temp dir (e.g. /tmp/ on Linux). To change the location where the files are downloaded you can set the TMP environment variable, e.g.

TMP=/my/tmp/path/ twitch-dl download 221837124

Man page

Building the man page for twitch-dl requires scdoc.

The source is in twitch-dl.1.scd, and you can build it by running:

make man

License

Copyright 2018-2020 Ivan Habunek ivan@habunek.com

Licensed under the GPLv3: http://www.gnu.org/licenses/gpl-3.0.html