tvOS "Auto" subtitle language setting

Hello! I'm looking for more information on the "Auto" subtitle language setting on tvOS. I work on a video streaming application which uses AVPlayerViewController, HLS, subtitles in WebVTT format. The app has been in production for quite some time and everything works perfectly with respect to video streaming and subtitles except the "Auto" setting on tvOS, which never results in any subtitles at all.
I can't find any documentation on what criteria the "Auto" setting uses to determine what subtitles to show. I have tried looking at the iTunes app on tvOS as a signifier of correct behavior, but its behavior is inconsistent (sometimes auto shows no subtitles until another language is selected, after which auto will continue to show the recently selected language).
Other pertinent details and things I have already checked:
- appliesMediaSelectionCriteriaAutomatically is set to true on the AVPlayer object
- m3u8 file lists subtitles with AUTOSELECT enabled and both DEFAULT and FORCED disabled as shown below.

#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="en",NAME="English",AUTOSELECT=YES,DEFAULT=NO,FORCED=NO,URI="segments/subtitles/en/prog_index.m3u8"
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",LANGUAGE="es",NAME="Español",AUTOSELECT=YES,DEFAULT=NO,FORCED=NO,URI="segments/subtitles/es/prog_index.m3u8"

Any insight anyone can provide would be appreciated as far as what this setting is intended to represent, whether it is up to the application to implement the "automatic" behavior or if given the above conditions, the correct language selection should be determined by the operating system when appliesMediaSelectionCriteriaAutomatically is used.

Accepted Reply

I spoke to someone from Apple who provided the following information: “Auto” means to display forced subtitles, if any are available, in alignment with the device’s current preferred language options. Forced subtitles in this case refers to the value of the FORCED attribute of the subtitle track in the .m3u8 file.

Replies

Have you tried to set the system setting for "Closed Captions and SDH" of "Subtitles and Captioning" to "On"?

I was interested to find that that setting is mutually exclusive with the Auto subtitle language. That is, setting Video and Audio > Subtitle Language to "Auto" will switch the "Closed Captions and SDH" setting to "Off", and turning "Closed Captions and SDH" to "On" will result in an actual language ("English", not "Auto") being selected in the Subtitle Language setting.
I imagine this is intended but I found it surprising that these two settings in different menus would interact in this way. Unfortunatley this still doesn't answer the question of what the Auto setting should do, and how to achieve that.

Seems the tvOS has more complex algorithm for subtitling setting then.

AVPlayer may decide to show subtitle or not based on the two system settings and playlist.


So if you turn the "Closed Captions and SDH" on, deos the subtitle show automatically?

What I test in iOS is if you set it on, the subtitle will show automatically, set to off, it won't.

Subtitles do show if "Closed Captions and SDH" is set to "On", as expected, because turning this setting on selects an actual language (e.g. English, not Auto). I'm specifically wondering what the "Auto" setting does or is intended to do.

I spoke to someone from Apple who provided the following information: “Auto” means to display forced subtitles, if any are available, in alignment with the device’s current preferred language options. Forced subtitles in this case refers to the value of the FORCED attribute of the subtitle track in the .m3u8 file.

Hi dev, i don't understand how "automatic" works.
i'm working on a mobile app that uses AVPlayer that load an m3u8.
in the subtitle settings i can chose for "no", "automatic", "italian"...
if my device uses italian language i expect that if i choose automatics, the italian subtitle appear on the video but this is not working.
There is any error in the m3u8? i'm missing some steps? i noticed that the automatics button doesn't work in this apple hls example too..

Bumping this one up due to the lack of official docs. What's the behavior for Auto (Recommended)?

Feedback created: FB13344652.