Feature Request: Forced Subtitles

When I watch regular network television, I don’t have subtitles on. I never do. I’m not deaf or hard of hearing. However, subtitles automatically appear when I’m watching a foreign language movie or an English movie with foreign language parts.

I want Plex to do the exact same thing.

It’s the English movie with foreign parts that’s the trouble. For containers such as MKV which can have embedded subtitle tracks, the tracks can have a “forced” flag. This enables the effect described above. So even when the subtitle setting in Plex is set to “None”, those forced ones still appear, even on English movies.

There is currently no way of making this work in Plex without fudging the audio language and subtitle language in the MKV file so it fits in with the “Show with foreign audio” setting (or of course, manually selecting the subtitle track during playback).

@squawk
This would be a good feature, in fact there are websites out there that provide subtitles for free.

But here’s were we have a problem, if plex was to download subtitles for movies or tv shows they’d be doing so based on the title of the file, if you go to any subtitle website you usually find different subtitle versions which usually depend on what video version you downloaded, I’ve tried to use just the plain subtitles with a movie from a torrent site and it can sometimes be out sync give or take a few seconds, but if I find the exact subs available that were created for that file then the subs work perfectly.

This would work perfectly if every movie or TV show that you were adding to your plex library, were all one kind such as DVD/BLURAY Rips, but people who record from their TV, they would have some issues as the subtitles can’t predict adverts and if you were to edit out the ad’s, everyone would have a few seconds more or less than each other, so there would be a handful of people who would always have subtitles out of sync.

At the moment I use Filebot to organise my media and to download subtitles (These would then be placed in my plex library for plex to create the metadata), it’s not perfect but for DVDrips it does the job.

If Plex was to have an algorithm (similar to youtube) that generated the subtitles based on the audio, then that could work but it might require more processing power which could drop the machines performance, then again when plex downloads the metadata for the movie/series it then tries to generate the subtitles based on the audio, this could work but it would take around the same length of time as movie/show to generate since it would need to scan the audio, again this wouldn’t be perfect and if the show was to grab the wrong metadata it could require you to go through that entire process again.

It would be handy to have plex generate the srt files for you with the ability to ignore all subtitles that aren’t translating the foreign scenes.

@Skullzy
I’m not suggesting that Plex should download the subs, far from it. Even subtle variations of the same movie, differently trimmed start offsets, different frame rates, the extended editions and so on, would make auto-download of the subs almost impossible. I’m not suggesting this. So let me explain further.

On the PMS Server settings, Languages section, there are some audio and subtitle options. In the “subtitle mode” drop down we can have

  • Manually selected (i.e. dont show subs unless I pick them)
  • Shown with foreign audio (i.e. only show subs when the subs language differs from the audio language)
  • Always enable (i.e. always show the subs in my preferred language)

All the above assume that the subs exist in the file (or in a separate file).
There’s a little more to the simple descriptions above and these options are explained in detail on the Plex support pages. But you get the general idea.

BUT none of the above options take account of the “Forced” flag on the subtitle track that is already inside an MKV file. The Forced flag says to Plex “Even though I’m watching an English movie, and my preferred language is English, and although I’ve stated that I generally don’t want subtitles for English movies…please show the English subtitles come-what-may”. In other words Force them onto the screen. Effectively this is the same as if the subs were burned into the video track.

The upshot is that, even though I have subtitles switched off, when James Bond is talking to the sultry Russian Bond girl in Russian, the subs pop up without me wondering what the heck they’re talking about.

To achieve this, the middle option in the drop down would need to change to
- Shown with foreign audio (or when forced)

Hope that helps.

@squawk said:
There is currently no way of making this work in Plex without fudging the audio language and subtitle language in the MKV file so it fits in with the “Show with foreign audio” setting (or of course, manually selecting the subtitle track during playback).

What do you mean by “fudging”?

The feature is there and it works if all the subtitle and audio tracks are properly tagged with the right language and if there is a forced subtitle present in the file which has the right language.

So if the right sub is there, Plex will activate it.
What do you want to change?

Hi @OttoKerner

OK so lets assume I have the Plex Server set to “Shown with foreign audio” and my audio and subs language preferences are set to English.

If my MKV file has an English audio track and an English subtitle track, no subtitles will be shown when I watch the movie. This is exactly right for movies that are 100% English.

But when that 10 second segment appears where the actors are speaking German, missing subtitles is a pain in the backside. I have to go into the settings, pick the sub track and rewind the movie to re-watch that bit. The movie is not in German, the subs are not in German.

To make this work, I have to “fudge” it. By this I mean I have to edit the MKV and make either the audio track or the subtitle track non-English. If I set the audio to “German” then the “Shown with foreign audio” will kick in and show the subtitles correctly. But why do I have to do that? The movie is not IN German apart from a couple of lines of dialogue.

This is the exact purpose of the “Forced subtitle” flag. If the subtitle track were forced, (and Plex supported it). Plex would show those lines of dialogue without me having to change any languages or settings.

Note that this is not new; it’s already in existence. The NMT (Popcorn Hour) for example has done this for years.

As Ottokerner mentioned, support for forced subs is there. One needs to set it up correctly though (besides form having properly tagged media):

From the support page:
In some cases, you may have an embedded subtitle track that is specifically flagged as “Forced”. In such cases:
_* If “Shown with foreign audio” is enabled, the “Forced” subtitle will be used even if there is an audio track present that matches your preferred audio language

  • If “Always enabled is selected”, the “Forced” subtitle will be treated as normal_

That’s a great spot in the support pages. I searched and failed miserably.
However, I have done some testing today and the above is not my experience. The forced flag was completely ignored.

Perhaps it’s a server version and this feature is a new addition. I’m not a plexpass user so maybe I wont see it yet. But I will check this.

Thanks.

UPDATE My version is 0.9.12.4 and is reported as up-to-date

@squawk said:
That’s a great spot in the support pages. I searched and failed miserably.
However, I have done some testing today and the above is not my experience. The forced flag was completely ignored.

Perhaps it’s a server version and this feature is a new addition. I’m not a plexpass user so maybe I wont see it yet. But I will check this.

Thanks.

UPDATE My version is 0.9.12.4 and is reported as up-to-date

This has been working for at least 2 years. But with that said, it is possible there is a bug there. I always use “Always enabled” so I will never see if there is a bug in that function.
But I suspect it is working as I would have seen more people complaining about it, so before we dig in to deep trying to find a bug, I would love it if you could do some testing before I bother the developers. Are you game for that?
If that is ok, then I want you to do this:

  1. Make sure you have set subtitles to “Shown with foreign language”, and set audio language to english in PMS settings/Server/Languages. Also make sure you check the checkbox that is above it (automatically select audio and subtitle tracks). Do the same thing at https://plex.tv/users/profile (which is solely used for Shared Users, but I do not know which account you have, so lets set it at both places).
  2. Aquire a new movie which has a forced flag. It can’t be a movie you already have in the database.
  3. Scan it in. Wait a minute or so. Then start it up in an official client. Does it work now?

Why the above steps? Well, there are a few pitfalls that I want us to avoid. Firstly I do not want the movie to have any lingering data in the database, so for this test I want a brand new movie. Secondly, there are now two places to set the preferred audio and subtitle language/settings. And for now it is a bit confusing. This is something that will be improved upon over time to make it less confusing, but for now we have to live with it.

Lets hope this works for you, then we can try and figure out what the next step is.

Definitely game for that.

Just to say though, the steps you describe above are exactly what I already did. The only difference was the plex.tv part. Haven’t touched that. In fact this is what happened to a real movie that I added that I couldn’t get the subs to appear for. (I initially blamed the client and bugged them over there at RasPlex before realising it wasn’t working on any other client either :-/ )

However, that said, you seem to be fairly sure that it works and you also seem to know what you’re talking about so I’m more than happy to repeat the exercise - I may well have screwed up somewhere. I’ll document each step and report back.

Well I’m happy (or not) to say, I screwed up.

At least I must have, because where I could not for the life of me get the thing working over the past days, I now cannot get it to fail!! Very frustrating to not know where I went wrong but at the end of the day it doesn’t matter.

The message to carry forward is as per @atrus, the forced subtitles DO appear to work.

TEST 1 - audio language = subs language = English, subs=forced

  1. I took an existing MKV movie with foreign audio subs.
  2. Opened in MKV to double check the meta-data. Audio english and subs English, forced.
  3. Renamed to a movie name I don’t have in my library
  4. Uploaded and scanned

Subs shown during playback. Correct.

TEST 2 - audio language = subs language = English, subs=not forced

  1. I edited the file and removed the forced flag
  2. Re-uploaded and refreshed

No subs shown during playback. Correct.

TEST 3 - audio language <> subs language, subs=forced

  1. I edited the file and set the language to “und (undetermined)” and added the forced flag
  2. Re-uploaded and refreshed

Subs shown during playback. Correct.

TEST 4 - audio language <> subs language, subs=not forced

  1. I edited the file and removed the forced flag
  2. Re-uploaded and refreshed

Subs shown during playback. Correct.

TEST 5 - repeat of test 2, to check the DB is not retaining the “subs” settings

  1. Edit the file, set the audio language=subs language=English
  2. Re-uploaded and refreshed

No subs shown during playback. Correct.

I did find out one other snippet of info…the problem file I had already in the DB. This was set to audio=subs=eng (English), forced=yes. But no subs were appeared (hence all of the above thread). I DID notice that when I clicked on the balloon at the top of the web interface client that English (Forced) was ticked - yet no subs were showing.

Those subs ARE now showing after all this dicking about. So what happened here is anyone’s guess.

So bottom line, forced does work. I’ll mark atrus’s response as the answer

Thanks
S.

@squawk

As you have now agreed that it works I have closed the issue on GitHub as it was never a Rasplex issue.

Regards

Great post. I have learned a lot about subtitles - I’ve been wondering about getting the non-english parts of movies to have subs - and I appreciate the time everyone took with this. Thank you!

Regs,
Ken