Skip to content

jguy/plex_generate_vid_previews

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

351 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

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

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 82.3%
  • HTML 11.0%
  • JavaScript 5.7%
  • Other 1.0%