Skip to main content

Subtitles, faster than your thoughts

Project description

Subtitles, faster than your thoughts.

Latest Version Travis CI build status Documentation Status Code coverage License Join the chat at https://gitter.im/Diaoul/subliminal
Project page:

https://github.com/Diaoul/subliminal

Documentation:

https://subliminal.readthedocs.org/

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

subliminal-2.2.1.tar.gz (3.1 MB view details)

Uploaded Source

Built Distribution

subliminal-2.2.1-py3-none-any.whl (87.1 kB view details)

Uploaded Python 3

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

Hashes for subliminal-2.2.1.tar.gz
Algorithm Hash digest
SHA256 2ed6024a07bbb3c68fe3db76374244ad91adfca9d93fc24d3ddb9ef61825756e
MD5 152b12f646c029a7a904262f3e2de1ee
BLAKE2b-256 e32436cdb82e90afc602e2ed36c34e022ca545d35f5be9aa7ef9ddb0af7967b2

See more details on using hashes here.

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

Hashes for subliminal-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 421a71f2e3f604e5dffb551b2a51d14500c7615d7eaf16c23e713d7ad295504c
MD5 c5ac6ab1399eb21d773f3f8df0150d5b
BLAKE2b-256 09d1cddf58f2556af8c6b353497cdd0e39efe4b75ae50f9e8cfdb7476e62c2f5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page