Installation

This guide walks you through setting up sevenrad-stills on your system using modern tooling.

Prerequisites

Before installing sevenrad-stills, ensure you have the following:

System Requirements

  • Python 3.12 or higher
  • Git
  • mise - Tool version manager (manages Python, ffmpeg, and other tools)
  • uv - Fast Python package installer (installed via mise)

Operating Systems

  • macOS (recommended)
  • Linux
  • Windows (via WSL)

Step 1: Install mise

mise is a polyglot tool version manager that handles Python, ffmpeg, and other dependencies.

macOS (Homebrew)

1
brew install mise

Linux

1
curl https://mise.run | sh

Verify Installation

1
mise --version

Step 2: Clone the Repository

1
2
git clone https://github.com/abossenbroek/sevenrad-stills.git
cd sevenrad-stills

Step 3: Install Dependencies with mise

The project includes a .mise.toml file that automatically installs:

  • uv (Python package manager)
  • ffmpeg (video processing)
1
mise install

This command reads .mise.toml and installs all required tools.

Step 4: Create Virtual Environment

Use uv to create and activate a Python virtual environment:

1
2
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

Step 5: Install Python Dependencies

Install sevenrad-stills and development dependencies:

1
uv pip install -e ".[dev]"

This installs:

  • Core dependencies (Pillow, scikit-image, ffmpeg-python, yt-dlp, etc.)
  • Development tools (pytest, ruff, mypy, pre-commit)

Step 6: Install Pre-commit Hooks

Set up pre-commit hooks for code quality checks:

1
pre-commit install

Pre-commit will automatically run on every commit:

  • ruff format - Code formatting
  • ruff check - Linting
  • mypy - Type checking

Verification

Verify your installation:

Check Python Version

1
2
python --version
# Should show Python 3.12.x or higher

Check ffmpeg

1
ffmpeg -version

Check sevenrad CLI

1
sevenrad --version

Run Tests

1
pytest

If all tests pass, your installation is complete!

Quick Test

Extract frames from a YouTube video:

1
2
3
sevenrad extract "https://www.youtube.com/watch?v=dQw4w9WgXcQ" \
  --fps 1 \
  --output-dir ./test_output

Troubleshooting

mise Not Found

Ensure mise is in your PATH. Add to your shell profile:

1
2
3
4
5
# For bash
echo 'eval "$(mise activate bash)"' >> ~/.bashrc

# For zsh
echo 'eval "$(mise activate zsh)"' >> ~/.zshrc

Python Version Mismatch

If python --version shows the wrong version, ensure mise is properly activated:

1
mise doctor

ffmpeg Not Found

Reinstall tools via mise:

1
mise install --force

Import Errors

Ensure virtual environment is activated:

1
source .venv/bin/activate

Pre-commit Failures

Update pre-commit hooks:

1
pre-commit autoupdate

Next Steps

Development Setup

For contributors, additional setup:

1
2
3
4
5
6
7
8
# Install all development dependencies
uv pip install -e ".[dev]"

# Run type checking
mypy src/

# Run tests with coverage
pytest --cov=sevenrad_stills --cov-report=html

Updating

To update to the latest version:

1
2
3
git pull origin main
mise install
uv pip install -e ".[dev]"

Installation complete! You’re ready to start transforming images. Continue to Getting Started for your first pipeline.


Back to top

Algorithmic transformation exploring digital media through the artistic voices of Rimbaud and Dominique de Groen.