Skip to content

Captions toggle in player UI doesn't activate text track on self-hosted #1773

@julianwitzel

Description

@julianwitzel

Description

The Cap video player includes a captions/subtitles UI toggle, but on self-hosted deployments clicking it appears to have no effect. The captions VTT file is correctly:

  • Generated by the transcription workflow
  • Stored in S3 (transcription.vtt next to result.mp4)
  • Loaded into the DOM as a <track kind="captions" src="blob:..."> element

However, the track's mode stays at "hidden" regardless of UI interaction.

Verified working manually

Setting the mode via JavaScript makes captions render correctly:

document.querySelector('video').textTracks[1].mode = 'showing';

This confirms the VTT file, cue parsing, and renderer are all working — only the UI toggle's binding to the track's mode is broken.

Reproduction

  1. Self-host Cap, record a video with audio
  2. Wait for transcription to complete (transcriptionStatus = 'COMPLETE' in DB)
  3. Open the share page, click the captions toggle in the player
  4. Observe: captions don't appear; track.mode remains "hidden"

Environment

Possibly related: Cap uses Vidstack player which has its own captions handling — the toggle button likely sets internal player state but doesn't propagate to HTMLTrackElement.mode.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions