A simple CLI for downloading videos from SwitchTube.
This makes it a lot more convenient to consume the videos on-demand when you're offline.
- Download videos by their video id
- Videos from channels can be downloaded selectively with interactive mode (default)
- All videos can be downloaded from channels non interactively
- Videos that are already downloaded can be skipped
Install it with your favourite AUR helper. For example:
pamac install switchtube-dl-bin
# or:
yay -S switchtube-dl-bin
Download the .deb
package for your architecture from
the latest release and install it with your package manager.
brew install panmona/panmona/switchtube-dl
Download the latest windows release zip for your
architecture. If you aren't sure about your architecture, you're most likely going to have success with win-x64.zip
.
Unzip it and put the .exe
in an appropriate place. For easier access, make sure that this place is contained in your
PATH variable.
If Emoji are not displaying correctly in your terminal refer to this documentation.
After installation generate an API Token from your SwitchTube Profile and save it to an appropriate place.
You will need this token for every download that you run.
Please note that you should be gentle when downloading videos in parallel as noted in the official API docs:
Please be gentle with the servers because hammering the web service will also decrease performance of the web site.
USAGE: switchtube-dl [--help] [--video <video id>] [--channel <channel id>] [--token <token>] [--path <path>] [--skip]
[--force] [--all] [--version]
OPTIONS:
--video, -v <video id>
Download type. Downloads a specific video. Prioritized if multiple download types are given
--channel, -c <channel id>
Download type. Download videos from this channel. Starts in interactive mode if no filter
option is given
--token, -t <token> Token to access the SwitchTube API. Generate a token at
https://tube.switch.ch/access_tokens
--path, -p <path> Paths to download videos to (defaults to current dir). The path must already exist.
--skip, -s Existing file handling option. Skip download of already existing files. Prioritized if
multiple existing file options are given
--force, -f Existing file handling option. Overwrite already existing files
--all, -a Filter option. Downloads all videos in a channel
--version Display the current version.
--help display this list of options.
switchtube-dl -v 123456
switchtube-dl -c 123456
It will per default start in interactive mode and output a table of all videos in this channel:
Index │ Title │ Duration │ Date
──────┼────────────────────┼──────────┼────────────
1 │ Video A │ 00:09:39 │ 2020-07-08
2 │ Video B │ 00:09:39 │ 2020-09-09
3 │ Video C │ 00:15:16 │ 2020-09-09
4 │ Video D │ 00:11:45 │ 2020-09-09
5 │ Video E │ 00:06:04 │ 2020-09-09
6 │ Video F │ 00:08:16 │ 2020-09-09
7 │ Video G │ 00:12:25 │ 2021-11-30
8 │ Video H │ 00:11:12 │ 2022-02-07
9 │ Video I │ 01:03:00 │ 2022-02-09
To choose which videos to download, specify indices of the videos separated by commas like: 1,4,5,6
if you want to
download the videos indexed 1,4,5,6 of the channel.
You can specify a range, for example 1-3,5,7-9
will download the videos at index 1, 2, 3, 5, 7, 8 and 9.
If you don't want to use interactive mode for the channel download there are the following filter options:
With -a
or --all
all videos in the channel are downloaded.
Per default the CLI exits when it notices that a file already exists under the same name. If you want a different behavior there are two strategies defined.
If already existing files should be overwritten use -f
or --force
.
If already existing files should be skipped use -s
or --skip
. If both options are provided skip is prioritized.
Per default the files are downloaded to the directory from where the CLI is invoked. If you want to provide a different
path use -p
or --path
. This path must be absolute and exist.
Teletube: If you need upload access to SwitchTube
Any type of feedback, pull request or issue is welcome.
See CONTRIBUTING.md
for ways to get started.