Skip to content
🚧 These docs are a work in progress and may contain inaccuracies. Content is being actively reviewed and validated.

Introduction

Dubby is a self-hosted media server for movies, TV shows, and podcasts. It runs on your own hardware, streams to any device, and puts you in control of your media library.

Point Dubby at your media files, and it handles the rest:

  • Plays everything — A 7-tier playback hierarchy from direct play to full transcode means your media always works. No “format not supported” screens.
  • Streams to any device — Native apps for web, Apple TV, and Android TV. Dubby transcodes on the fly to match each device’s capabilities.
  • HDR & Dolby Vision — HDR10, Dolby Vision, and HLG passthrough with automatic tone-mapping fallback when your display doesn’t support HDR. GPU-accelerated with no paywall.
  • Organizes your library — Automatic artwork, descriptions, cast info, and ratings from TMDB, TVDB, Trakt, and MDBList. Subtitles fetched from OpenSubtitles.
  • GPU transcoding included — Intel Quick Sync, NVIDIA NVENC, and AMD VAAPI hardware acceleration for every user. No subscription required.

GPU transcoding, HDR tone mapping, trickplay thumbnails, skip intro — features that other media servers lock behind a paid tier are included for every Dubby user. A premium tier is planned for advanced features like remote access, but the core local playback experience will always be free.

Most media servers try direct play, and if that fails, fall back to a full transcode. Dubby has a 7-tier playback hierarchy with options in between — remuxing, audio-only transcoding, HLS with copied streams — so it picks the lightest option that works for your device. The result is less CPU usage, faster start times, and fewer unnecessary transcodes.

The Apple TV and Android TV apps are built with native playback engines, D-pad navigation, and full HDR support. They’re designed for the living room from the ground up, not a web UI crammed into a TV frame.

Dubby’s UI is purpose-built and opinionated. No clutter, no ads injected into your library, no sponsored content. Just your media, presented well across every platform.

Dubby uses an embedded SQLite database — no Postgres or MySQL instance to set up, configure, back up, or keep running. One container and a Docker Compose file gets you a fully functional media server.

  • Skip intro — Audio fingerprinting detects intros across episodes automatically.
  • Seek preview thumbnails — Trickplay sprites generated so you can scrub through any file and see where you are.
  • Chapter navigation — Jump between chapters and bookmarks in supported files.
  • Playback speed control — Adjust playback speed on any platform.
  • Audio track switching — Switch between audio tracks mid-playback with codec and channel info.
  • Subtitle track switching — Switch between embedded, sidecar, and downloaded subtitles during playback. Supports SRT, ASS, SSA, WebVTT, and PGS.
  • Customizable subtitle styling — Font, size, color, background opacity, and edge effects.
  • Next episode auto-play — Automatically plays the next episode with a cancellation prompt.
  • Stats overlay — View real-time streaming info including bitrate, codec, and resolution.
  • Ahead-of-time optimization — Pre-transcode your library for instant playback on any device. A smart coverage matrix builds the minimum set of variants needed.
  • Automatic library scanning — File watcher detects new, changed, and removed media automatically. Handles files still being copied with stability checks.
  • Multi-provider metadata — Artwork, descriptions, cast, ratings, and genres from TMDB, TVDB, Trakt, and MDBList.
  • Multi-rating display — Show ratings from IMDB, TMDB, Trakt, and MDBList side by side.
  • Trakt scrobbling — Live scrobbling and watch history sync with your Trakt account.
  • Automatic subtitle downloads — Fetch subtitles from OpenSubtitles with per-library language preferences and bulk download queuing.
  • Custom metadata editing — Override title, sort title, overview, year, genres, and content rating for any item.
  • Image gallery — Browse and select from available posters, backdrops, and logos per media item.
  • Multi-version support — View and select preferred file versions or editions for movies.
  • Unmatched item management — Identify and manually match media that couldn’t be auto-identified.
  • Search — Full-text search across movies, shows, and people with autocomplete suggestions.
  • Advanced filtering — Filter by genre, year, media type, and sort order.
  • Discover & request — Browse trending, upcoming, and popular content from TMDB and request new movies or shows directly from the app.
  • Built-in Seerr integration — Media requests flow through Seerr with quality profile and tag selection. No extra setup.
  • Watchlist — Save items to watch later and track your queue.
  • Continue watching — Resume in-progress items across devices.
  • RSS subscriptions — Subscribe to any podcast via RSS feed.
  • Podcast discovery — Browse and search the Podcast Index catalog.
  • Queue management — Queue episodes and manage your listening order.
  • Episode downloads — Download episodes for offline playback.
  • Podcasting 2.0 — Chapters, transcripts, and enhanced metadata support.
  • Role-based access — Owner, admin, member, and guest roles with granular permissions.
  • Per-library access — Control which libraries each user can see, with content rating restrictions and expiration dates.
  • Parental controls — Restrict content by MPAA (G through NC-17) and US TV (TV-Y through TV-MA) ratings per user.
  • Invite system — Generate invite links with expiration for controlled registration.
  • User preferences — Per-user audio language, subtitle language, UI language, and accent color.
  • Watch progress per user — Separate watch history and continue-watching lists per user.
  • Dashboard — Real-time view of active sessions, system stats (CPU, RAM, uptime), and bandwidth usage.
  • Play analytics — Top users by watch time, weekly play trends, and most-watched media.
  • Job monitoring — View, cancel, retry, and clean up background workflows with parent/child hierarchy.
  • Audit logging — Filterable log of security-relevant events: logins, config changes, data access, and more.
  • Feature flags — Enable or disable features dynamically, including beta features.
  • Backup & restore — Scheduled backups with retention policies. Download, upload to a new server, or restore with one click.
  • Monitoring — Built-in OpenTelemetry metrics with Prometheus exporter for Grafana dashboards and alerting.
  • Setup wizard — Guided initial setup for account creation, privacy settings, library paths, and metadata providers.
  • REST API — Full public API with OpenAPI documentation, bearer token auth, and cursor-based pagination.
  • Real-time events — Server-sent events for live updates on scan progress, job status, and session changes.
  • No ads or tracking. Telemetry is anonymous and opt-out.
  • No cloud account required. Your server authenticates users locally.
  • Privacy presets — Choose from Maximum, Private, Balanced, or Open to control external service access, image proxying, and data masking.
  • TMDB image proxying — Artwork is fetched by the server and served locally so client IP addresses never reach external CDNs.
  • Log redaction — File paths, media titles, user info, and IP addresses can each be independently masked in logs and API responses.
  • See our Security page for details on encryption, rate limiting, and container hardening.

Get running in minutes with Docker Compose, Kubernetes, or Unraid. Dubby runs as a single container with an embedded SQLite database — no external database to manage.

For larger deployments, split into separate API and worker pods with a shared Valkey instance for background jobs.