github sparkison/m3u-editor 0.8.26

latest releases: 0.8.28, 0.8.27
one day ago

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_source in 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.json file 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-id is populated
    • Add helper method to determine channel sort order
    • Add additional EPG playlist relations for EPG file cache clear
    • Add fallback tvg-id logic to HDHR lineup
    • Tweak Xtream API return keys and format
    • Make sure tvg-id populated 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 PlaylistAlias config resolution in BaseUrl functions
    • Fix incorrect model, update columns to text and 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

Full Changelog: 0.8.19...0.8.26

Don't miss a new m3u-editor release

NewReleases is sending notifications on new releases.