Skip to content
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License Docker Pulls codecov

Logo

Plex Generate Previews

GPU-accelerated video preview thumbnail generation for Plex Media Server
Explore the docs »

Quick Start · Report Bug · Request Feature

📑 Table of Contents
  1. About
  2. Features
  3. Screenshots
  4. Quick Start
  5. Installation
  6. GPU Support
  7. Documentation
  8. Built With
  9. Contributing
  10. License
  11. Acknowledgments

🎯 About

Generates video preview thumbnails (BIF files) for Plex Media Server. These are the small images you see when scrubbing through videos in Plex.

The Problem: Plex's built-in preview generation is painfully slow.

The Solution: This tool uses GPU acceleration and parallel processing to generate previews 5-10x faster.

(back to top)


✨ Features

Feature Description
🚀 Multi-GPU NVIDIA, AMD, Intel, and Windows GPUs
Parallel Processing Configurable GPU and CPU worker threads
🔁 GPU→CPU Fallback Optional fallback-only CPU workers for GPU decode failures
🎮 Hardware Acceleration CUDA, VAAPI, D3D11VA, VideoToolbox
📚 Library Filtering Process specific Plex libraries
🎨 Quality Control Adjustable thumbnail quality (1-10)
🐳 Docker Ready Pre-built images with GPU support
🌐 Web Dashboard Manage jobs, schedules, and status
⏱️ Scheduling Cron and interval-based automation
📡 Radarr/Sonarr Webhook integration for auto-processing on import

(back to top)


📸 Screenshots

Home Settings Webhooks
Home Settings Webhooks

Web UI: dashboard and job management, configuration and GPU detection, Radarr/Sonarr webhook setup.

(back to top)


⚡ Quick Start

Docker (Recommended)

docker run -d \
  --name plex-generate-previews \
  --restart unless-stopped \
  -p 8080:8080 \
  --device /dev/dri:/dev/dri \
  -e PUID=1000 \
  -e PGID=1000 \
  -v /path/to/media:/media:ro \
  -v /path/to/plex/config:/plex:rw \
  -v /path/to/app/config:/config:rw \
  stevezzau/plex_generate_vid_previews:latest

Then open http://YOUR_IP:8080, retrieve the authentication token from container logs, and complete the setup wizard.

For Docker Compose, Unraid, and GPU-specific setup:

(back to top)


📦 Installation

Method Best For Guide
Docker Most users, easy GPU setup Getting Started
Docker Compose Managed deployments docker-compose.example.yml
Unraid Unraid servers Getting Started — Unraid
  • CLI: The command-line interface still works when run inside the container or from source; we recommend using the Docker image and Web UI for normal use.
  • PyPI: The package is no longer published on PyPI; use Docker or install from source.

Important

Note the extra "z" in Docker Hub: stevezzau/plex_generate_vid_previews (stevezau was taken)

(back to top)


🎮 GPU Support

GPU Type Platform Acceleration Docker
NVIDIA Linux CUDA/NVENC --gpus all
AMD Linux VAAPI --device /dev/dri
Intel Linux QuickSync/VAAPI --device /dev/dri
All Windows D3D11VA Native only
Apple Silicon macOS VideoToolbox Native only

For complete GPU setup, tuning, and troubleshooting:

Check detected GPUs: Open the web UI (http://YOUR_IP:8080) and go to Settings or Setup — detected GPUs are shown there.

GPU + CPU Fallback Mode

If you want GPU-only main processing but still want CPU recovery for unsupported files:

  • Set CPU Workers to 0
  • Set CPU Fallback Workers to 1 (or higher)

This keeps normal jobs on GPU workers and only uses CPU when a GPU worker reports an unsupported codec/runtime decode failure.

Note

CPU Fallback Workers is only used when CPU Workers=0. If CPU Workers>0, regular CPU workers already handle fallback work.

(back to top)


📚 Documentation

Document Description
📖 Documentation Hub Start here — architecture diagrams
⚡ Getting Started Docker, GPU, Unraid, devcontainer
⚙️ Reference Configuration options & REST API
📘 Guides Web interface, webhooks, FAQ, troubleshooting

(back to top)


🛠️ Built With

Python Docker FFmpeg Flask Gunicorn

(back to top)


🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

(back to top)


📄 License

Distributed under the MIT License. See LICENSE for details.

(back to top)


🙏 Acknowledgments

  • Plex for the amazing media server
  • FFmpeg for video processing
  • LinuxServer.io for the Docker base image
  • Rich for beautiful terminal output
  • All contributors and users

(back to top)


Made with ❤️ by stevezau

⭐ Star this repo if you find it useful!

About

GPU-accelerated video preview thumbnail (BIF) generation for Plex Media Server. Docker-ready with NVIDIA/AMD/Intel support, web UI, scheduling, and Radarr/Sonarr webhooks.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages