Providers

class subliminal.providers.TimeoutSafeTransport(timeout, *args, **kwargs)[source]

Timeout support for xmlrpc.client.SafeTransport.

class subliminal.providers.ParserBeautifulSoup(markup, parsers, **kwargs)[source]

A bs4.BeautifulSoup that picks the first parser available in parsers.

Parameters
  • markup – markup for the bs4.BeautifulSoup.

  • parsers (list) – parser names, in order of preference.

class subliminal.providers.Provider[source]

Base class for providers.

If any configuration is possible for the provider, like credentials, it must take place during instantiation.

Raise

ConfigurationError if there is a configuration error

languages = {}

Supported set of Language

video_types = (<class 'subliminal.video.Episode'>, <class 'subliminal.video.Movie'>)

Supported video types

required_hash = None

Required hash, if any

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

classmethod check(video)[source]

Check if the video can be processed.

The video is considered invalid if not an instance of video_types or if the required_hash is not present in hashes attribute of the video.

Parameters

video (Video) – the video to check.

Returns

True if the video is valid, False otherwise.

Return type

bool

query(*args, **kwargs)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError

Addic7ed

subliminal.providers.addic7ed.series_year_re = re.compile("^(?P<series>[ \\w\\'.:(),&!?-]+?)(?: \\((?P<year>\\d{4})\\))?$")

Series header parsing regex

class subliminal.providers.addic7ed.Addic7edSubtitle(language, hearing_impaired, page_link, series, season, episode, title, year, version, download_link)[source]

Addic7ed Subtitle.

property id

Unique identifier of the subtitle

get_matches(video)[source]

Get the matches against the video.

Parameters

video (Video) – the video to get the matches with.

Returns

matches of the subtitle.

Return type

set

class subliminal.providers.addic7ed.Addic7edProvider(username=None, password=None)[source]

Addic7ed Provider.

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

_get_show_ids()[source]

Get the dict of show ids per series by querying the shows.php page.

Returns

show id per series, lower case and without quotes.

Return type

dict

_search_show_id(series, year=None)[source]

Search the show id from the series and year.

Parameters
  • series (str) – series of the episode.

  • year (int) – year of the series, if any.

Returns

the show id, if found.

Return type

int

get_show_id(series, year=None, country_code=None)[source]

Get the best matching show id for series, year and country_code.

First search in the result of _get_show_ids() and fallback on a search with _search_show_id().

Parameters
  • series (str) – series of the episode.

  • year (int) – year of the series, if any.

  • country_code (str) – country code of the series, if any.

Returns

the show id, if found.

Return type

int

query(series, season, year=None, country=None)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError

LegendasTv

subliminal.providers.legendastv.type_map = {'C': 'episode', 'M': 'movie', 'S': 'episode'}

Conversion map for types

subliminal.providers.legendastv.season_re = re.compile(' - (?P<season>\\d+)(\\xaa|a|st|nd|rd|th) (temporada|season)', re.IGNORECASE)

BR title season parsing regex

subliminal.providers.legendastv.downloads_re = re.compile('(?P<downloads>\\d+) downloads')

Downloads parsing regex

subliminal.providers.legendastv.rating_re = re.compile('nota (?P<rating>\\d+)')

Rating parsing regex

subliminal.providers.legendastv.timestamp_re = re.compile('(?P<day>\\d+)/(?P<month>\\d+)/(?P<year>\\d+) - (?P<hour>\\d+):(?P<minute>\\d+)')

Timestamp parsing regex

subliminal.providers.legendastv.releases_key = 'subliminal.providers.legendastv:releases|{archive_id}'

Cache key for releases

class subliminal.providers.legendastv.LegendasTVArchive(id, name, pack, featured, link, downloads=0, rating=0, timestamp=None)[source]

LegendasTV Archive.

Parameters
  • id (str) – identifier.

  • name (str) – name.

  • pack (bool) – contains subtitles for multiple episodes.

  • pack – featured.

  • link (str) – link.

  • downloads (int) – download count.

  • rating (int) – rating (0-10).

  • timestamp (datetime.datetime) – timestamp.

id = None

Identifier

name = None

Name

pack = None

Pack

featured = None

Featured

Link

downloads = None

Download count

rating = None

Rating (0-10)

timestamp = None

Timestamp

content = None

Compressed content as rarfile.RarFile or zipfile.ZipFile

class subliminal.providers.legendastv.LegendasTVSubtitle(language, type, title, year, imdb_id, season, archive, name)[source]

LegendasTV Subtitle.

property id

Unique identifier of the subtitle

get_matches(video, hearing_impaired=False)[source]

Get the matches against the video.

Parameters

video (Video) – the video to get the matches with.

Returns

matches of the subtitle.

Return type

set

class subliminal.providers.legendastv.LegendasTVProvider(username=None, password=None)[source]

LegendasTV Provider.

Parameters
  • username (str) – username.

  • password (str) – password.

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

search_titles(title)[source]

Search for titles matching the title.

Parameters

title (str) – the title to search for.

Returns

found titles.

Return type

dict

get_archives(title_id, language_code)[source]

Get the archive list from a given title_id and language_code.

Parameters
  • title_id (int) – title id.

  • language_code (int) – language code.

Returns

the archives.

Return type

list of LegendasTVArchive

download_archive(archive)[source]

Download an archive’s content.

Parameters

archive (LegendasTVArchive) – the archive to download content of.

query(language, title, season=None, episode=None, year=None)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError

NapiProjekt

subliminal.providers.napiprojekt.get_subhash(hash)[source]

Get a second hash based on napiprojekt’s hash.

Parameters

hash (str) – napiprojekt’s hash.

Returns

the subhash.

Return type

str

class subliminal.providers.napiprojekt.NapiProjektSubtitle(language, hash)[source]

NapiProjekt Subtitle.

property id

Unique identifier of the subtitle

get_matches(video)[source]

Get the matches against the video.

Parameters

video (Video) – the video to get the matches with.

Returns

matches of the subtitle.

Return type

set

class subliminal.providers.napiprojekt.NapiProjektProvider[source]

NapiProjekt Provider.

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

query(language, hash)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError

OpenSubtitles

class subliminal.providers.opensubtitles.OpenSubtitlesSubtitle(language, hearing_impaired, page_link, subtitle_id, matched_by, movie_kind, hash, movie_name, movie_release_name, movie_year, movie_imdb_id, series_season, series_episode, filename, encoding)[source]

OpenSubtitles Subtitle.

property id

Unique identifier of the subtitle

get_matches(video)[source]

Get the matches against the video.

Parameters

video (Video) – the video to get the matches with.

Returns

matches of the subtitle.

Return type

set

class subliminal.providers.opensubtitles.OpenSubtitlesProvider(username=None, password=None)[source]

OpenSubtitles Provider.

Parameters
  • username (str) – username.

  • password (str) – password.

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

query(languages, hash=None, size=None, imdb_id=None, query=None, season=None, episode=None, tag=None)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError

exception subliminal.providers.opensubtitles.OpenSubtitlesError[source]

Base class for non-generic OpenSubtitlesProvider exceptions.

exception subliminal.providers.opensubtitles.Unauthorized[source]

Exception raised when status is ‘401 Unauthorized’.

exception subliminal.providers.opensubtitles.NoSession[source]

Exception raised when status is ‘406 No session’.

exception subliminal.providers.opensubtitles.DownloadLimitReached[source]

Exception raised when status is ‘407 Download limit reached’.

exception subliminal.providers.opensubtitles.InvalidImdbid[source]

Exception raised when status is ‘413 Invalid ImdbID’.

exception subliminal.providers.opensubtitles.UnknownUserAgent[source]

Exception raised when status is ‘414 Unknown User Agent’.

exception subliminal.providers.opensubtitles.DisabledUserAgent[source]

Exception raised when status is ‘415 Disabled user agent’.

exception subliminal.providers.opensubtitles.ServiceUnavailable[source]

Exception raised when status is ‘503 Service Unavailable’.

subliminal.providers.opensubtitles.checked(response)[source]

Check a response status before returning it.

Parameters

response – a response from a XMLRPC call to OpenSubtitles.

Returns

the response.

Raise

OpenSubtitlesError

Podnapisi

class subliminal.providers.podnapisi.PodnapisiSubtitle(language, hearing_impaired, page_link, pid, releases, title, season=None, episode=None, year=None)[source]

Podnapisi Subtitle.

property id

Unique identifier of the subtitle

get_matches(video)[source]

Get the matches against the video.

Parameters

video (Video) – the video to get the matches with.

Returns

matches of the subtitle.

Return type

set

class subliminal.providers.podnapisi.PodnapisiProvider[source]

Podnapisi Provider.

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

query(language, keyword, season=None, episode=None, year=None)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError

Shooter

class subliminal.providers.shooter.ShooterSubtitle(language, hash, download_link)[source]

Shooter Subtitle.

property id

Unique identifier of the subtitle

get_matches(video)[source]

Get the matches against the video.

Parameters

video (Video) – the video to get the matches with.

Returns

matches of the subtitle.

Return type

set

class subliminal.providers.shooter.ShooterProvider[source]

Shooter Provider.

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

query(language, filename, hash=None)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError

SubsCenter

class subliminal.providers.subscenter.SubsCenterSubtitle(language, hearing_impaired, page_link, series, season, episode, title, subtitle_id, subtitle_key, downloaded, releases)[source]

SubsCenter Subtitle.

property id

Unique identifier of the subtitle

get_matches(video)[source]

Get the matches against the video.

Parameters

video (Video) – the video to get the matches with.

Returns

matches of the subtitle.

Return type

set

class subliminal.providers.subscenter.SubsCenterProvider(username=None, password=None)[source]

SubsCenter Provider.

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

_search_url_titles(title)[source]

Search the URL titles by kind for the given title.

Parameters

title (str) – title to search for.

Returns

the URL titles by kind.

Return type

collections.defaultdict

query(title, season=None, episode=None)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError

TheSubDB

class subliminal.providers.thesubdb.TheSubDBSubtitle(language, hash)[source]

TheSubDB Subtitle.

property id

Unique identifier of the subtitle

get_matches(video)[source]

Get the matches against the video.

Parameters

video (Video) – the video to get the matches with.

Returns

matches of the subtitle.

Return type

set

class subliminal.providers.thesubdb.TheSubDBProvider[source]

TheSubDB Provider.

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

query(hash)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError

TVsubtitles

class subliminal.providers.tvsubtitles.TVsubtitlesSubtitle(language, page_link, subtitle_id, series, season, episode, year, rip, release)[source]

TVsubtitles Subtitle.

property id

Unique identifier of the subtitle

get_matches(video)[source]

Get the matches against the video.

Parameters

video (Video) – the video to get the matches with.

Returns

matches of the subtitle.

Return type

set

class subliminal.providers.tvsubtitles.TVsubtitlesProvider[source]

TVsubtitles Provider.

initialize()[source]

Initialize the provider.

Must be called when starting to work with the provider. This is the place for network initialization or login operations.

Note

This is called automatically when entering the with statement

terminate()[source]

Terminate the provider.

Must be called when done with the provider. This is the place for network shutdown or logout operations.

Note

This is called automatically when exiting the with statement

search_show_id(series, year=None)[source]

Search the show id from the series and year.

Parameters
  • series (str) – series of the episode.

  • year (int) – year of the series, if any.

Returns

the show id, if any.

Return type

int

get_episode_ids(show_id, season)[source]

Get episode ids from the show id and the season.

Parameters
  • show_id (int) – show id.

  • season (int) – season of the episode.

Returns

episode ids per episode number.

Return type

dict

query(series, season, episode, year=None)[source]

Query the provider for subtitles.

Arguments should match as much as possible the actual parameters for querying the provider

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

list_subtitles(video, languages)[source]

List subtitles for the video with the given languages.

This will call the query() method internally. The parameters passed to the query() method may vary depending on the amount of information available in the video.

Parameters
  • video (Video) – video to list subtitles for.

  • languages (set of Language) – languages to search for.

Returns

found subtitles.

Return type

list of Subtitle

Raise

ProviderError

download_subtitle(subtitle)[source]

Download subtitle’s content.

Parameters

subtitle (Subtitle) – subtitle to download.

Raise

ProviderError