Skip to content

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

Description

@mrrobot-XX

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status
    To Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions