Add web UI for configuration and management

- Flask-based web interface on port 8080
- Dashboard with channel statistics and sync status
- Channel management (add/remove channels via UI)
- Settings page for all configuration options
- Cookie file upload interface
- Real-time log viewer
- Manual sync trigger from web UI
- Updated Dockerfile to include Flask and web assets
- Updated Unraid template with WebUI port
- Updated README with web UI documentation
This commit is contained in:
2026-05-08 19:00:36 -04:00
parent 0ffb54e12e
commit b3f378a8ef
13 changed files with 1290 additions and 24 deletions

View File

@@ -1,9 +1,10 @@
# YouTube Channel Sync Docker
Automatically download and organize YouTube channel videos for Emby, Plex, or Jellyfin media servers.
Automatically download and organize YouTube channel videos for Emby, Plex, or Jellyfin media servers with a built-in web UI for easy configuration.
## Features
- **Web-based configuration interface** - No more editing text files!
- Downloads videos in best quality up to 1080p (configurable)
- Organizes videos by season folders (year-based)
- Proper episode naming for media servers: `S2026E001 - Video Title - [VideoID].mp4`
@@ -12,17 +13,19 @@ Automatically download and organize YouTube channel videos for Emby, Plex, or Je
- Tracks downloaded videos to avoid re-downloading
- Supports YouTube cookies for authentication (bypasses bot detection)
- Scheduled automatic syncs via cron
- Lightweight Alpine Linux base (~200MB)
- Real-time sync status and logs
- Lightweight Alpine Linux base (~250MB)
## Quick Start (Unraid)
1. Install from Community Applications: Search for "YouTube Sync"
2. Configure paths:
- Web UI Port: `8080` (or choose another port)
- Download Directory: `/mnt/user/media/YouTube` (or your media location)
- Config Directory: `/mnt/user/appdata/youtube-sync`
3. Edit `/mnt/user/appdata/youtube-sync/channels.txt` and add your channels
4. (Optional) Add YouTube cookies to `/mnt/user/appdata/youtube-sync/cookies.txt`
5. Start the container
3. Start the container
4. Open the web UI at `http://YOUR-SERVER-IP:8080`
5. Add channels, configure settings, and upload cookies (optional) through the web interface
## Configuration
@@ -54,6 +57,20 @@ YouTube may block downloads without authentication. To fix this:
yt-dlp --cookies-from-browser firefox --cookies cookies.txt --skip-download "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
```
## Web UI
The container includes a built-in web interface for easy management:
- **Dashboard**: View sync status, channel statistics, and recent activity
- **Channels**: Add, remove, and manage YouTube channels
- **Settings**: Configure sync schedule, video quality, and other options
- **Cookies**: Upload YouTube cookies for authentication
- **Logs**: Real-time view of sync progress and errors
Access the web UI at: `http://YOUR-SERVER-IP:8080`
All configuration can be done through the web interface - no need to manually edit config files!
## Environment Variables
| Variable | Default | Description |
@@ -73,6 +90,8 @@ services:
youtube-sync:
image: azcomputerguru/youtube-sync:latest
container_name: youtube-sync
ports:
- "8080:8080"
environment:
- SYNC_SCHEDULE=0 2 * * *
- MAX_QUALITY=1080
@@ -91,6 +110,7 @@ services:
```bash
docker run -d \
--name youtube-sync \
-p 8080:8080 \
-e SYNC_SCHEDULE="0 2 * * *" \
-e MAX_QUALITY=1080 \
-e TZ=America/Phoenix \