# Video-Use Accessibility Features: Automatic Subtitle Generation and Burn-In Support

> Explore video-use accessibility features. Automatically generate and burn-in high-contrast subtitles for deaf and hard-of-hearing users. Ensure platform-safe video content.

- Repository: [Browser Use/video-use](https://github.com/browser-use/video-use)
- Tags: feature-overview
- Published: 2026-07-10

---

**Yes, video-use includes built-in accessibility features that automatically generate and burn subtitles into edited videos, ensuring high-contrast readability and platform-safe positioning for deaf and hard-of-hearing users.**

The browser-use/video-use repository provides comprehensive **video-use accessibility features** through automated closed caption generation. By integrating transcript data with edit-decision-lists (EDLs) and applying hard-coded accessibility styling, the tool ensures every rendered video includes readable subtitles without requiring manual post-processing.

## How Video-Use Generates Accessible Subtitles

When rendering final output, video-use automatically creates a master SRT file by combining per-source transcripts with EDL offsets. In [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py) lines 11-13, the `--build-subtitles` flag triggers this generation process, synchronizing text with the precise timing of your video edits.

The workflow always loads an audio transcript via **ElevenLabs Scribe** as its first layer, providing word-level timestamps and speaker diarization according to [`README.md`](https://github.com/browser-use/video-use/blob/main/README.md) lines 71-82. These transcripts feed directly into the subtitle generation step, creating a textual representation that serves as the foundation for accessibility compliance.

## High-Contrast Subtitle Styling and Safe Zones

Accessibility requires readable text, so video-use forces subtitles into a high-contrast style defined in [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py) lines 41-56. The configuration uses **Helvetica 18 Bold** with white text, no outline, and safe margins that respect platform UI safe-zones. This ensures captions remain visible and unclipped by TikTok or Instagram Reels controls, regardless of whether the output is landscape or vertical format.

## Technical Implementation in the FFmpeg Pipeline

Subtitle placement in the filter graph is critical for accessibility. According to [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py) lines 7-9 and documented in [`SKILL.md`](https://github.com/browser-use/video-use/blob/main/SKILL.md), subtitles are applied **last** in the FFmpeg filter chain. This guarantees that captions remain visible even after overlays, watermarks, or other visual effects are added to the video.

User-controlled rendering options in [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py) lines 15-20 allow you to toggle accessibility features via CLI. You can explicitly enable subtitles with `--build-subtitles` or disable them for quick previews using `--no-subtitles`.

## Rendering Videos with Accessibility Features

Generate fully accessible video output with automatic subtitle burning:

```bash

# Render a final video with automatically built subtitles

python helpers/render.py edit/edl.json -o edit/final.mp4 --build-subtitles

```

Create preview files without subtitles for faster iteration:

```bash

# Render a preview without subtitles (useful for quick checks)

python helpers/render.py edit/edl.json -o preview.mp4 --preview --no-subtitles

```

Invoke the same rendering logic programmatically in Python:

```python

# In Python, you can invoke the same rendering logic programmatically

from helpers.render import main as render_video

render_video([
    "edit/edl.json",
    "-o", "edit/final.mp4",
    "--build-subtitles"
])

```

## Summary

- **Automatic subtitle generation** combines transcript data with EDL offsets via the `--build-subtitles` flag in [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py).
- **High-contrast styling** uses Helvetica 18 Bold with white text and safe margins to ensure readability across all video formats.
- **Filter chain priority** places subtitles last in the FFmpeg pipeline, guaranteeing visibility over all overlays.
- **CLI flexibility** allows toggling subtitle burn-in with `--build-subtitles` or `--no-subtitles` flags.
- **Accurate source material** comes from ElevenLabs Scribe transcripts with word-level timestamps and speaker diarization.

## Frequently Asked Questions

### How does video-use ensure subtitles meet accessibility standards?

Video-use enforces high-contrast styling using **Helvetica 18 Bold** with white text and no outline, positioned within safe margins to avoid platform UI clipping. According to [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py) lines 41-56, these styles are hard-coded to ensure readability on both landscape and vertical video formats, providing a consistent accessible experience.

### Can I preview videos without burning in subtitles?

Yes. Use the `--no-subtitles` flag when rendering to generate preview files without embedded captions. As implemented in [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py) lines 15-20, this option works alongside `--preview` mode for quick iteration while preserving the full subtitle generation capability for final exports.

### What subtitle format does video-use generate?

Video-use generates a master **SRT file** that combines per-source transcripts with edit-decision-list (EDL) offsets. This SRT file is then burned into the final video output during the FFmpeg rendering process, creating permanent closed captions that work across all video players and platforms.

### Does video-use support speaker identification in subtitles?

Yes. The workflow loads transcripts via ElevenLabs Scribe, which provides **speaker diarization** and word-level timestamps according to [`README.md`](https://github.com/browser-use/video-use/blob/main/README.md) lines 71-82. While the final burned-in subtitles display the combined text, the underlying transcript data includes speaker identification, enabling future enhancements for speaker-specific caption styling or separate accessibility tracks.