Closed captions
Closed captions are timed text tracks delivered as sidecar files with Moments, Story pages, and Videos. This article covers how captions differ from text localization and what you control in the Experiences SDK.
Closed captions are timed text tracks delivered as sidecar files with Moments, Story pages, and Videos. Viewers turn captions on in the player and pick a language when more than one track is available. This article covers how captions differ from text localization and what you control in the Experiences SDK.
Closed captions vs text localization
| Closed captions | Text localization | |
|---|---|---|
| Purpose | Timed text synced to video | Titles, descriptions, metadata subtitle, CTA copy |
| Delivery | Sidecar files (for example, VTT, SRT) on the content item | Translated fields from the CMS |
| Viewer choice | CC button and language picker in the player | Device or app language via setPreferredLanguage |
| Your SDK API | Player styles and Web shouldAllowClosedCaptions | setPreferredLanguage |
Don't use setPreferredLanguage to select a caption track. It only affects metadata text. See Text localization.
How content provides captions
Sidecar caption files are created during content creation in Arena (for example, in Create, Rules, or Clipro). That step produces the timed caption files and attaches them to the asset. When the asset is published, it reaches CMS with sidecar files already included. CMS schedules and delivers the content; the Experiences SDK reads closedCaptions on each item and plays the track the viewer selects.
Each item exposes a closedCaptions list: one entry per language, each with file URLs. The SDK shows the captions button when tracks exist and disables it when they don't. You don't generate or upload sidecars from the SDK.
What you control in the SDK
| Control | Web | Android / iOS |
|---|---|---|
| Turn CC on in the app | Set shouldAllowClosedCaptions to true at SDK init. Default is false. | Show or hide the CC button with buttons.captions.isVisible on Moments, Stories, and Videos player styles. |
| Button look and placement | Player theme and button order (for example, CLOSED_CAPTIONS in bottomIconsButtonOrder). See Web theme: video and Web theme: moment. | Reorder bottom or top stack buttons. See the player buttons style articles under SDK Android and SDK iOS. |
| Default CC language | Not configurable from your app. | Not configurable from your app. |
| Which sidecar file plays | Not configurable. The SDK uses the language the viewer picked. | Not configurable. The SDK uses the language the viewer picked. |
| Persist viewer CC choice | Handled by the SDK (viewer's last selected language). | Handled by the SDK (viewer's last selected language). |
Playback limits
- Picture-in-picture: captions aren't shown in PiP.
- Casting: captions stay on the device, not on the cast target.
Details are in Player capabilities and features.
Updated about 1 month ago
