Subtitles, faster than your thoughts
Project description
Subtitles, faster than your thoughts.
- Project page:
- Documentation:
Usage
CLI
Download English subtitles:
$ subliminal download -l en The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4 Collecting videos [####################################] 100% 1 video collected / 0 video ignored / 0 error Downloading subtitles [####################################] 100% Downloaded 1 subtitle
Library
Download best subtitles in French and English for videos less than two weeks old in a video folder:
#!/usr/bin/env python
from datetime import timedelta
from babelfish import Language
from subliminal import download_best_subtitles, region, save_subtitles, scan_videos
# configure the cache
region.configure('dogpile.cache.dbm', arguments={'filename': 'cachefile.dbm'})
# scan for videos newer than 2 weeks and their existing subtitles in a folder
videos = scan_videos('/video/folder', age=timedelta(weeks=2))
# download best subtitles
subtitles = download_best_subtitles(videos, {Language('eng'), Language('fra')})
# save them to disk, next to the video
for v in videos:
save_subtitles(v, subtitles[v])
Docker
Run subliminal in a docker container:
$ docker run --rm --name subliminal -v subliminal_cache:/usr/src/cache -v /tvshows:/tvshows -it diaoulael/subliminal download -l en /tvshows/The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
Installation
Subliminal can be installed as a regular python module by running:
$ [sudo] pip install subliminal
For a better isolation with your system you should use a dedicated virtualenv or install for your user only using the --user flag.
Nautilus/Nemo integration
See the dedicated project page for more information.
Changelog
2.2.1
release date: 2024-06-27
Add example subliminal.toml to documentation and fix documentation.
[CLI] show the message about the config file only with the --debug option.
Relax the platformdirs dependency requirement to >= 3
2.2.0
release date: 2024-06-24
Drop python2 support, the supported versions are >=3.8,<=3.12.
Load CLI options from a configuration file with the --config/-c option (#1084).
Change default encoding of downloaded subtitles to ‘utf-8’ (not the original encoding). Use the --original-encoding cli option to recover the previous default behavior (#1125).
Add opensubtitlescom provider
Add gestdown provider
Add tmdb refiner (requires a personal API key)
Fix tvsubtitles provider
Fix opensubtitles provider
Fix napiprojekt provider
Fix podnapisi provider to use JSON API
Fix addic7ed provider
Remove thesubdb provider
Remove argenteam provider
Remove shooter provider
Remove legendastv provider
Use pyproject.toml to specify the package configurations.* Add pre-commit hook (#1115).
Use ruff to lint and format
Use mypy to check types
Add type annotations
Drop dependencies: pysrt, appdirs, six, pytz
- Add dependencies:
click-option-group>=0.5.6
platformdirs>=4.2
pysubs2>=1.7
srt>=3.5
tomli>=2
- Bump dependency versions:
babelfish>=0.6.1
chardet>=5.0
click>=8.0
dogpile.cache>=1.0
enzyme>=0.5.0
stevedore>=3.0
2.1.0
release date: 2020-05-02
Improve legendastv provider matches
Fix video extensions (.mk3d .ogm .ogv)
Use new url to search for titles in legendastv provider
Fix stevedore incompatibility
Add support to webm video extension
Make providers easier to be extended and customized
Update podnapisi URL
Add support to VIP/Donor accounts in legendastv provider
Proper handling titles with year / country in legendastv provider
Several minor enhancements in legendastv provider
Add support for python 3.6, 3.7 and 3.8
Drop support for python 3.3 and 3.4
Do not discard providers bad zip/rar is downloaded
SubsCenter provider removal
Fix lxml parsing for Addic7ed provider
Support titles with asterics in Addic7ed provider
Add support to multi-episode search in Opensubtitles provider
Fix multi-episode search in TVSubtitles provider
Update to guessit 3
Improve archive scanning
Add Opensubtitles VIP provider
Add country to Movie and Episode
Add streaming_service to Video
Add info property to Subtitle
Do not search for subtitles if all required languages is already present
Improve TVDB refiner to support series with comma
Add alternative_titles to Video and enhance OMDB refiner to use alternative_titles
Only compute video hashes when required
Add apikey to OMDB refiner
Fix Subtitle validation when unable to guess encoding
Add support to rar in Dockerfile
2.0.5
release date: 2016-09-03
Fix addic7ed provider for some series name
Fix existing subtitles detection
Improve scoring
Add Docker container
Add .ogv video extension
2.0.4
release date: 2016-09-03
Fix subscenter
2.0.3
release date: 2016-06-10
Fix clearing cache in CLI
2.0.2
release date: 2016-06-06
Fix for dogpile.cache>=0.6.0
Fix missing sphinx_rtd_theme dependency
2.0.1
release date: 2016-06-06
Fix beautifulsoup4 minimal requirement
2.0.0
release date: 2016-06-04
Add refiners to enrich videos with information from metadata, tvdb and omdb
Add asynchronous provider search for faster searches
Add registrable managers so subliminal can run without install
Add archive support
Add the ability to customize scoring logic
Add an age argument to scan_videos for faster scanning
Add legendas.tv provider
Add shooter.cn provider
Improve matching and scoring
Improve documentation
Split nautilus integration into its own project
1.1.1
release date: 2016-01-03
Fix scanning videos on bad MKV files
1.1
release date: 2015-12-29
Fix library usage example in README
Fix for series name with special characters in addic7ed provider
Fix id property in thesubdb provider
Improve matching on titles
Add support for nautilus context menu with translations
Add support for searching subtitles in a separate directory
Add subscenter provider
Add support for python 3.5
1.0.1
release date: 2015-07-23
Fix unicode issues in CLI (python 2 only)
Fix score scaling in CLI (python 2 only)
Improve error handling in CLI
Color collect report in CLI
1.0
release date: 2015-07-22
Many changes and fixes
New test suite
New documentation
New CLI
Added support for SubsCenter
0.7.5
release date: 2015-03-04
Update requirements
Remove BierDopje provider
Add pre-guessed video optional argument in scan_video
Improve hearing impaired support
Fix TVSubtitles and Podnapisi providers
0.7.4
release date: 2014-01-27
Fix requirements for guessit and babelfish
0.7.3
release date: 2013-11-22
Fix windows compatibility
Improve subtitle validation
Improve embedded subtitle languages detection
Improve unittests
0.7.2
release date: 2013-11-10
Fix TVSubtitles for ambiguous series
Add a CACHE_VERSION to force cache reloading on version change
Set CLI default cache expiration time to 30 days
Add podnapisi provider
Support script for languages e.g. Latn, Cyrl
Improve logging levels
Fix subtitle validation in some rare cases
0.7.1
release date: 2013-11-06
Improve CLI
Add login support for Addic7ed
Remove lxml dependency
Many fixes
0.7.0
release date: 2013-10-29
WARNING: Complete rewrite of subliminal with backward incompatible changes
Use enzyme to parse metadata of videos
Use babelfish to handle languages
Use dogpile.cache for caching
Use charade to detect subtitle encoding
Use pysrt for subtitle validation
Use entry points for subtitle providers
New subtitle score computation
Hearing impaired subtitles support
Drop async support
Drop a few providers
And much more…
0.6.4
release date: 2013-05-19
Fix requirements due to enzyme 0.3
0.6.3
release date: 2013-01-17
Fix requirements due to requests 1.0
0.6.2
release date: 2012-09-15
Fix BierDopje
Fix Addic7ed
Fix SubsWiki
Fix missing enzyme import
Add Catalan and Galician languages to Addic7ed
Add possible services in help message of the CLI
Allow existing filenames to be passed without the ./ prefix
0.6.1
release date: 2012-06-24
Fix subtitle release name in BierDopje
Fix subtitles being downloaded multiple times
Add Chinese support to TvSubtitles
Fix encoding issues
Fix single download subtitles without the force option
Add Spanish (Latin America) exception to Addic7ed
Fix group_by_video when a list entry has None as subtitles
Add support for Galician language in Subtitulos
Add an integrity check after subtitles download for Addic7ed
Add error handling for if not strict in Language
Fix TheSubDB hash method to return None if the file is too small
Fix guessit.Language in Video.scan
Fix language detection of subtitles
0.6.0
release date: 2012-06-16
WARNING: Backward incompatible changes
Fix –workers option in CLI
Use a dedicated module for languages
Use beautifulsoup4
Improve return types
Add scan_filter option
Add –age option in CLI
Add TvSubtitles service
Add Addic7ed service
0.5.1
release date: 2012-03-25
Improve error handling of enzyme parsing
0.5
release date: 2012-03-25 WARNING: Backward incompatible changes
Use more unicode
New list_subtitles and download_subtitles methods
New Pool object for asynchronous work
Improve sort algorithm
Better error handling
Make sorting customizable
Remove class Subliminal
Remove permissions handling
0.4
release date: 2011-11-11
Many fixes
Better error handling
0.3
release date: 2011-08-18
Fix a bug when series is not guessed by guessit
Fix dependencies failure when installing package
Fix encoding issues with logging
Add a script to ease subtitles download
Add possibility to choose mode of created files
Add more checks before adjusting permissions
0.2
release date: 2011-07-11
Fix plugin configuration
Fix some encoding issues
Remove extra logging
0.1
release date: private release
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file subliminal-2.2.1.tar.gz
.
File metadata
- Download URL: subliminal-2.2.1.tar.gz
- Upload date:
- Size: 3.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ed6024a07bbb3c68fe3db76374244ad91adfca9d93fc24d3ddb9ef61825756e |
|
MD5 | 152b12f646c029a7a904262f3e2de1ee |
|
BLAKE2b-256 | e32436cdb82e90afc602e2ed36c34e022ca545d35f5be9aa7ef9ddb0af7967b2 |
File details
Details for the file subliminal-2.2.1-py3-none-any.whl
.
File metadata
- Download URL: subliminal-2.2.1-py3-none-any.whl
- Upload date:
- Size: 87.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.0 CPython/3.12.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 421a71f2e3f604e5dffb551b2a51d14500c7615d7eaf16c23e713d7ad295504c |
|
MD5 | c5ac6ab1399eb21d773f3f8df0150d5b |
|
BLAKE2b-256 | 09d1cddf58f2556af8c6b353497cdd0e39efe4b75ae50f9e8cfdb7476e62c2f5 |