I tested this on my Roku 3.
It's giving me back a 2-letter language code rather than a 3-letter language code.
Is the API wrong, or the documents?
The two-letter codes should match ISO 639-1. and the set of supported languages should match the docs, as we've not added any additional fonts for other character forms.
Yes, this API ended up changing in Roku OS 12.0 -- there was some inconsistency that broke internal testing, and the fix was made to always use the two-character codes, but the docs weren't updated.
So if I want to compare the Language key in a video's availableSubtitleTracks array, I'm going to have to use an internal mapping of 2-letter codes to 3-letter codes?
Are the preferred caption languages listed in the docs all of the supported languages?
The two-letter codes should match ISO 639-1. and the set of supported languages should match the docs, as we've not added any additional fonts for other character forms.