# Video-Use Configuration Options: Complete Environment Variable Guide

> Explore browser-use video-use configuration options with our guide to environment variables, including the mandatory ELEVENLABS_API_KEY and optional settings for FFmpeg, color grading, subtitles, and more.

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

---

**Video-use requires only one mandatory setting—`ELEVENLABS_API_KEY`—while providing five optional environment variables to customize FFmpeg binaries, color grading, subtitle styling, output directories, and retry limits.**

Video-use is a lightweight, open-source video editing agent from the browser-use organization that automates transcription and rendering through LLM-driven workflows. All configuration options are supplied via an `.env` file or exported environment variables, allowing you to tailor the rendering pipeline without modifying the core Python logic.

## Required and Optional Environment Variables

Video-use reads six configuration values at startup. Only the ElevenLabs API key is mandatory; all others provide sensible defaults.

- **`ELEVENLABS_API_KEY`** (string, **required**): The only secret required by the tool. This key powers the automatic transcription of every video source via ElevenLabs' Scribe service. According to the source code in [`helpers/transcribe.py`](https://github.com/browser-use/video-use/blob/main/helpers/transcribe.py), the application exits if this variable is missing.

- **`FFMPEG_PATH`** (string, default: `ffmpeg`): Specifies the path to your FFmpeg binary. If omitted, the system searches your `$PATH`. Set this to use a custom build (e.g., Homebrew installation or a compiled binary with specific codecs) as referenced in [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py).

- **`VIDEO_USE_COLOR_GRADE`** (string, default: `null`): An FFmpeg filter chain appended to the rendering step. Accepts any valid filter string, such as `curves=vintage` or complex `colorbalance` expressions, to apply consistent color grading across all segments.

- **`VIDEO_USE_SUBTITLE_STYLE`** (string, default: `UPPERCASE_2WORD`): Controls how subtitles are burned into the final video. The default setting uses two-word, all-caps chunks, but you can supply any CSS-style string that the subtitle-burning routine understands, as documented in [`SKILL.md`](https://github.com/browser-use/video-use/blob/main/SKILL.md).

- **`VIDEO_USE_OUTPUT_DIR`** (string, default: `<videos_dir>/edit`): Defines the destination folder for `final.mp4` and intermediate artifacts. Changing this allows you to maintain multiple editing sessions side-by-side.

- **`VIDEO_USE_MAX_RENDERS`** (integer, default: `3`): Sets the maximum number of re-render attempts during the self-evaluation loop. The agent will re-render a cut at most this many times before proceeding, letting you balance quality against processing time.

## Setting Up Your Configuration

Create your environment file by copying the provided template and adding your API credentials.

```bash

# Copy the example template

cp .env.example .env

# Edit with your credentials and preferences

$EDITOR .env

```

A typical `.env` configuration looks like this:

```text
ELEVENLABS_API_KEY=sk-xxxx...
FFMPEG_PATH=/usr/local/bin/ffmpeg
VIDEO_USE_COLOR_GRADE=curves=vintage
VIDEO_USE_SUBTITLE_STYLE=UPPERCASE_2WORD
VIDEO_USE_OUTPUT_DIR=/path/to/custom/output
VIDEO_USE_MAX_RENDERS=5

```

The `.env.example` file in the repository root serves as the canonical reference for all available variables.

## Runtime Configuration Overrides

For one-off changes without editing the `.env` file, export variables directly in your shell session. These take precedence when the helper scripts initialize.

```bash
export VIDEO_USE_COLOR_GRADE="hue=s=0"   # Force black-and-white look

export VIDEO_USE_MAX_RENDERS=1           # Strict single-render limit

claude

```

This approach is useful when testing different color grades or when running multiple video-use instances with distinct settings.

## Configuration Implementation in Source Files

The environment variables are consumed by specific helper modules during the editing pipeline:

- **[`helpers/transcribe.py`](https://github.com/browser-use/video-use/blob/main/helpers/transcribe.py)**: Loads `ELEVENLABS_API_KEY` and initiates transcription via the ElevenLabs Scribe API.
- **[`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py)**: Constructs the FFmpeg command, applying `FFMPEG_PATH`, `VIDEO_USE_COLOR_GRADE`, `VIDEO_USE_SUBTITLE_STYLE`, and `VIDEO_USE_OUTPUT_DIR` to the rendering pipeline.
- **[`SKILL.md`](https://github.com/browser-use/video-use/blob/main/SKILL.md)**: Documents the production rules that reference these settings, particularly the color-grade chains and subtitle styling conventions.

When the LLM agent executes an edit command, it triggers the transcription helper first, then invokes the render helper, which respects all configured environment variables to produce the final output.

## Summary

- **Video-use configuration** relies entirely on environment variables read from an `.env` file or shell exports.
- Only `ELEVENLABS_API_KEY` is mandatory; all other settings provide sensible defaults.
- Customize FFmpeg behavior via `FFMPEG_PATH` and visual output via `VIDEO_USE_COLOR_GRADE` and `VIDEO_USE_SUBTITLE_STYLE`.
- Control file organization with `VIDEO_USE_OUTPUT_DIR` and quality thresholds with `VIDEO_USE_MAX_RENDERS`.
- Configuration is implemented in [`helpers/transcribe.py`](https://github.com/browser-use/video-use/blob/main/helpers/transcribe.py) and [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py), with templates provided in `.env.example`.

## Frequently Asked Questions

### What is the only required configuration option for video-use?

The only mandatory setting is `ELEVENLABS_API_KEY`. This API key is required in [`helpers/transcribe.py`](https://github.com/browser-use/video-use/blob/main/helpers/transcribe.py) to authenticate with ElevenLabs' Scribe service for automatic video transcription. All other environment variables are optional and fall back to default values if not specified.

### How do I customize subtitle appearance in video-use?

Set the `VIDEO_USE_SUBTITLE_STYLE` environment variable to any CSS-style string understood by the subtitle-burning routine. The default value is `UPPERCASE_2WORD`, which generates two-word, all-caps chunks. You can modify this in your `.env` file or export it temporarily for specific rendering sessions.

### Can I use a custom FFmpeg binary with video-use?

Yes. Define the `FFMPEG_PATH` variable to point to your custom binary (e.g., `/opt/homebrew/bin/ffmpeg` or a custom-compiled build with specific codecs). If omitted, video-use defaults to searching for `ffmpeg` on your system's `$PATH` as implemented in [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py).

### How does the VIDEO_USE_MAX_RENDERS option affect the editing process?

`VIDEO_USE_MAX_RENDERS` controls the self-evaluation loop's retry limit, defaulting to `3`. When the agent renders a video segment, it evaluates the output and may re-render if the quality is insufficient. This integer value sets the maximum number of attempts before the pipeline proceeds to the next segment, allowing you to balance between automatic quality correction and processing speed.