caronc/nzb-subliminal

SABnzbd support

Closed this issue ยท 34 comments

Hi, it's me again!

Would it be possible to maybe also include a script that can be used as SABnzbd post processing script?
https://sabnzbd.org/wiki/scripts/post-processing-scripts
I know ist basically a 1 line script, but it would make it easier for users.
We can then also list this extension on our website.
It worked great for NZB-notify, users love it :)

Would very much appreciate it if you could make the Subliminal subtitle script built for NZBGet compatible with SABnzbd. Thanks much in advance.

Sure, the only issue i can see is the configuration side of things. Subliminal has many, many, many options. SABnzbd users might have to manage a config file for this to work... i could generate one with default values if one isn't present.

Alternatively, i don't know how far you're planning to go with the development of post-process scripting. Were you considering adding ability to dynamically define configuration entries depending on what the script is (kind of like NZBGet does in within comments at the top)? I noticed SABnzbd (from the wiki link) is also using environment variables now. That's cool! I could almost add you as a supported script type in pynzbget as another supported post processing type.

A meet in the middle approach might be to allow users to enter a key/value pair (and add them per script as environment variables). So for example... Lets say someone defines a 'language' as a key and 'fr,en' as it's value. Well that would generate an environment variable like SAB_CONFIG_SUBLIMINAL_LANGUAGE=fr,en. Where SAB_CONFIG is just fixed, SUBLIMINAL is the capitalized script name and LANGUAGE was the capitalized key that was defined. The value would be set as is.

Anyway... I'm okay with the configuration file approach too. I just wanted to bounce more ideas off of you. What are your thoughts?

SABnzbd users that use Notification Scripts should not be complete noobs ๐Ÿคฃ
Maybe a .cfg or default-settings.py file would be nice, or at the top of the Subliminal-sabnzbd.py script you could have the variables listed where they can change it there? But that would delete their settings in case they update.
So probably a config-file (that's also added to .gitignore, in case they cloned the repo) is the best way to go?

And maybe a rename from nzbget-subliminal to nzb-subliminal so I can list it on the SABnzbd website ๐Ÿ˜‡ (hence the donation ๐Ÿ˜‰).
From Google Analytics I see a number of users clicking to nzb-notify from our wiki page.


Completely off topic, but how did you get your donation page to look so nice on PayPal? Ours look 100 years old and I can't find where to change it. Can also email me about that ๐Ÿ‘

Thank you so kindly for the donation! ๐Ÿ˜„ I sent you an email about PayPal.

As per Subliminal, I'll play a bit around with a wrapper this weekend. Renaming the tool won't be a problem.

With regards to the post-processing part of SABnzbd: If i send content straight to stdout, will that get picked up in your logs? Or should i be managing my own log file as well? It will be important to me for debugging issues when/if they should arise with your followers.

We indeed capture the whole stdout to show in the log.
The last line of the output is shown prominently in the interface History section.

The last push doesn't work yet, I'm getting closer though! Do you know if there an easy way to just re-post process my script from within SABnzbd without having to re-download something each time?

I'm trying to grasp what the environment variables all are and examples of what they might be set to (such as SAB_PP_STATUS). Some answers are on your wiki I realize, but not all. Although, I suppose I could just grep through the SABnzbd code and see for myself...

Anyway, I'll see where I get too tomorrow. ๐Ÿ˜‰

There's no easy way to execute it, only to download a tiny NZB.

Okay... it's working for me; but it doesn't mean it will necessary work for you ๐Ÿ˜‰.

I'm using the SABnzbd Environment Variables to drive the entire operation. By doing this SABnzbd can literally just point to the same Subliminal.py* that NZBGet does. Just copy the Subliminal directory and Subliminal.py into sabnzbd/scripts/ and you're good to go (assuming you configure SABnzbd to call it too). I really love this approach because i made this possible through my backend framework. I can easily tailor post process scripts i write to work for both NZBGet and SABnzbd with almost no effort at all.

At this time, this feature is in a different branch; so those who want to test it out in your community need to reference this link which pulls from the SABnzbd_support branch.

I added some basic support for a configuration files too; its a bit messy though so I'll probably start tidying/refactoring this up a bit going forward - not sure yet.

For now, Subliminal resorts to the same defaults that NZBGet does (in it's untouched state). But if you want to over-ride anything, just create a Subliminal.ini file and place it in the same directory as the Subliminal.py file (so... sabnzbd/scripts/).

The syntax looks like this:

# this is Subliminal.ini which resides in the same directory as Subliminal.py
[main]
Languages: en, fr, es
ForceEncoding: No
TvCategories: tv, tv2, Series
Addic7edUser: somedude
Addic7edPass: hispassword

# If subtitles of your specified language was already detected in the video
# do you want to ignore this and keep going anyway? Setting this to no
# causes a bit more overhead (because the video needs to be scanned
# to see if it has subtitles already in it), but it can be worth it as it will
# prevent going off and fetching more subs later on.
IgnoreEmbedded: no

# Setting this to yes before creating a ticket would 'really' help me debug
# any strange issues you have.
Debug: no

# The providers you want to explicilty reference.  By default all of them are
# checked... but here you can filter the list if you choose:
Providers: opensubtitles, tvsubtitles, podnapisi, addic7ed, thesubdb

# My version of subliminal is significantly forked/altered from the original one
# so you can also help the filtering and accuracy of your response by telling
# the tool what to use when the nzb is detected to be either a movie or tv show
# by default these are not set (but it's really worth doing!) :)
MovieProviders: opensubtitles, podnapisi, thesubdb
TVShowProviders: tvsubtitles, addic7ed

If you don't define a special directive (e.g. Languages, ForceEncoding, ...) then they're defaults will be used instead. I'll have to take some time and pull all these defaults out for people and document them accordingly They're all defined in the header of Subliminal.py (in comments) for those who are interested. I tried to put some of the main options that people would most likely want to set/over-ride above in my example.

@mystik1 Is it working for you? Then @caronc can merge it in ๐Ÿ‘

@Safihre maybe there is someone else in your community we could ask?

Just on a side note, since this is a post-process script for SABnzbd (only running once after a download): Brand new stuff won't have subs simply because they haven't been created by other communities yet. Therefore this script works best if it's also periodically called against your media library and/or video downloads every so often (through a cron, or windows schedule) too. That way it will pull in the subs when they become available.

@caronc I will put it on our Extensions page and link to your comment here.

If anyone reads this, please let us know if it is working as expected! ๐Ÿ‘

Thanks @Safihre; that's great! Would it make more sense to put it in the Post-Process part of your wiki? I'm fine where it is now though too (it doesn't matter to me; it fits where you have it already too).

Also, once we get confirmation it's working, I'll then rename the script (nzbget-subliminal -> nzb-subliminal as you implied). Thanks again for all of your support!

Would it make more sense to put it in the Post-Process part of your wiki? I'm fine where it is now though too (it doesn't matter to me; it fits where you have it already too).

I was also debating this, since it's a Post-Processing script that does Automation ๐Ÿ˜ƒ

It doesn't work for me. Did you install SABnzbd and test it with a test-movie/show?
I double-checked that all environment variables are being passed correctly from SAB, to be sure.

Before you mentioned something about a config-file but I couldn't find it anymore. How can SABnzbd users change things like the language?

Traceback (most recent call last):
File "C:\Users\user\Documents\GitHub\tests\nzb-subliminal-master\Subliminal.py", line 2149, in <module>
script_mode=script_mode,
File "C:\Users\user\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\nzbget\SABPostProcessScript.py", line 156, in __init__
super(SABPostProcessScript, self).__init__(*args, **kwargs)
File "C:\Users\user\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\nzbget\PostProcessScript.py", line 215, in __init__
super(PostProcessScript, self).__init__(*args, **kwargs)
File "C:\Users\user\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\nzbget\SchedulerScript.py", line 173, in __init__
super(SchedulerScript, self).__init__(*args, **kwargs)
File "C:\Users\user\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\nzbget\ScriptBase.py", line 1015, in __init__
)(*args, **kwargs)
File "C:\Users\user\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\nzbget\SABPostProcessScript.py", line 316, in sabnzbd_postprocess_init
self.get('NZO_ID', basename(self.nzbfilename))
File "C:\Python27\lib\ntpath.py", line 208, in basename
return split(p)[1]
File "C:\Python27\lib\ntpath.py", line 180, in split
d, p = splitdrive(p)
File "C:\Python27\lib\ntpath.py", line 115, in splitdrive
if len(p) > 1:
TypeError: object of type 'NoneType' has no len()

Doh! I'll look into this as soon as i can (hopefully later this evening). It worked for me but i only tried one NZB-File. Would you mind emailing me the NZB-File you used for this case?

It happens on all of them, maybe it's a Windows-specific thing?

Well after our backports issue we had earlier, i'm all set up on windows now ๐Ÿ˜‰. So i'll focus on windows first. But I'll also double check it's still working for me on Linux too. Either way i'll keep you posted when i have more info :)

Thanks for being the first tester to report back! (heh) I knew the ol' "well it works for me" wasn't going to cut it.

So a couple of things:

  1. I fixed that exception you're getting. I was relying on an environment variable to provide me the full path to the NZB-File that is being processed at the time. According to the wiki it was SAB_NZBNAME. But now i don't even see that documented any more (I guess i can get rid of my reference to it too?). I switched over to SAB_URL; but i'm noticing even it isn't the full path to the NZB-File itself.

    Would that be something you could add to one of your upcoming releases? An environment variable that provides full path to the NZB-File? The advantage is that i can process the meta-tags and do a little more overhead processing to be sure i'm getting the right subs.

  2. Since there are so many options you can set for this script, i provided a simple Subliminal.ini.sample file. The script will attempt to copy it as Subliminal.ini (if one already isn't detected). That is the on you can edit to your hearts content and take advantage of all the options the script has (as well as change the language(s) you want fetched.

Would that be something you could add to one of your upcoming releases? An environment variable that provides full path to the NZB-File? The advantage is that i can process the meta-tags and do a little more overhead processing to be sure i'm getting the right subs.

Hmm, we don't save the NZB. We only save the gzipped NZB. I could provide the path to that I think.

I will add the variable SAB_ORIG_NZB_GZ for 2.3.1 that will contain the path to the gzipped file. It's easy to open using the python GZip functions ๐Ÿ‘

Thank you! That would be great! ๐Ÿ˜„ I'll download your master branch and try it out. Will this NZB-File also be present for users who fetch from an API and/or RSS feed too?

Should use develop branch :) it would be present for all downloads, but since it's 2.3.1+ only you shouldn't rely on it being present, just to be sure.

Would you be able to add to the sabnzbd part of the Readme how to use the Config file? I guess just remove the example part?

Hopefully this wiki page linkable from the main page should suffice for now.

Let me know if i should change anything or be more specific in a certain area.

๐Ÿ‘

Am I doing something wrong? I set it up with latest version and the logs only show:

2017-10-19 17:09:36,341 - 11716 - INFO - NZBParse - NZB-File parsed 2 meta entries
2017-10-19 17:09:36,345 - 11716 - VDEBUG - DB Executing: ('SELECT 1 FROM sqlite_master WHERE name = ?', (u'lookup',))
2017-10-19 17:09:36,345 - 11716 - VDEBUG - DB Executing: ('SELECT 1 FROM sqlite_master WHERE name = ?', (u'keystore',))
2017-10-19 17:09:36,345 - 11716 - VDEBUG - DB Executing: ('SELECT value FROM lookup WHERE key = ?', ('SCHEMA_VERSION',))
2017-10-19 17:09:36,345 - 11716 - VDEBUG - DB Executing: ('SELECT value FROM lookup WHERE key = ?', ('PURGE_AGE',))
2017-10-19 17:09:36,345 - 11716 - VDEBUG - DB Executing: ('DELETE FROM keystore WHERE last_update <= ?', ('2017-10-19 05:09:36',))
2017-10-19 17:09:36,358 - 11716 - VDEBUG - DB Executing: ('VACUUM',)

That means that there were no subtitles?

EDIT: I was trying with a TV show, but it seems I probably should make an addic7ed-account?
Some note as the last line of the script if it successfully found subtitles would be nice, since that's the one shown in SABnzbd-history.

image

Wow, first off I'm not sure why my full debug mode is enabled in your logs (VDEBUG). I'll check my last commit (As i sometimes turn that on for testing/debugging). I didn't mean to push that upstream enabled.

You don't need an addicted account to get subtitles at all; having one just allows you to tailor the subs for you before they're fetched. So that's definitely not your problem; the log entries you shared aren't even showing a request for this type of content. - really strange

You definitely didn't do anything wrong on your side; in fact you're just doing a much better job testing than i am. ๐Ÿ˜Š I appreciate your patients and passing this stuff back to me (seriously; thank you and sorry for your troubles).

As per looking at what you shared (log wise): The parsing of the NZB-File happens at the start (if it can). But whether it's successful or not, it will should do a lot more than what you've shared. Not only that, your logs should be absolutely saturated with content if VDEBUG is enabled (where yours aren't); it's like it just took an early exit.

From my side:
I did set up SABnzbd (2.3.1 from the devel branch; I saw your commit you made for me - thanks ๐Ÿ˜„ ). But i haven't been at my pc to check the results these past few days. I'll look into this more tonight if i can (otherwise the weekend).

@Safihre So it seems it's not working because some of the environment variables changed a bit. it works with SABnzbd v2.3.0 but breaks in v2.3.1. It seems SAB_PP_STATUS doesn't have a value defined in it (used to be a numeric value) anymore. I do see a new environment variable called SAB_STATUS with the text 'running' defined in it. Does that make sense? Should i be using it instead? Perhaps it's a bug that the PP_STATUS isn't set to zero any more?

Should i start using all of the new environment variables you defined from this point forward? Is there any reason to maybe leave the old ones for backwards compatibility? Here is what the env looked for me in 2.3.1:

2017-10-19 19:53:26,768 - 6045 - VVDEBUG - SAB_REPAIR=1
2017-10-19 19:53:26,768 - 6045 - VVDEBUG - SAB_VERSION=2.4.0-develop
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_GROUP=alt.binaries.l2g
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_7ZIP_COMMAND=/usr/bin/7za
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_BYTES_DOWNLOADED=12345
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_AGE=1h
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_CAT=l2g
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_DUPLICATE=0
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_PP_STATUS=
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_TEMPDIR=/tmp/tmp-l2g
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_OVERSIZED=0
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_PP=3
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_PASSWORD=
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_SCRIPT=Subliminal.py
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_DOWNLOAD_TIME=21
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_RAR_COMMAND=/usr/bin/unrar
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_FILENAME=l2g.S01E01.Always.Screwing.Up.The.Code.720p.WEB-DL.AAC2.0.H.264.nzb
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_PRIORITY=0
2017-10-19 19:53:26,769 - 6045 - VVDEBUG - SAB_ZIP_COMMAND=/usr/bin/unzip
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_COMPLETE_DIR=/home/l2g/Downloads/complete/l2g.S01E01.Always.Screwing.Up.The.Code.720p.WEB-DL.AAC2.0.H.264
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_AVG_BPS=9801
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_ORIG_NZB_GZ=/home/l2g/Downloads/incomplete/l2g.S01E01.Always.Screwing.Up.The.Code.720p.WEB-DL.AAC2.0.H.264/__ADMIN__/l2g.S01E01.Always.Screwing.Up.The.Code.720p.WEB-DL.AAC2.0.H.264.nzb.gz
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_STATUS=Running
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_UNWANTED_EXT=0
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_URL=l2g.S01E01.Always.Screwing.Up.The.Code.720p.WEB-DL.AAC2.0.H.264.nzb
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_FAIL_MSG=
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_BYTES=235312290
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_PAR2_COMMAND=/usr/bin/par2
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_FAILURE_URL=
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_UNPACK=1
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_ENCRYPTED=0
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_NZO_ID=SABnzbd_nzo_YzduY0
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_PROGRAM_DIR=/home/caronc/tmp/sab/sabnzbd-develop
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_MULTIPAR_COMMAND=
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_FINAL_NAME=l2g.S01E01.Always.Screwing.Up.The.Code.720p.WEB-DL.AAC2.0.H.264
2017-10-19 19:53:26,770 - 6045 - VVDEBUG - SAB_BYTES_TRIED=12345

That's a mistake, I'll fix it.
PP_STATUS needs to be there indeed.

With your fix plus the 3 small changes i just made, i'm able to use 2.3.1 and successfully pull subs down (using Linux at the moment though). Changes are small; so it should still work in your environment too!

Cool, now it's doing stuff. But something else is now wrong:

2017-10-20 10:53:55,877 - 14836 - INFO - NZBParse - NZB-File parsed 2 meta entries
2017-10-20 10:53:55,963 - 14836 - INFO - Found 1 matched file(s).
2017-10-20 10:53:55,963 - 14836 - INFO - Using advanced search mode
2017-10-20 10:53:56,065 - 14836 - INFO - Detected obfuscated filename d126b400e17c4206ad74cec481345832.mkv, removing from path
2017-10-20 10:53:56,065 - 14836 - INFO - All file path parts are obfuscated, using obfuscated NZB-Headers
[NZB] NZBPR__GUESS_EPISODENUMBER=1
[NZB] NZBPR__GUESS_VIDEOCODEC=h264
[NZB] NZBPR__GUESS_FORMAT=HDTV
[NZB] NZBPR__GUESS_SERIES=Modern Family
[NZB] NZBPR__GUESS_RELEASEGROUP=AVS
[NZB] NZBPR__GUESS_SCREENSIZE=720p
[NZB] NZBPR__GUESS_SEASON=9
[NZB] NZBPR__GUESS_VTYPE=series
[NZB] NZBPR__GUESS_TYPE=episode
2017-10-20 10:53:56,743 - 14836 - INFO - Scanning video 'd126b400e17c4206ad74cec481345832.mkv' in 'C:\\Users\\xxxv\\Videos\\Complete\\Modern.Family.S09E01.720p.HDTV.x264-AVS.1'
2017-10-20 10:53:57,736 - 14836 - INFO - Addic7ed using non-authenticated service.
2017-10-20 10:53:57,743 - 14836 - INFO - Listing subtitles with provider 'opensubtitles' for video <Episode [u'Modern Family', 9x1]> with languages set([<Language [en]>, <Language [nl]>])
2017-10-20 10:53:57,808 - 14836 - INFO - Found 1 subtitle(s) on opensubtitles
2017-10-20 10:53:57,808 - 14836 - INFO - Listing subtitles with provider 'thesubdb' for video <Episode [u'Modern Family', 9x1]> with languages set([<Language [en]>, <Language [nl]>])
2017-10-20 10:53:58,003 - 14836 - INFO - Found 1 subtitle(s) on thesubdb
2017-10-20 10:53:58,005 - 14836 - INFO - Listing subtitles with provider 'podnapisi' for video <Episode [u'Modern Family', 9x1]> with languages set([<Language [en]>, <Language [nl]>])
2017-10-20 10:54:00,940 - 14836 - INFO - Found 6 subtitle(s) on podnapisi
2017-10-20 10:54:00,940 - 14836 - INFO - Listing subtitles with provider 'addic7ed' for video <Episode [u'Modern Family', 9x1]> with languages set([<Language [en]>, <Language [nl]>])
2017-10-20 10:54:01,466 - 14836 - ERROR - Unexpected error in provider 'addic7ed'
Traceback (most recent call last):
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\subliminal\api.py", line 256, in download_best_subtitles
provider_subtitles = provider.list_subtitles(video, provider_video_languages)
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\subliminal\providers\addic7ed.py", line 221, in list_subtitles
return [s for s in self.query(video.series, video.season)
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\subliminal\providers\addic7ed.py", line 185, in query
show_ids = self.get_show_ids()
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\dogpile\cache\region.py", line 1013, in decorate
should_cache_fn)
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\dogpile\cache\region.py", line 640, in get_or_create
async_creator) as value:
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\dogpile\core\dogpile.py", line 158, in __enter__
return self._enter()
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\dogpile\core\dogpile.py", line 98, in _enter
generated = self._enter_create(createdtime)
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\dogpile\core\dogpile.py", line 149, in _enter_create
created = self.creator()
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\dogpile\cache\region.py", line 612, in gen_value
created_value = creator()
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\dogpile\cache\region.py", line 1009, in creator
return fn(*arg, **kw)
File "C:\Users\xxxv\Documents\GitHub\tests\nzb-subliminal-master\Subliminal\subliminal\providers\addic7ed.py", line 162, in get_show_ids
int(html_show['href'][6:])
ValueError: invalid literal for int() with base 10: ''
2017-10-20 10:54:01,469 - 14836 - INFO - Listing subtitles with provider 'tvsubtitles' for video <Episode [u'Modern Family', 9x1]> with languages set([<Language [en]>, <Language [nl]>])
2017-10-20 10:54:03,818 - 14836 - INFO - Found 1 subtitle(s) on tvsubtitles
2017-10-20 10:54:04,088 - 14836 - INFO - Downloading subtitle <OpenSubtitlesSubtitle [en]> with score 46 into u'd126b400e17c4206ad74cec481345832.en.srt'
2017-10-20 10:54:04,365 - 14836 - INFO - Successfully placed d126b400e17c4206ad74cec481345832.en.srt
2017-10-20 10:54:04,372 - 14836 - INFO - Post processing subtitles d126b400e17c4206ad74cec481345832.en.srt encoding.
2017-10-20 10:54:04,374 - 14836 - ERROR - Could not locate a fetched (nl) subtitle.

Hmm, this is completely unrelated to everything we've been doing here.

Looks like your subs should have come down successful though.
Edit: Looks like your English subs should have come down successful though; the nl ones didn't pass the scoring criteria, so there was no match found.

Subliminal attempts to cache the TV shows from each site for a few days so it doesn't have to re-request the same data again each time. The error you're seeing is just it being unable to cache addi7ed's content due to some formatting error in their listing (or they changed it around a bit). This error is not critical by any means.

I'll open a different ticket for this.

With respect to this ticket, i think things are looking good! ๐Ÿ˜„

Confirmed! The English sub is there ๐Ÿฅ‡

So I would say this is done and good to go ๐Ÿ‘

So the info below means "could not find subtitle" or something went wrong?

2017-10-21 14:12:38,038 - 18152 - INFO - NZBParse - NZB-File parsed 4 meta entries
2017-10-21 14:12:38,124 - 18152 - INFO - Found 1 matched file(s).
2017-10-21 14:12:38,125 - 18152 - INFO - Using advanced search mode
2017-10-21 14:12:38,171 - 18152 - INFO - Detected obfuscated filename d16accd539d74340a1c526c91cbc0010.mkv, removing from path
2017-10-21 14:12:38,173 - 18152 - INFO - All file path parts are obfuscated, using obfuscated NZB-Headers
[NZB] NZBPR__GUESS_EPISODENUMBER=4
[NZB] NZBPR__GUESS_VIDEOCODEC=h264
[NZB] NZBPR__GUESS_AUDIOCHANNELS=2.0
[NZB] NZBPR__GUESS_TITLE=iP
[NZB] NZBPR__GUESS_SERIES=The Graham Norton Show
[NZB] NZBPR__GUESS_FORMAT=WEBRip
[NZB] NZBPR__GUESS_RELEASEGROUP=BTW-Scrambled
[NZB] NZBPR__GUESS_SCREENSIZE=720p
[NZB] NZBPR__GUESS_SEASON=22
[NZB] NZBPR__GUESS_VTYPE=series
[NZB] NZBPR__GUESS_TYPE=episode
[NZB] NZBPR__GUESS_AUDIOCODEC=AAC
2017-10-21 14:12:38,720 - 18152 - INFO - Scanning video 'd16accd539d74340a1c526c91cbc0010.mkv' in 'C:\\Users\\xxxv\\Videos\\Complete\\The.Graham.Norton.Show.S22E04.720p.iP.WEBRip.AAC2.0.H264-BTW-Scrambled'