Visit the github releases page for binaries
For debian based systems supper is available as a debian package. The package will install supper and set up a systemd unit for ease of use. Download the debian package from the github releaes page and install with
dpkg -i supper-1.0.0.debDownload the .tar.gz file from the github releaes page and extract the contents to a desired location. This could for example be:
C:/Users/<Username>/AppData/Local/SupperAdd the supper.exe executable to your path for ease of use
Download the .tar.gz file from the github releases page and extract the contents to a desired location. This could for example be:
/usr/local/opt/supperAdd the supper executable to your path for ease of use
Learn how to configure supper
You can specify the configuration of how supper function in a .yaml configuration file.
The configuration file can be located in different places according to operating system and precendence.
Here is an overview:
/etc/supper/supper.yaml%HOMEPATH%\AppData\Roaming\Supper\supper.yaml.supper.yaml found in current working directoryThe local configuration has precendence over the global configuration. If supper is run with
the --config argument, then that configuration file is used above all else.
Below the default configuration for supper is shown. Most of the configuration is self-explanatory, however some details will be covered in the following sections.
# Supper configuration file
# Satisfy the following languages when downloading subtitles
languages:
- en
- es
- de
# Path to store application logs
logfile: /var/log/supper/supper.log
# Download only hearing impaired subtitles
impared: false
# Bind web server to port
port: 5670
# Base path for reverse proxy
proxypath: "/"
# Movie collection configuration
movies:
# Directory to store movie collection
directory: /media/movies
# Template to use for renaming movies
template: >
{{ .Movie }} ({{ .Year }})/
{{ .Movie }} ({{ .Year }}) {{ .Quality }}
# TV show collection configuration
tvshows:
# Directory to store TV shows
directory: /media/tvshows
# Template to use for renaming TV shows
template: >
{{ .TVShow }}/Season {{ .Season | pad }}/
{{ .TVShow }} - S{{ .Season | pad }}E{{ .Episode | pad }} - {{ .Name }}
# Plugins are run after downloading a subtitle. The plugin is a simple shell
# command which is given the .srt file path in the SUBTITLE environment variable
plugins:
# - name: my-plugin-name
# exec: echo $SUBTITLETemplates are used to rename movie and TV series into folder/file names. The templating
scheme uses the golang templating language and is highly customizable. You may define
subfolders in your templating scheme using the path seperator /.
The following directives are available for movie templates:
| Directive | Description | Example |
|---|---|---|
.Movie |
The name of the movie | Inception |
.Year |
The release year of the movie | 2010 |
.Quality |
Quality of the movie release | 720p |
.Codec |
Codec of the movie release | h264 |
.Source |
Source of the movie release | BluRay |
.Group |
Release group of the movie | N/A |
Example:
{{ .Movie }} ({{ .Year }})/{{ .Movie }} ({{ .Year }}) {{ .Quality }}The following directovies are available for tv show templates:
| Directive | Description | Example |
|---|---|---|
.TVShow |
The name of the TV show | Game of Thrones |
.Name |
The name of the episode | Pilot |
.Season |
Season number | 1 |
.Episode |
Episode number | 1 |
.Quality |
Quality of the movie release | 720p |
.Codec |
Codec of the movie release | h264 |
.Source |
Source of the movie release | BluRay |
.Group |
Release group of the movie | N/A |
Example:
{{ .TVShow }}/Season {{ .Season | pad }}/
{{ .TVShow }} - S{{ .Season | pad }}E{{ .Episode | pad }} - {{ .Name }}You can utilize template functions to manipulate with the data in your templating schemes
padPads the number with zeros to make up exactly two characters total. Useful for padding season and episode numbers.
Example
{{ .Season | pad }}will output 01 for season one instead of just 1.
How to download subtitles with supper
You can download subtitles with supper for individual files of whole directories easily.
--lang|-l:
Which language(s) subtitles will be downloaded in. Multiple languages
can be specified using the flag multiple times. If no languages are specified
those is the configuration file will be sued by default.
--modified|-m: Only download subtitles for media modified since the given duration.
Durations are specified using numbers and letters (e.g. 2d12h30m)
--score|-s: Specifies a minimum score for any subtitle to be downloaded. If a subtitle is
not available satisfying the minimum score, no subtitle will be downloaded. The score of
a subtitle is determined by the likelyhood of the subtitle being synchronized to the media
according to an internal scoring algorithm. Values are given in percent (withput the percent sign)
--imapired|-i: Only download hearing impaired subtitles. By default Supper will not consider
or download hearing impaired subtitles. This flagg reverses this behaviour.
--limit|-l: Limit the number of media to process. A default values is applied as a safeguard
agains accidental filepaths. Therefore this flag must be specified for large quantaties of media.
Specifying a negative number will disable the limit.
To see all applicable flags see supper sub --help.
Here is a list of the supported languages. The language tag specified in the table
below can be used as an argument to the --lang|-l flag.
| Language | Tag | Language | Tag | Language | Tag |
|---|---|---|---|---|---|
| Albanian | sq |
Greek | el |
Portuguese | pt |
| Latvian | lv |
Hebrew | he |
Portuguese | pt |
| Arabic | ar |
Hindi | hi |
Romanian | ro |
| Armenian | hy |
Hungarian | hu |
Russian | ru |
| Azerbaijani | az |
Icelandic | is |
Serbian | sr |
| Bangla | bn |
Indonesian | id |
Slovak | sk |
| Bulgarian | bg |
Italian | it |
Slovenian | sl |
| Catalan | ca |
Japanese | ja |
Spanish | es |
| Chinese | zh |
Korean | ko |
Swahili | sw |
| Croatian | hr |
Lithuanian | lt |
Swedish | sv |
| Czech | cs |
Macedonian | mk |
Tamil | ta |
| Danish | da |
Malay | ms |
Telugu | te |
| Dutch | nl |
Malayalam | ml |
Thai | th |
| English | en |
Mongolian | mn |
Turkish | tr |
| Finnish | fi |
Norwegian | no |
Ukrainian | uk |
| French | fr |
Persian | fa |
Urdu | ur |
| Georgian | ka |
Persian | fa |
Vietnamese | vi |
| German | de |
Polish | pl |
Download subtitles for all media in the /media/movies folder in english, german and spanish for files
added or modified within the last 24 hours:
supper sub -l en -l de -l es -m 24h /media/moviesDownload english subtitles for the file tvshow.mp4 if a subtitle can be found with a score higher or equal to 75%:
supper sub -l en -s 75 tvshow.mp4Download and overwrite existing english subtitles for all media in /media/tvshows
supper sub -l en --force /media/tvshowsHow to rename and organize media
You can organize and rename individual files or whole directories with supper
--action|-a: The action to perform when renaming media. Can be one of
move, symlink, hardlink or copy. Default operation is to hardlink
files
--extract|-x: Additionally extract media from archives (zip/rar).
--movies'-m: Only rename movies
--subtitles|-s: Only rename subtitles
--tvshows|-t: Only rename tv shows
To see all applicable flags see: supper ren --help
Rename all media in the /media/downloads folder using hardlink (default action):
supper ren /media/downloadsRename only movies in the /media/downloads folder using copy:
supper ren --action copy --movies /media/downloadsRename all media in the /media/downloads folder and extract media from archives (rar/zip):
supper ren --extract /media/downloads