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.
- 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
- Family-Friendly Option: Create a curated, safe YouTube experience for kids
- Works Standalone: Full functionality without requiring any media server
- Plex-Ready: Seamlessly integrates with Plex if desired, but never requires it
- π₯ Smart Downloads: Pre-validate YouTube URLs with metadata preview before downloading (powered by yt-dlp)
- π― Custom Quality Settings: Per-download resolution control with support from 360p to 4K
- πΊ Channel Subscriptions: Subscribe to channels and auto-download new videos
- π« SponsorBlock Integration: Automatically remove or mark sponsored segments, intros, outros, and more using the crowdsourced SponsorBlock database
- ποΈ Smart Organization: Videos organized by channel with metadata and thumbnails
- π Multi-Server Support: Compatible with Plex, Kodi, Jellyfin, and Emby through NFO metadata files and embedded MP4 metadata
- πΌοΈ Channel Artwork: Automatic channel poster generation for media server folder displays
- β° Scheduled Downloads: Configure automatic downloads on your schedule (cron-based)
- π± Web Interface: Manage everything through a responsive web UI
- π Browse Channels: View and search all videos from subscribed channels with advanced filtering
- π Download History: Track what you've downloaded with smart duplicate prevention
- β»οΈ Re-download Missing: Easily identify and re-download videos that were removed from disk
- π Secure Access: Local authentication system with admin controls
- βοΈ Platform Flexible: Configurable storage paths for Kubernetes/Elfhosted deployments
- π Auto Library Refresh: Automatically update Plex after downloads
- π Plex-Ready Format: Videos organized and named for perfect Plex compatibility
- π¬ Enhanced Metadata: Embedded metadata including title, genre, studio, and keywords for rich Plex display
- π NFO Files: Automatically generates .nfo metadata files for each video
- π¨ Channel Posters: Creates poster.jpg files in channel folders for visual browsing
- π·οΈ Rich Metadata: Includes title, plot, upload date, channel info, genres, tags, and runtime
- π§ Easy Setup: Add as "Movies" library with NFO metadata reader enabled
- Docker & Docker Compose
- Git
- Bash shell (Git Bash for Windows)
- Plex Media Server (optional - only if you want automatic library refresh)
-
Clone the repository:
git clone https://github.com/dialmaster/Youtarr.git cd Youtarr
-
Run setup:
./setup.sh # Select your YouTube download directory
-
Start Youtarr:
./start.sh
-
Access the web interface:
- Navigate to
http://localhost:3087
- Create your admin account on first access
- If you want automatic Plex integration with library refresh, then configure your Plex connection
- The app works fine without Plex integration and will still download videos from YouTube automatically and allow you to add and browse YouTube channels
- If containers donβt start or the app isnβt reachable, see Troubleshooting
- Navigate to
- Navigate to Downloads page
- Paste YouTube URLs to validate and preview video metadata
- Optionally customize resolution settings for this download
- Click "Start Download" to begin
- Go to Channels page
- Add channel by URL or @handle (e.g.,
@MrBeast
orhttps://youtube.com/@MrBeast
) - Choose to download all videos or let automation handle new ones
- Visit Configuration page
- Set download schedule (e.g., every 6 hours)
- Choose video resolution and download limits
- (Optional) Connect Plex for auto-refresh
- Go to Configuration page β SponsorBlock Integration section
- Enable SponsorBlock to automatically handle sponsored content
- Choose action: Remove segments entirely or mark them as chapters
- Select which types of segments to handle (sponsors, intros, outros, etc.)
- All new downloads will automatically process selected segments
- Go to Downloaded Videos or Channel Videos page
- Look for videos marked with cloud-off icon (missing from disk)
- Select videos to re-download with your preferred resolution
- Videos will be queued for download while preserving metadata
- Setup Guide - Detailed installation and configuration instructions
- Media Server Guide - Configuration for Plex, Kodi, Jellyfin, and Emby
- Troubleshooting - Solutions to common issues
- Docker Guide - Docker configuration and management
- Development - Contributing and development setup
- Storage: Videos download to the directory you select during setup
- Storage Growth: Downloads can consume significant disk space over time. The UI includes a storage status chip that shows total and free space for your selected directory/drive, making it easy to monitor and adjust limits/schedule as needed.
- Format: Downloads as MP4 with comprehensive embedded metadata (title, genre, studio, keywords) and NFO files for maximum media server compatibility
- File Management: Videos must retain their
[youtubeid].mp4
filename and remain in their download location. Moving or renaming files will cause Youtarr to mark them as "missing" - Filtering: Automatically skips YouTube Shorts and subscriber-only content
- Authentication: Uses local authentication (create admin account on first access)
- Library Type: Must be configured as "Other Videos" with "Personal Media" agent
- API Key: Get it automatically via Configuration page or manually
- Network Access: Youtarr and Plex can run on the same or separate machines as long as:
- Youtarr can write to the media location (local or network storage)
- Plex can read from the same media location
- Youtarr can reach the Plex API over the network
- Network Storage: Supports NAS, network shares, and mounted volumes
- Docker Desktop (Windows/macOS): Use
host.docker.internal
as your Plex server address - Docker on macOS without Docker Desktop (e.g., Colima): Use the Mac's LAN IP (e.g.,
192.168.x.x
) orhost.lima.internal
- Docker on Linux: Use the host's LAN IP (e.g.,
192.168.x.x
).host.docker.internal
normally resolves to the Docker bridge and Plex may not be listening there. - Custom Plex port: Plex defaults to port
32400
, but you can change the Plex Port field (or include the port inPLEX_URL
) if your server listens elsewhere. - Library path translation: When you pick a Plex library, confirm the suggested download path matches how Youtarr sees your storage (e.g., convert
C:\Media
to/mnt/c/Media
on WSL).
Youtarr now fully supports platform-managed deployments with automatic configuration:
- Auto-Configuration: When
DATA_PATH
is set, config.json is auto-created on first run - Platform Authentication: Set
AUTH_ENABLED=false
to bypass internal auth (when platform handles it) - Pre-configured Plex: Set
PLEX_URL
for automatic Plex server configuration - Consolidated Storage: All persistent data stored under single
/app/config
mount - Example:
DATA_PATH=/storage/rclone/storagebox/youtube
- Details: See Docker Guide for full configuration
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.
Licensed under the ISC License. See LICENSE.md for details.






