Skip to main content

Overview

copyparty generates thumbnails for images, videos, and audio files (spectrograms/waveforms). Thumbnails are cached for performance and can be customized per-volume.

Thumbnail Generation

Backend Options

Supported Formats

Images:
  • JPG, PNG, GIF, WebP, BMP, TIFF, ICO
  • RAW formats (with pyvips + rawpy): CR2, NEF, ARW, DNG, etc.
  • HEIF/HEIC (with pyvips on supported systems)
Video:
  • MP4, WebM, MKV, AVI, MOV, FLV, MPG, MPEG, M4V, 3GP, WMV
  • Requires FFmpeg
Audio:
  • Spectrograms or waveforms for all audio formats
  • Requires FFmpeg
Legal restrictions: Docker images and some builds cannot support HEIF/HEIC images or H.265/HEVC video due to patent licensing. See bad-codecs.md.

Configuration

Global Settings

Per-Volume Configuration

Thumbnail Types

Image Thumbnails

Generated using Pillow, pyvips, or FFmpeg (in that priority order). Format priority:
  1. WebP (if supported and --th-webp)
  2. JPEG (default)
  3. PNG (for transparency)

Video Thumbnails

Extracted from video files using FFmpeg.
Performance:
  • First frame extraction is usually fast
  • Large/long videos may take time
  • Thumbnails cached after first generation

Audio Spectrograms

Generated using FFmpeg showing frequency spectrum over time.
Default audio thumbnail - shows frequency content.
Useful for:
  • Identifying songs visually
  • Seeing audio quality/bitrate
  • Detecting silence/clipping

Folder Thumbnails

copyparty automatically selects folder thumbnails based on file naming:

Default Cover Names

  1. folder.png / folder.jpg
  2. cover.png / cover.jpg
  3. .folder.png / .folder.jpg (dotfiles)
  4. First image in folder (with -e2dsa)
  5. Embedded album art from audio files (with -e2dsa -e2ts)

Custom Cover Names

Custom Thumbnails by Extension

Assign specific icons/images to file extensions:
Supported formats: JPG, PNG, GIF, WebP, ICO
SVG limitation: Chrome crashes with 250+ unique SVG files on one page. Reusing the same SVG thousands of times is fine.

Thumbnail Cache

Storage Location

Thumbnails stored in .hist/ subdirectory:
Putting thumbnail cache on an SSD dramatically improves gallery browsing performance.

Cache Management

Pregenerate Thumbnails

Generate thumbnails in advance:
Combine with --th-maxage=9999999 or --th-clean=0 to keep forever.

Grid View

Press g or click to toggle grid view (thumbnail gallery).

Grid Features

  • Multiselect mode (click to select multiple)
  • Zoom with Shift+A/D
  • Click thumbnails to open viewer
  • Right-click for context menu

Enable by Default

Or via URL: ?imgs to enable, ?imgs=0 to disable

Performance Tuning

Thumbnail Resolution

Quality Settings

Backend Selection

Troubleshooting

Broken Thumbnails

Colorful square with filetype:
  • FFmpeg or Pillow not installed
  • Install with: apt install ffmpeg python3-pillow
Blank box or broken image:
  • Reverse proxy stripping ?th=w query parameters
  • CDN/proxy ignoring query strings in cache
  • Privacy browser extensions blocking requests
iPhone/Video thumbnails broken:
  • HEIF/HEIC or H.265/HEVC not supported in your build
  • Legal restrictions in Docker images
  • See bad-codecs.md

Fix Video Thumbnails

Fix RAW Images

Security Considerations

Untrusted uploads: Thumbnail generation processes potentially malicious files. Consider:
  • --no-thumb to disable all thumbnails
  • --no-vthumb to disable video processing only
  • Running in a sandbox (prisonparty)

Example Configurations

Video Library

High Security