Files
2026-04-20 23:16:53 +12:00

3.0 KiB

Emby Thumbnail Generator

A self-hosted web UI that generates landscape thumbnails from your Emby library posters. Uses AI-powered subject extraction (rembg/U2-Net, runs entirely locally) to isolate characters from poster art, then composites them into widescreen thumbnails with customisable layouts.

What it does

  1. Connects to your Emby server via API
  2. Search/browse your movie and TV library
  3. Pulls the poster for a selected item
  4. Extracts the subject (person/character) using rembg (offline, no external API)
  5. Generates a landscape thumbnail with the subject positioned to one side and the title on the other
  6. Optionally pushes the generated thumbnail back to Emby as a custom Thumb image

Templates

  • Subject Left, Text Right — character on the left, title text on the right
  • Subject Right, Text Left — character on the right, title text on the left
  • Subject Center, Text Overlay — character centered with title overlaid

Background Modes

  • Auto Gradient — samples dominant colours from the poster and creates a dark gradient
  • Blurred Poster — darkened, heavily blurred version of the original poster
  • Solid Colour — pick your own background colour

Setup

  1. Edit docker-compose.yml with your Emby details:

    environment:
      - EMBY_URL=http://192.168.1.x:8096
      - EMBY_API_KEY=your-api-key
    
  2. Build and run:

    docker compose up -d --build
    
  3. Open http://localhost:8500

Manual

  1. Install dependencies:

    pip install -r requirements.txt
    
  2. Set environment variables:

    export EMBY_URL=http://192.168.1.x:8096
    export EMBY_API_KEY=your-api-key
    
  3. Run:

    python app.py
    
  4. Open http://localhost:8500

Getting your Emby API Key

  1. Open Emby Dashboard → Advanced → API Keys
  2. Click "New API Key"
  3. Give it a name (e.g. "Thumb Generator")
  4. Copy the key

Optional Artwork Providers

The artwork editor always supports Emby images and Wikimedia Commons. You can enable additional search providers with environment variables:

export TMDB_BEARER_TOKEN=your-tmdb-read-access-token
# or: export TMDB_API_KEY=your-tmdb-v3-api-key

export GOOGLE_CUSTOM_SEARCH_API_KEY=your-google-api-key
export GOOGLE_CUSTOM_SEARCH_ENGINE_ID=your-google-search-engine-id

TMDB is the preferred external artwork source for posters and backdrops. Google Custom Search is optional and only uses Google's official Custom Search JSON API.

Notes

  • First generation will be slower as rembg downloads the U2-Net model (~170MB)
  • The model runs entirely offline after first download — no data leaves your network
  • Generated thumbnails are cached in the cache/ directory
  • Works with both movies and TV series
  • The "Apply to Emby" button sets the generated image as the item's Thumb image type

Tech Stack

  • Backend: Python, FastAPI, Pillow, rembg (U2-Net)
  • Frontend: Vanilla HTML/CSS/JS
  • Deployment: Docker