lssub is a terminal app for finding and downloading movie/TV subtitles from OpenSubtitles.
- Search subtitles by title
- Filter by language(s)
- Optionally log in to your OpenSubtitles account (for account details and quota info)
- Save selected subtitles directly to disk
- Linux terminal
- Rust toolchain (
cargo,rustc) to build - Internet connection
- Secret Service available on your desktop session (for login token storage), for example:
- GNOME Keyring
- KeePassXC with Secret Service integration
libsecretdevelopment package installed to compile
From the project directory:
cargo build --release
cargo run --release -- [PATH]You can also use the built binary:
./target/release/lssub [PATH]PATH is optional:
- no
PATH: subtitles are downloaded to your current directory PATHis a directory: subtitles are downloaded therePATHis a file path: its parent directory is used as download directory, and file stem is used as initial search query and output base name
Example:
lssub "/media/videos/Example.Movie.2014.mkv"This pre-fills search with Example.Movie.2014 and saves subtitles under /media/videos.
Main navigation:
F2SearchF3AccountF4LanguagesF12AboutF10orCtrl+CExitEscBack to Search
Search screen:
- Type to search
Up/Down/PageUp/PageDownto move in resultsEnterto download selected subtitleF1to open/close search help popupCtrl+Stoggle "single title" narrowing (based on selected row)Ctrl+Tinclude/exclude AI-translated subtitles
Languages screen:
- Enter comma-separated language codes (for example:
en,es) - Press
Enterto apply and save
Account screen:
- If logged out: enter OpenSubtitles username/password, press
Enterto log in - If logged in: press
Ctrl+Oto log out
Downloaded subtitles include the subtitle language in file name.
Examples:
- base name from input file:
Movie.en.srt - base name from subtitle result title:
Some.Release.en.srt
Final extension is taken from OpenSubtitles response when available; otherwise .srt is used.
Config file is created automatically at:
~/.config/lssub/config.toml
Current format:
languages = ["en"]Run log is written to:
/tmp/lssub.log
The file is overwritten on each start.
- Login/token errors: ensure a Secret Service provider is running in your session.
- Build fails on
libsecret: install your distro'slibsecretdev package. - No results: check internet connection and use at least 3 characters in search query.