SickGear/SickGear

Subliminal problem

BhaalM opened this issue · 7 comments

Branch: master

Branch version commit hash: c69affb

Expectation Result
Select different subtitle languages to download Downloads only english subtitles even if the subtitles exist in other languages in opensubtitle.org

Steps to reproduce:
1) Open subtitle config
2) Select more than one language
3) Click to download all subtitles

I've checked the subtitles in that language exists but subliminal only downloads english subtitles. I could try to solve this issue myself but I don't know how to redirect subliminal log message to the [edit: removed typo] log file. Any help would be appreciated.

Regards

I'm going to close this because we have made changes to Subliminal in the following branch which will go live before the end of January. You are welcome to test if your issue exists on this branch and feedback, otherwise you can wait and then report back when that branch is merged (if you need to).

I'll try the new branch thank you. Any advice on how to send subliminal debug log messages to the sickgear log file?

Unfortunately, It's not as trivial as logs. This is exactly why we ask for steps to replicate the issue, because if you communicate those steps clearly, then we are able to load things up in a dev system and freeze/step through the code while replicating your issue in order to pinpoint an exact cause.

I understand, thank you anyway (for your help and for your work on this project)

I found the problem, it seems the spanish subtitles of opensubtitles lack a lot of information (no video hashes) so I changed the list_checked function:

def list_checked(self, video, languages):
results = []
if video.exists:
results = self.query(video.path or video.release, languages, moviehash=video.hashes['OpenSubtitles'], size=str(video.size))
elif video.imdbid:
results = self.query(video.path or video.release, languages, imdbid=video.imdbid)
elif isinstance(video, Episode):
results = self.query(video.path or video.release, languages, query=video.series)
elif isinstance(video, Movie):
results = self.query(video.path or video.release, languages, query=video.title)
return results

to:

def list_checked(self, video, languages):
    results = []
    if video.exists:
        results = self.query(video.path or video.release, languages, moviehash=video.hashes[\'OpenSubtitles\'], size=str(video.size))

    if not results:
        if video.imdbid:
            results = self.query(video.path or video.release, languages, imdbid=video.imdbid)
        elif isinstance(video, Episode):
            results = self.query(video.path or video.release, languages, query=video.series)
        elif isinstance(video, Movie):
            results = self.query(video.path or video.release, languages, query=video.title)
    return results

I know I'll may download out of sync subtitles, but I prefer this.

This feature request is now available in the develop branch.

  • Add "Enforce media hash match" to config/Subtitles Plugin/Opensubtitles for accurate subs if enabled, but if disabled, search failures will fallback to use less reliable subtitle results

Available in master here.