v17 How to always activate subtitles?
#1
Question 
Hello,

I'm using subtitles in Kodi on a daily basis and I was wondering if there is a way to activate them by default.

After some searching in this forum+wiki (here) I've learned the following way:
Enable subtitles in settings and then "Set as default for all videos"

But unfortunately this isn't working. Subtitles are now activated by default only in 20% of my video files.
Is there a better way to get this working? Maybe an addon I could install to enable subtitles for me by default?

Thanks,
probst

(Kodi 17.1 installed on Fire TV)
Reply
#2
In settings you can set the default language for subtitles which should enable them if that language is available
Read/follow the forum rules.
For troubleshooting and bug reporting, read this first
Interested in seeing some YouTube videos about Kodi? Go here and subscribe
Reply
#3
(2017-05-01, 09:38)Martijn Wrote: In settings you can set the default language for subtitles which should enable them if that language is available
I've tried that but maybe the problem is, my included subtitles aren't named/tagged with any language information?
Example video file just tried: "Audio track: English; Subtitle: Unknown"

This could explain why Kodi isn't enabling these subtitles?
I can't fix the video files but maybe there's a Kodi workaround? Blush
Reply
#4
You could rename the subtitles within the files.

I did it a couple of years ago on a batch of movies which had the same issue. The subtitles were Italian, but it was listed as blank or unknown.

I am pretty sure this was the program I used...

https://sourceforge.net/projects/subvidrenamer/
Reply
#5
(2017-05-01, 10:10)Karellen Wrote: You could rename the subtitles within the files.

I did it a couple of years ago on a batch of movies which had the same issue. The subtitles were Italian, but it was listed as blank or unknown.

I am pretty sure this was the program I used...

https://sourceforge.net/projects/subvidrenamer/

Maybe this could be helpful for someone else, too:
I've looked into "subvidrenamer" but couldn't use it, because my subtiles where included in the mkv container. But I found a different solution:

Code:
mkvpropedit myvideo.mkv --edit track:s1 --set flag-forced=1

It's included in MKVToolNix and it's just a simple way to force any video player to use the included (first) subtile Smile
Reply
#6
Hi @Probst,

Thank you for sharing your solution. Smile
My Signature
Links to : Official:Forum rules (wiki) | Official:Forum rules/Banned add-ons (wiki) | Debug Log (wiki)
Links to : HOW-TO:Create Music Library (wiki) | HOW-TO:Create_Video_Library (wiki)  ||  Artwork (wiki) | Basic controls (wiki) | Import-export library (wiki) | Movie sets (wiki) | Movie universe (wiki) | NFO files (wiki) | Quick start guide (wiki)
Reply
#7
My pleasure Blush
Reply
#8
There are two options:
- repair missing media flags
- change subtitle language in Kodi setting to a fixed language.

Repair missing media flags
Setting Force flag works, but it is by design used to mark a subtitle, which translates alien (i.e. Klingon) language to a movie's selected actual audio language. 
Such subtitle would for example contain Klingon translation to English, if you're watching the Movie with English audio. 
Because not many humans understand Klingon, such subtitle is always shown. Forced.

If you're going through the trouble of fixing a movie's tags,
you can do it properly by adding missing flags of audio and subtitle languages and selecting one subtitle as the Default. (whichever is missing):

using mkvpropedit 
shell:
mkvpropedit /share/path/test.mkv --edit track:a1 --set language=eng
shell:
mkvpropedit /share/path/test.mkv --edit track:s1 --set language=eng
shell:
mkvpropedit /share/path/test.mkv --edit track:s1 --set flag-default=1

FFmpeg can do this too, with a limitation 
“FFmpeg cannot edit existing files in-place.” 
shell:
ffmpeg -i /path/test.mkv -c copy -metadata:s:a:0 language=eng /path/test-out.mkv
shell:
ffmpeg -i /path/test.mkv -c copy -metadata:s:s:0 language=eng /path/test-out.mkv
shell:
ffmpeg -i /path/test.mkv -c copy -disposition:s:0 default /path/test-out.mkv

it can be done in one go: 
shell:
ffmpeg -i /path/test.mkv -c copy -metadata:s:a:0 language=eng -metadata:s:s:0 language=eng -disposition:s:0 default /path/test-out.mkv

"s" in -metadata:s:a:0 stands for "stream" 
"s" in -disposition:s:0 stands for "subtitle" 
Above commands assume both audio and subtitle streams which we are editing are first: ffmpeg "0" or mkvpropedit "1". If they are not, change numbers accordingly.

Change subtitle language in Kodi
as an alternative to repair missing flags in media files, you can change default subtitle language in Kodi's settings to a fixed one. 

Settings > Player > Language > Subtitles 

from:
  • Original Language (default)
    Language will be detected from Audio stream's language. It must match Subtitle's language AND one of such subtitle's must be flagged as Default
to:
  • Fixed language, which means "English", "<ANY OTHER LANGUAGE>", or "User Interface Language" which is also fixed because it's a language of the UI, independent from the Movie's audio language.
    In this case audio does not need to have Language flag specified and Subtitle does not need to be Default.

This is by design and supposedly not a bug.
But who for is such a feature which does not work in real life,
because most mkv are missing some flags?

I would suggest: 
- if there is only one subtitle of one particular language, it should be considered "Default" even if not set as such explicitly. 
- plus a setting: If language flag in media is missing, assume "User Interface Language" for it.

Of course in addition you also need to select "Set as default for all videos", while having subtitles on or off in subtitle submenu in player, as was mentioned in the original post.
Reply
#9
(2020-06-29, 07:01)paponius Wrote: There are two options:

You do realize you are posting in a 3-yr old forum thread, right..?
Reply

Logout Mark Read Team Forum Stats Members Help
How to always activate subtitles?1