LinuxCommandLibrary

subliminal

Download subtitles for video files

TLDR

Download English subtitles for a video

$ subliminal download [[-l|--language]] [en] [video.ext]
copy

SYNOPSIS

subliminal [OPTIONS...] [PATH]...

PARAMETERS

-l, --language TEXT
    Subtitle language(s), repeatable; default 'en'

-p, --providers TEXT
    Providers to query, repeatable; e.g., 'opensubtitles'

--force
    Overwrite existing subtitles

--age-cert RATING
    Max age certification (e.g., 'PG-13')

--one-subs
    Download only one subtitle per language

--multi
    Download multiple subtitles per language (default)

--select PROP=VALUE
    Filter by property (e.g., 'imdbid=tt1234567')

--output-dir PATH
    Output directory for subtitles

--cache-dir PATH
    Directory for cache files

--keys PROVIDER=KEY
    API keys, repeatable (e.g., 'opensubtitles=apikey')

--config PATH
    Path to config file

--timeout SECONDS
    Request timeout

--workers COUNT
    Number of parallel workers

--version
    Show version and exit

--help
    Show help

DESCRIPTION

Subliminal is a powerful command-line tool and Python library designed to automatically download subtitles for video files. It parses video filenames using the guessit library to identify details like title, season, episode, and year. Then, it queries multiple online subtitle providers such as OpenSubtitles, Addic7ed, Podnapisi, TheSubDB, and TVSubtitles to find matching subtitles in specified languages.

The tool supports batch processing of directories or individual files, renaming downloaded subtitles to match video naming conventions (e.g., Show.Name.S01E01.mkv gets Show.Name.S01E01.eng.srt). It handles hashing for accurate matches, respects age certifications, and allows filtering by properties like IMDb ID or release year. Subliminal is highly configurable via CLI flags, config files, or environment variables, making it ideal for media servers like Plex or Kodi.

Installation is via pip: pip install subliminal. It requires an active internet connection and optional API keys for premium providers. Subtitles are saved in SRT format by default.

CAVEATS

Requires Python 3.8+ and internet; some providers need API keys. Does not embed subtitles into videos. Cache can grow large. Rate-limited by providers.

INSTALLATION

pip install subliminal
Optional: pip install subliminal[opensubtitles] for extras.

EXAMPLE

subliminal -l en fr /path/to/videos/
Downloads English/French subs for all videos in directory.

HISTORY

Developed by Diaoul starting 2012 as Python subtitle library. Integrated with guessit for parsing and babelfish for language handling. Maintained on GitHub; v2.1+ supports async providers. Widely used in media automation scripts.

SEE ALSO

guessit(1), babelfish(1)

Copied to clipboard