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

@@ -10,9 +10,10 @@
<Support>https://github.com/azcomputerguru/youtube-sync-docker</Support>
<Project>https://github.com/azcomputerguru/youtube-sync-docker</Project>
<Overview>
Automatically download and organize YouTube channel videos for Emby/Plex/Jellyfin.
Automatically download and organize YouTube channel videos for Emby/Plex/Jellyfin with a built-in web UI.
Features:
- Web-based configuration interface
- Downloads videos in best quality up to 1080p (configurable)
- Organizes by season folders (by year)
- Creates proper episode naming for media servers
@@ -21,14 +22,12 @@
- Tracks downloaded videos to avoid duplicates
- Supports YouTube cookies for authentication
- Scheduled automatic syncs via cron
- Real-time sync status and logs
Configuration:
1. Edit /mnt/user/appdata/youtube-sync/channels.txt
2. Add your channels in format: CHANNEL_ID|Channel Name
3. (Optional) Add YouTube cookies to /mnt/user/appdata/youtube-sync/cookies.txt
Access the web UI at http://YOUR-SERVER-IP:8080
</Overview>
<Category>MediaApp:Video MediaServer:Video</Category>
<WebUI/>
<WebUI>http://[IP]:[PORT:8080]/</WebUI>
<TemplateURL>https://raw.githubusercontent.com/azcomputerguru/youtube-sync-docker/main/youtube-sync.xml</TemplateURL>
<Icon>https://raw.githubusercontent.com/azcomputerguru/youtube-sync-docker/main/icon.png</Icon>
<ExtraParams/>
@@ -38,6 +37,7 @@
<DonateText/>
<DonateLink/>
<Requires/>
<Config Name="Web UI Port" Target="8080" Default="8080" Mode="tcp" Description="Port for web configuration interface" Type="Port" Display="always" Required="true" Mask="false">8080</Config>
<Config Name="Download Directory" Target="/downloads" Default="/mnt/user/media/YouTube" Mode="rw" Description="Where downloaded videos will be stored" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/media/YouTube</Config>
<Config Name="Config Directory" Target="/config" Default="/mnt/user/appdata/youtube-sync" Mode="rw" Description="Configuration files (channels.txt, cookies.txt)" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/appdata/youtube-sync</Config>
<Config Name="Sync Schedule" Target="SYNC_SCHEDULE" Default="0 2 * * *" Mode="" Description="Cron schedule for automatic syncs (default: 2 AM daily). Use 'manual' to disable scheduling." Type="Variable" Display="always" Required="false" Mask="false">0 2 * * *</Config>