Youtarr

Youtarr

Docker app from grtgbln's Repository

Overview

Youtarr is a self-hosted YouTube downloader that automatically downloads videos from your favorite channels or specific URLs. With optional Plex integration, it can refresh your media library for a seamless, ad-free viewing experience. By default the container runs as root. To run as a non-root user (e.g. nobody:users so Plex/Jellyfin can manage the downloaded files), see the Unraid-specific instructions at https://github.com/DialmasterOrg/Youtarr/blob/main/docs/platforms/Unraid.md

Youtarr

Backend Coverage Frontend Coverage CI Status

Youtarr is a self-hosted YouTube downloader that automatically downloads videos from your favorite channels and playlists. It provides metadata for multiple media servers, mirrors your subscribed YouTube playlists into Plex, Jellyfin, and Emby as native playlists, and offers optional Plex integration for automatic library refreshes.

Don't want to self-host? You can also run Youtarr on ElfHosted with a managed deployment – see their Youtarr docs.

Like Youtarr? Consider supporting the project on Patreon to help keep it free and actively developed!

https://github.com/user-attachments/assets/a80548fc-bcf9-4ad0-889c-dbd5aac250ee

Why Youtarr?

  • No Ads or Tracking: Watch YouTube content without interruptions
  • Offline Viewing: Access your videos anytime, even without internet
  • Archive Content: Preserve videos before they're deleted or made private
  • Works Standalone: Full functionality without requiring any media server
  • Family-Friendly: Create curated, safe YouTube experiences with multi-library support
  • Media Server Ready: Downloads videos with proper organization and metadata for Plex, Kodi, Jellyfin, and Emby.

Key Features

  • Smart Downloads: Pre-validate manually pasted URLs with metadata preview before downloading
  • Channel Subscriptions: Subscribe to channels and auto-download new videos, shorts, and streams with per-tab controls
  • Playlist Subscriptions: Subscribe to YouTube playlists and auto-download their videos into the right channel folders; Youtarr mirrors each playlist into Plex, Jellyfin, and Emby as a native playlist and writes a universal .m3u file for any other player
  • Browse Channels: View and search all videos from subscribed channels with advanced filtering, tabbed views for Videos/Shorts/Streams, and contextual publish date accuracy tips
  • Find on YouTube: Search YouTube from inside Youtarr, see which results are already downloaded or missing, and click any result to queue a download
  • In-App Playback: Click any thumbnail to open a detail modal with extended metadata and in-browser streaming of downloaded videos; no media server required
  • Channel Grouping & Multi-Library Support: Organize channels into custom subfolders (e.g., __kids, __music, __news) to create separate media server libraries
  • Smart Organization: Videos organized by channel with metadata and thumbnails
  • SponsorBlock Integration: Remove sponsored segments automatically
  • Quality Control: Global and per-channel resolution settings (360p to 4K)
  • Download History: Track what you've downloaded with smart duplicate prevention
  • Metadata Generation: NFO files, poster images and embedded MP4 metadata for all media servers
  • Scheduled Downloads: Configure automatic downloads on your schedule (cron-based)
  • Auto-Cleanup: Age and space-based removal of videos with dry-run previews
  • Filesystem Rescan: Move, rename, or convert downloaded files outside Youtarr (e.g., .mp4 to .mkv) and trigger a rescan from Settings -> Maintenance to reconcile the database; daily and startup scans pick up changes automatically
  • Discord Notifications: Optional webhook alerts for new downloads
  • Web Interface: Manage everything through a responsive (PC or mobile) web UI
  • Secure Access: Built-in authentication with admin controls
  • REST API: Full API with interactive Swagger/OpenAPI documentation for automation and integrations
  • Platform Flexible: Configurable storage paths and guides for deployment to multiple platforms and architectures
  • Unraid Ready: Community Applications template (via DialmasterOrg repo) with headless-friendly credential presets
  • Powered by yt-dlp: Uses yt-dlp under the hood for YouTube integration and downloads
  • Content Ratings: Add per-video and per-channel content ratings (normalized to common media-server values like G, PG, PG-13, R, NC-17, TV-*). Ratings can be set per-download, via channel defaults, or derived from yt-dlp metadata; they show up as badges and can be used for automated policies.

How Youtarr compares

Youtarr predates Pinchflat (first commits May 2023 vs. January 2024); the two arrived at similar solutions independently and have evolved in parallel since. For a side-by-side of where Youtarr, Pinchflat, and Tube Archivist differ on Plex integration, in-app playback, content ratings, REST API, filename templating, and transcript search, see the comparison doc.

Quick Start

You'll need Docker, Docker Compose, Git, and a Bash shell (Git Bash on Windows). See the Installation Guide for prerequisites, install methods, initial setup, and updating.

Heads up: Youtarr runs exclusively via Docker; direct npm start/Node deployments are unsupported.

Want to try unreleased features? See Using Development Builds for the bleeding-edge dev-latest image.

Database note for Docker Desktop/ARM/NAS users: Fresh installs started with ./start.sh use Docker named-volume storage for MariaDB. Existing bind-mounted installs and plain docker compose up -d installs may use ./database; on virtualized filesystems this can be risky for MariaDB schema migrations. If you see Table ... doesn't exist in engine or Incorrect information in file errors, or if you want to proactively migrate, see Database Management.

Documentation

Setup & Configuration

Media Server Setup

Platform Guides

Advanced Topics

Help & Support

Contributing

Interested in contributing to Youtarr? We welcome contributions of all kinds!

Screenshots

Click to view screenshots

Channel Management (using "Dark Modern" theme)

image

Video Browser (using "Playful (Classic)" theme)

image

Configuration (using "Bold Flat" theme)

image

Download Manager (Dark Modern)

image

Individual Video Modal (Playful Classic)

image

Search for videos on YouTube from in-app (Bold Flat)

image

Responsive for mobile (Bold Flat)

image

Legal Disclaimer

Youtarr is not affiliated with YouTube or Plex. Users are responsible for ensuring their use complies with YouTube's Terms of Service and applicable copyright laws. This tool is intended for personal use with content you have the right to download.

License

Licensed under the ISC License. See LICENSE.md for details.

Install Youtarr on Unraid in a few clicks.

Find Youtarr in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Youtarr Review the template variables and paths Click Install

Requirements


        Requires a separate MariaDB database instance.
    

Download Statistics

195,582
Total Downloads
41,841
This Month
27,110
Avg / Month

Total Downloads Over Time

Loading chart...

Details

Repository
dialmaster/youtarr:latest
Last Updated2026-06-27
First Seen2025-11-08

Runtime arguments

Web UI
http://[IP]:[PORT:3011]/
Network
bridge
Privileged
false

Template configuration

Web UI PortPorttcp

Container Port: 3011

Target
3011
Default
3011
Value
3011
YouTube Output DirectoryPath

Path to store downloaded YouTube videos

Target
/usr/src/app/data
YouTube Output Directory HostVariable

Host path to your downloaded YouTube videos. Should match the host side of 'YouTube Output Directory' above. Used only to display the path inside the Youtarr web UI.

Target
YOUTUBE_OUTPUT_DIR
Database - HostVariable

Hostname or IP of your MariaDB server. On Unraid, use your server's LAN IP (e.g. 192.168.1.100). Do NOT use 'localhost' or '127.0.0.1' - those resolve to this container, not your Unraid host.

Target
DB_HOST
Database - PortVariable

Port of your MariaDB server. Standard MariaDB is 3306.

Target
DB_PORT
Default
3306
Value
3306
Database - NameVariable

Name of the database Youtarr should use. Must already exist on your MariaDB server.

Target
DB_NAME
Default
youtarr
Value
youtarr
Database - UserVariable

MariaDB username with read/write access to the database above.

Target
DB_USER
Database - PasswordVariable

Password for the MariaDB user above.

Target
DB_PASSWORD
Auth - EnabledVariable

Enable the built-in login for Youtarr's web UI. Leave 'true' unless Youtarr is only reachable over LAN/VPN or is behind an authenticating reverse proxy - setting 'false' exposes the full UI with no password.

Target
AUTH_ENABLED
Default
true|false
Auth - UsernameVariable

Strongly recommended on Unraid: set this and Auth - Password together to seed initial login credentials. Without them, Youtarr's first-run setup wizard only accepts connections from 'localhost' on the Unraid host, which is awkward for headless installs. Must be 3-32 characters; if either this or Auth - Password fails validation, both are ignored.

Target
AUTH_PRESET_USERNAME
Auth - PasswordVariable

Initial admin password (8-64 characters). Must be set together with Auth - Username or both are ignored. You can change this later from within the Youtarr UI.

Target
AUTH_PRESET_PASSWORD
Config StoragePath

Path to store configuration files

Target
/app/config
Default
/mnt/user/appdata/youtarr/config
Value
/mnt/user/appdata/youtarr/config
Image StoragePath

Path to store images

Target
/app/server/images
Default
/mnt/user/appdata/youtarr/images
Value
/mnt/user/appdata/youtarr/images
Job StoragePath

Path to store job files

Target
/app/jobs
Default
/mnt/user/appdata/youtarr/jobs
Value
/mnt/user/appdata/youtarr/jobs
Log LevelVariable

Logging verbosity. Options: info (default), warn, debug.

Target
LOG_LEVEL
Default
info|warn|debug
In Docker Container FlagVariable

Not recommended to change.

Target
IN_DOCKER_CONTAINER
Default
1
Value
1