xThemeSong v1.2.0 - Major Feature Update ๐ต
A Jellyfin plugin to download theme songs from YouTube or upload custom MP3 files for your movies and TV shows.
โจ What's New in v1.2.0
๐ Fixed: Scheduled Task Error
- Issue: Task failed with "Cannot deserialize unknown type" error
- Fix: Modified query to use
BaseItemKindenum filtering (Movie, Series only) - Result: Scheduled task now runs successfully without crashes
๐ค Export/Import Theme Mappings (NEW!)
- Export to JSON: Backup all theme assignments with full metadata
- Export to CSV: Open in Excel/Sheets for bulk editing
- Import from JSON: Restore themes on another server
- Conflict Resolution: Handles ID changes, path mismatches, duplicates
- Use Cases: Server migrations, backups, bulk theme management
๐ Role-Based Access Control (NEW!)
- Permission Modes:
- Administrators Only: Restrict theme management to admins
- Administrators & Library Managers (Default): Include library managers
- Everyone: Allow all authenticated users
- Security: API returns 403 Forbidden for unauthorized access
- UI: Easy dropdown configuration in Settings tab
๐ค Per-User Theme Preferences (NEW!)
- Enable/Disable: Users can turn off theme songs for their account
- Duration Limit: Set max playback duration (0-300 seconds, 0 = full)
- Volume Control: Adjust theme song volume (0-100%)
- Server-Side Storage: Preferences sync across devices
- Access: Dashboard โ Plugins โ "xThemeSong User Preferences"
๐งน Code Quality Improvements
- Reduced compiler warnings from 5 to 1 (80% reduction)
- Added
#nullable enablefor better null safety - Code cleanup and optimization
๐ Complete Changelog (v1.2.0)
New Features
- โ Export/Import theme song mappings (JSON/CSV)
- โ Role-based access control with 3 permission modes
- โ Per-user theme preferences (enable/disable, volume, duration)
- โ User preferences page accessible to all users
Bug Fixes
- โ Fixed scheduled task deserialization error
- โ Fixed nullable reference type warnings
Technical Improvements
- โ
Added
BaseItemKindenum filtering in queries - โ Proper namespace handling for System.IO.File
- โ Improved error handling and logging
- โ Code quality: 5 warnings โ 1 warning
๐ New API Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /xThemeSong/export/json
| Export all themes to JSON |
| GET | /xThemeSong/export/csv
| Export all themes to CSV |
| POST | /xThemeSong/export/import
| Import themes from JSON |
| GET | /xThemeSong/preferences
| Get user's theme preferences |
| POST | /xThemeSong/preferences
| Save user's theme preferences |
๐ฆ Installation
From Repository (Recommended)
- Add repository URL to Jellyfin:
https://raw.githubusercontent.com/kirtan3d/Jellyfin.Plugin.AssignThemeSong/main/manifest.json - Go to Dashboard โ Plugins โ Catalog
- Search for "xThemeSong" and update to v1.2.0
- Restart Jellyfin
Prerequisites
- Jellyfin 10.11.0+ (requires .NET 9)
- File Transformation Plugin - Required for Web UI features
๐ฏ Key Features (All Versions)
- ๐ต Download theme songs from YouTube (video ID or URL)
- ๐ค Upload custom MP3 files as theme songs
- ๐ฌ Supports movies and TV shows
- ๐๏ธ Delete existing theme songs
- โ๏ธ Custom FFmpeg path configuration
- ๐ Media Library overview with theme song status
- ๐ Bulk YouTube URL assignment
- ๐ฅ Export/Import for backup and migration
- ๐ Role-based permission control
- ๐ค Per-user preference settings
- ๐ง Audio player for existing themes
- โฐ Scheduled task for batch processing
๐ Links
- GitHub: https://github.com/kirtan3d/Jellyfin.Plugin.AssignThemeSong
- Issues: https://github.com/kirtan3d/Jellyfin.Plugin.AssignThemeSong/issues
- Full Documentation: README.md
๐ Feedback
Please report any bugs or issues on GitHub. Happy theming! ๐ฌ๐ต