Release Notes
New Features
- NFO File Generation: Add NFO file generation for Series and VOD
- TMDB/TVDB Integration: Add TMDB/TVDB ID support and improve Series STRM folder naming
- Alternative Titles API: Add Alternative Titles API for improved localized title matching
- Manual TMDB Search: Add manual TMDB search for series and VOD
- Automatic Metadata Lookup: Add automatic TMDB/TVDB ID lookup for VOD and Series
- Schedules Direct Enhancement: Open up country select for Schedules Direct
- Filament Resources: Add Filament resources for managing live groups and playlists with inline editing, custom playlist integration, and channel movement actions
- Logs Viewer: Re-add logs viewer to admin for app logs 👀
- EPG Cache Management: Clear EPG file cache and EPG sync
- Stream Monitor: Add failover information to stream monitor
- Stop/Remove Stream: Implement stop/remove stream function
- Provider Request Delay: Add provider request delay settings with concurrency limiting and atomic locking
- STRM File Sync Enhancements:
- Add name filtering option for STRM file sync
- Implement intelligent STRM sync with file tracking
- Improve STRM file naming with Trash Guides format support
- Dynamic Credential Switching: Cleanup and finish implementing dynamic credential switching for Custom Playlist Aliases
Fixes
- Auto Sync: Remove null check for auto sync to prevent stuck syncs
- Series Import: Implement
Bus::chain()recursive pattern for series import to batch import instead of using a single process - Custom Playlists: Fix group title output for Custom Playlists
- EPG Generation: EPG generate failing due to missing import
- Merged Playlists: Add available streams to merged playlists
- Series Timestamps: Return correct last modified timestamp for Series
- Alias Credentials: Preserve alias credentials on failover
- STRM Sync: Dispatch single bulk STRM sync job instead of per-series
- XAPI Endpoints:
- Make sure correct https port passed for XAPI
- Don't return
direct_sourcein Xtream API endpoints - Timeshift with Xtream API formatted URLs
- Schedules Direct: Schedules Direct cache failing; rollback file path resolution to known working version
- EPG URL: Update EPG tag within M3U file output
- Redis Connection:
- Allow connecting to embedded Redis for external proxy setup
- Fix race condition when using embedded Redis with external Proxy
- Shift Value: Don't update shift value on sync
- Series Cover: Increase field length for cover on series
- PostgreSQL: Don't restrict workers for external Postgres setups
- Stream File Mapping:
- Stream file mapping not properly updating records on sync
- If mapping created but file/folder no longer exists, recreate it
- Job Scoping: Make sure job is scoped to the user that requested it
- VOD/Series STRM Sync:
- Fix VOD/Series STRM sync: proper ID format and fallback support
- Fix VOD STRM sync: correct field name and group column access
- Don't sync stream files for disabled series when fetching metadata
- XAPI Category Output: Category output order for XAPI
- EPG Validity Check: Update EPG validity check on XAPI playlist sync
- Auto EPG Create: Fix auto EPG create
- Null-Safe Operators: Fix null-safe operator for group/category name access
- Custom Playlist Relations: Custom playlist relation for Playlist Alias
- Provider Updates: Fix provider group and category updates
- Sort Order: Don't cast sort order to prevent type corruption
- Custom Playlist Sorting: Fix sorting for custom playlist groups
- Request Throttling: Apply provider request throttling to all Xtream API jobs
- Fallback Logic: Add fallback to original groups/categories in Custom Playlist Xtream API
Technical Improvements
- Code Formatting: Add
pint.jsonfile and fix code formatting with Laravel Pint - Notification Retention: Reduce days of retained notifications retained
- Documentation: Add Gemini guidelines and update docs url
- API Structure: Move API version out of the base URL
- Dependencies: Bump paragonie/sodium_compat
- Performance Optimizations:
- Cache properties for reuse
- Don't rewrite file if unchanged to reduce disk IO
- EPG generate optimizations
- Add batch processing for large series collections
- Reduce series chunks being processed
- Optimize series stream file syncing
- Optimize EPG generation functionality
- Update
->get()to->cursor()for memory efficiency - Optimize Series/VOD STRM sync to prevent 100% CPU usage
- Use memory efficient traversal for series and channels
- Bulk-load StrmFileMappings to eliminate N+1 queries
- Use chunk() instead of pluck()->toArray() to avoid memory issues
- Implement chunked VOD processing to prevent timeouts
- Cleanup & Refactoring:
- Fix jobs migration running when table already exists
- Remove fillable (not needed with Model::unguard() for Filament resources)
- Fix possible EPG generate and cache race condition
- Fix playlist order and EPG id output defaults
- Re-add try/catch and remove duplicate Series sync complete job
- Cleanup proxy service
- Fix logs not loading
- Fix column alias to avoid collision with existing columns
- Reduce stream file sync verbosity
- Cleanup group sort actions
- Rollback playlist resource changes
- Rollback Playlist Generate changes
- Rollback EPG Generate changes
- Align channel sort and output across all generators and ensure
tvg-idis populated - Add helper method to determine channel sort order
- Add additional EPG playlist relations for EPG file cache clear
- Add fallback
tvg-idlogic to HDHR lineup - Tweak Xtream API return keys and format
- Make sure
tvg-idpopulated at all times - Add DOCTYPE to EPG output for player compatibility
- Move stream sync jobs to their own queue for parallel processing
- Remove icons from sub nav items
- Cleanup PlaylistAlias credentials and layout
- Cleaning up unused services and adding service info block to each service
- Cleanup multi provider credentials input for PlaylistAlias; fix provider sort not respected
- Add sorting/ordering for the Xtream API credentials for PlaylistAlias
- Fix PlaylistAlias with Custom Playlist XAPI output sorting and results
- Cleaning up settings a bit, and fixing
PlaylistAliasconfig resolution inBaseUrlfunctions - Fix incorrect model, update columns to
textand some other updates - Remove EPG check and create to automatically attempt import and sync
- Increase XAPI url length
- Implement stream removal logic for limited connections
- Remove sync complete event for VOD metadata fetch
- Code Quality: Fix return type for collections and various formatting improvements
- Testing: Improve request delay feature with atomic locking and better tests
New Contributors
- @Italianar15 made their first contribution in #588
Full Changelog: 0.8.19...0.8.26