# What Are the Dependencies for video-use? A Complete Python Package Guide

> Discover the essential video-use Python package dependencies. Learn about core libraries like requests, librosa, and numpy required for your projects. Get the complete guide.

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

---

**The video-use package requires five core Python libraries—requests, librosa, matplotlib, pillow, and numpy—declared in [`pyproject.toml`](https://github.com/browser-use/video-use/blob/main/pyproject.toml), with an optional manim dependency for animation features.**

The video-use repository provides Python utilities for video processing and analysis. Understanding its dependency requirements is essential for proper installation and development. This guide examines every package defined in the project's configuration files and explains how each library powers specific functionality across the codebase.

## Core Runtime Dependencies in pyproject.toml

The video-use package declares its mandatory runtime requirements in [`pyproject.toml`](https://github.com/browser-use/video-use/blob/main/pyproject.toml) lines 7-13. These dependencies install automatically when running `pip install video-use`:

- **requests**: HTTP client for API calls and downloading remote resources
- **librosa**: Audio analysis library for loading and extracting features from video soundtracks
- **matplotlib**: Plotting library for visualizing waveforms, spectrograms, and data-driven graphics
- **pillow**: Image processing library (PIL fork) for handling thumbnails and frame extraction
- **numpy**: Fundamental array-processing package powering numerical operations across modules

## Optional Animation Dependencies

Beyond the core requirements, video-use supports optional animation generation through extras groups defined in the project configuration.

### The animations Extra

Configured in [`pyproject.toml`](https://github.com/browser-use/video-use/blob/main/pyproject.toml) lines 15-17, the `animations` extra installs **manim**, a mathematical animation library. This enables the video generation capabilities documented in [`skills/manim-video/README.md`](https://github.com/browser-use/video-use/blob/main/skills/manim-video/README.md).

Install the optional dependencies using:

```bash
pip install video-use[animations]

```

## How Dependencies Power the Codebase

These libraries integrate through specific helper modules that demonstrate practical usage patterns.

### Fetching Remote Content with requests

The [`helpers/transcribe.py`](https://github.com/browser-use/video-use/blob/main/helpers/transcribe.py) module uses **requests** to download audio files prior to processing.

```python
import requests

def download(url, dest_path):
    response = requests.get(url, stream=True)
    response.raise_for_status()
    with open(dest_path, "wb") as f:
        for chunk in response.iter_content(chunk_size=8192):
            f.write(chunk)

```

### Processing Audio with librosa and matplotlib

The [`helpers/timeline_view.py`](https://github.com/browser-use/video-use/blob/main/helpers/timeline_view.py) file combines **librosa** for audio loading and **matplotlib** for rendering visual timelines.

```python
import librosa
import matplotlib.pyplot as plt

y, sr = librosa.load("audio.wav", sr=None)
plt.figure(figsize=(10, 2))
plt.plot(y)
plt.title("Waveform")
plt.show()

```

### Handling Video Frames with pillow and numpy

Frame extraction in [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py) leverages **pillow** and **numpy** for array-to-image conversion.

```python
from PIL import Image
import numpy as np

def frame_to_image(frame_array: np.ndarray) -> Image.Image:
    return Image.fromarray(frame_array.astype("uint8"))

```

### Creating Animations with manim

When installed via the optional extra, **manim** enables programmatic video generation as implemented in the skills directory.

```python
from manim import *

class HelloWorld(Scene):
    def construct(self):
        text = Text("Hello, video-use!").scale(2)
        self.play(Write(text))
        self.wait(2)

```

## Summary

- The video-use package requires five core **dependencies**: requests, librosa, matplotlib, pillow, and numpy, defined in [`pyproject.toml`](https://github.com/browser-use/video-use/blob/main/pyproject.toml) lines 7-13.
- **Optional dependencies** include manim for animation features, available via `pip install video-use[animations]`.
- Helper modules such as [`helpers/transcribe.py`](https://github.com/browser-use/video-use/blob/main/helpers/transcribe.py), [`helpers/timeline_view.py`](https://github.com/browser-use/video-use/blob/main/helpers/timeline_view.py), and [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py) demonstrate specific library integrations.
- Each dependency serves distinct purposes: HTTP networking, audio analysis, visualization, and image processing.

## Frequently Asked Questions

### What are the mandatory dependencies for video-use?

The five required packages are **requests**, **librosa**, **matplotlib**, **pillow**, and **numpy**, all declared in [`pyproject.toml`](https://github.com/browser-use/video-use/blob/main/pyproject.toml) lines 7-13 according to the browser-use/video-use source code. These libraries support HTTP requests, audio processing, data visualization, and image manipulation throughout the package.

### How do I install video-use with animation support?

Run `pip install video-use[animations]` to include the **manim** library. This optional dependency, configured in [`pyproject.toml`](https://github.com/browser-use/video-use/blob/main/pyproject.toml) lines 15-17, enables the mathematical animation features described in [`skills/manim-video/README.md`](https://github.com/browser-use/video-use/blob/main/skills/manim-video/README.md).

### Why is numpy required for video processing?

**numpy** provides the fundamental array data structures required by **pillow** for image manipulation in [`helpers/render.py`](https://github.com/browser-use/video-use/blob/main/helpers/render.py) and supports numerical operations across the video-use codebase. It serves as the computational backbone for frame processing and audio feature extraction.

### Can I use video-use without matplotlib?

While the core package would install, **matplotlib** is essential for the visualization features in [`helpers/timeline_view.py`](https://github.com/browser-use/video-use/blob/main/helpers/timeline_view.py) that render audio waveforms and spectrograms. Removing it would disable timeline generation functionality while leaving other features intact.