- Captioning
How to Add Closed Captions to Roku
How to Add Closed Captions to Roku
Roku enables your TV to stream TV and movies from services like Netflix, Amazon, Hulu, YouTube, and many others. Service providers can add captions to their content through their channel. Roku supports the captioning formats SMPTE-TT, EIA-608, and WebVTT.
- SMPTE-TT: Supported by MP4 VOD, HLS VOD, Smooth VOD, Smooth Live, and DASH VOD as an external file only.
- EIA-608: Supported by all AVC streams using MP4 VOD, HLS VOD, HLS Live, Smooth VOD, Smooth Live, and DASH VOD.
- WebVTT: Embedded into HLS streams, such as HLS VOD and HLS Live.
Closed captions should be added to the roVideoPlayer component. The preferred technique for adding the closed caption track is to use the Content Meta-Data property SubtitleConfig.
Step 1 – Submit Your Video for Transcription
Log into your 3Play Media account. From the Upload tab at the top of the screen, select From Computer.

You’ll receive an email when your video has been transcribed.
Step 2 – Download Your Captions in WebVTT Format
Go to the My Files page in your 3Play Media account and select your recording. Click on Download and select the WebVTT or SMPTE-TT format under Web Caption Formats. Save the closed caption file to your computer.

Step 3 – Upload your file to Roku
Under Content Meta-Data, you will use the following codes to render closed captions on videos via roVideoScreen. Depending on the caption format, SMPTE-TT or WebVTT, the code will be slightly different. SMPTE-TT
- This caption format is supported by Roku through TTML formatted external files, or by embedding the TTML directly into the video stream.
- To use an external TTML file:
- Set the SubtitleURL content metadata of your roVideoScreen to specify the path.
- To specify closed captions need to be added, call subtitle_config.
- Under TrackName specify the url of the TTML file.
- Under MetaData, specify the stream, which will link to the videos URL.
- Call ifVideoScreen.ShowSubtitle(true)
- The captions will render once ifVideoScreen.Play() is called.
A code example is outlined below.

WebVTT
- This caption format is supported by Roku when embedded into the HLS stream or manifest. WebVTT formats are specified in the SubtitleConfig metadata.
- Set the SubtitleURL content metadata of your roVideoScreen to specify the path.
- To specify closed captions need to be added, call subtitle_config.
- Under TrackName specify the url of the TTML file.
- TrackName should be set to webvtt/track where track specifies the index of the caption to render.
- Under MetaData, specify the stream, which will link to the videos URL
A code example is outlined below.

Step 4 – View your video with captions!

Filed under
Share this page
Related Resources
-
Read more: Event Planning Workbook- Whitepaper
Event Planning Workbook
-
Read more: European Accessibility Act (EAA) Checklist- Whitepaper
European Accessibility Act (EAA) Checklist
-
Read more: Questions to Ask a Dubbing Vendor- Whitepaper
Questions to Ask a Dubbing Vendor


