TheWidlarzGroup / TheWidlarzGroup/react-native-video

[BUG]: External Subtitles Not Working in Latest Versions (`onTextTracks` returns null)

Open
#4,792 8 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug difficulty: medium Missing Repro Newer Version Available Platform: Android triaged V6
Dominant language
TypeScript
Stars
7.7k
Forks
3k
Avg merge
1d 7h
Merged PRs (30d)
9

Description

What happened?

A breaking regression affecting all versions after 6.15.0: external subtitles (VTT/SRT) do not load.

Working version: react-native-video@6.15.0

Broken versions (tested): 6.16.0, 6.17.0, 6.18.0 (latest)

Issue Description

External subtitles (VTT/SRT) do not load in the latest versions.

  • The video plays normally, but subtitles never display.
  • onTextTracks() returns null or an empty array.
  • No subtitle item appears for selection.
  • Selecting subtitle manually also does nothing.

The same code works perfectly on version 6.15.0, so this is a regression.

Code Example (Working only on 6.15.0)
<Video
  useExoPlayer={true}
  source={{ uri: videoUrl }}
  textTracks={[
    {
      title: "English",
      language: "en",
      type: TextTrackType.VTT,
      uri: subtitleUrl,
    },
  ]}
  selectedTextTrack={{
    type: "index",
    value: 0,
  }}
  onTextTracks={(tracks) => {
    console.log("Subtitle tracks:", tracks);
  }}
/>
Current Behavior (Bug)
  • onTextTracks → returns: null or []
  • Subtitles never appear
  • Cannot select subs or display them at runtime
Expected Behavior
  • textTracks should load the external subtitle file
  • onTextTracks should return available subtitle tracks
  • Selected subtitle should be displayed during playback (like in 6.15.0)
Notes

This affects:

  • Android (ExoPlayer path)
  • External subtitles (not embedded)
  • .vtt, .srt, .vtt remote URLs
Impact

This breaks accessibility and multilingual playback support. Many streaming apps rely on subtitles — so this is a major regression.

Request

Please fix this subtitle regression in the latest version or provide guidance / patch. Available to test builds and provide logs if needed.

Steps to reproduce
  1. Use react-native-video 6.16.0 or later on Android (ExoPlayer path).
  2. Render a <Video> component with an external subtitle file passed via the textTracks prop (e.g. a remote .vtt/.srt URI) and selectedTextTrack set to index 0.
  3. Play the video and observe onTextTracks returns null or []; no subtitles display and none can be selected.
  4. Downgrade to 6.15.0 with the same code — subtitles load and display correctly.
Reproduction repository

No response

react-native-video version

6.18.0

react-native version

No response

react-native-nitro-modules version

No response

Platforms

Android

OS version

Android 12

Device

Real device

Architecture

Old Architecture

Expo

No response

Last working version

6.15.0

Media / source type

Other

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue on Android with the ExoPlayer path using the provided textTracks and selectedTextTrack example. Compare react-native-video 6.15.0 with 6.18.0 and inspect the subtitle-track handling between those versions. Done means external VTT/SRT tracks are returned by onTextTracks, can be selected, and display during playback.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, react-native
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.