Skip to content

Release Logs

What's Changed

Features

  • feat(sports): Add on-demand channel matching for the M3U TV app (7329a8eef)
  • feat: Add support for TheSportsDB (795e5bdd6)
  • feat: Add AED profile using ESPN API for automated EPG generation (8f9a5b7c8)
  • feat: Add ESPN API support (0aa4639d3)

Bug Fixes

  • fix(vod): store the provider added date in the app timezone (045a14258)
  • fix(series): store provider last_modified in the app timezone (135962844)
  • fix(copilot): keep conversation switches from mixing streams or losing approvals (#1797, #1798) (aa5db8ff1)
  • fix(series): stop overlapping metadata fetches deleting live episodes (#1819) (dc67a397d)
  • fix(series): select metadata batches by id cursor, not offset (#1814) (53a9210fc)
  • fix(probe): detect quality from width as well as height (#1807) (b120b10ff)
  • fix(aiostreams): report manifest transport failures as connection failures (#1809) (de7327d40)
  • fix(auth): reject expired Playlist Auths on M3U and HDHR output (#1817) (96987cce9)
  • fix(playlists): repoint merged groups and categories when duplicating (#1816) (a682eed62)
  • fix(easy-editor): scope the channels heading to the selected playlist and type (#1815) (8eac4e0fb)
  • fix(merge): keep the valid channel name 0 in fallback matching (#1813) (4bf309389)
  • fix: Rate limiting applying universally instead of per route (7cb39bf8c)
  • fix(dvr): count each library file once, as measured on disk, in the disk quota (#1812) (b540a92a9)
  • fix(dvr): give every recording its own output file (#1811) (12f622a15)
  • fix(espn-api): Cache warming and response timeout fixes (ec1b42caf)
  • fix(series): refresh expired provider covers on sync (#1810) (c1cee7229)

Maintenance

  • chore: Optimize Sports API fetching (0b5584a46)
  • chore: Show override and provider group names in processing pick lists (b0faf5439)
  • chore: Cleanup and optimize match cards and details on Sports page (e559dfa4b)
  • chore: Add sports view to parity M3U TV app sports screen (1f99d809c)
  • chore: Add sports fixtures XAPI endpoint (e4d18d859)
  • chore: Remove failing/flaky test (ce8a9c864)
  • chore(dev-deps): Update deps to resolve CVE's (6d1439689)
  • chore: Ensure busy game days don't drop games due to limits (a4f953e07)
  • chore: Add missing league logo to API endpoint (5582e17d9)
  • chore: Update ESPN AED profiles sync logic and add sync quick-action (f900272bb)

New Contributors

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.14.0...v0.14.1

What's Changed

Features

  • feat(schedules-direct): Add md5 caching for incremental syncing (dfa72e3f2)

Bug Fixes

  • fix: Ensure queue reset doesn't re-queue currently running jobs (313f463f8)
  • fix: Keep post-process stderr on success and align Sync time condition (e0a8c4a15)
  • fix: AIOStreams catalog selection keys, missing placeholder images, plugin focus run (f594c98e1)
  • fix: Refresh replacement guide after provider migration and correct confirmation (36f738082)
  • fix: Respect AIOStreams/SchedulesDirect switches and DST-safe SD token expiry (e4fbe4f77)
  • fix: Post-process exit status and Sync time output variable (c0278e09b)
  • fix(strm): remove series .strm files once the series is disabled (#1789) (308c948ab)
  • fix(epg): clear cached EPG output when an AED profile is assigned (#1790) (92c10f261)
  • fix(cache): keep arr-tracked rows out of orphan cleanup (#1785) (f9ec40a29)
  • fix(cache): stop Radarr cleanup tracking on Cache Now with failback (#1784) (3760b0ef9)
  • fix(alerts): keep failed Telegram deliveries out of the alerts log channel (#1783) (d519115f4)
  • fix(alerts): stop registering discovered listeners twice (#1774) (8a7970997)

Performance

  • perf: Cut idle memory with optional feature flags and on-demand PHP-FPM (#1800) (d31b93117)

Refactoring

  • refactor(cache): add CachedContentFile::notArrTracked() scope (934fd1403)

Maintenance

  • chore: Fix flaky test (a57720792)
  • chore(dev-deps): Update follow-redirects package (e54b93412)
  • chore(schedules-direct): Adjust md5 cache check logic based on API guidelines (39b49f6e8)
  • chore: require structured issue forms (#1781) (641ac05e4)
  • chore: Update release log generation script (aeaf4179a)
  • chore(dev-deps): Update deps to resolve CVE (8889ebaaf)

New Contributors

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.13.7...v0.14.0

What's Changed

Features

  • feat(aliases): Allow and Block bouquets, plus your own custom groups and categories in aliases and bouquets (#1787)
  • feat(proxy): Opt-in live normalization so players don't freeze when a stream fails over, with CPU, VAAPI or Intel Quick Sync encoding (requires M3U Proxy v0.4.37+) (#1652)
  • feat(database): Opt-in PostgreSQL 18 upgrade for the embedded database, with rollback support (#1786)
  • feat(playlists): Limit Auto-Add to Custom Playlist rules to specific channels or channel name patterns
  • feat(playlists): Category Auto Sort keeps series categories in the provider's order, and Group Auto Sort now follows it on Xtream playlists
  • feat(arrs): Choose which Sonarr or Radarr instance a request goes to from Discover, and set a default integration for automatic caching
  • feat(plugins): Plugin settings fields can be shown conditionally (#1685)
  • feat(sync): Series and categories the provider no longer lists are cleaned up on sync, and sync logs include added and removed categories
  • feat(backups): The backup client now matches your Postgres version (#1701)
  • feat(proxy): Optional isolated rate limits for proxy callbacks (#1652)
  • feat(emby): Clearer managed-library controls for library publishing (#1642)
  • feat(auth): Shared standard playlists can be picked when assigning Playlist Auths (#1765)
  • feat(api): Xtream VOD endpoint returns your custom names and titles, and content requests include more metadata

Bug Fixes

  • fix(security): SSO (OIDC) sign-in no longer links an account already linked to a different SSO identity
  • fix(security): Asset uploads only accept raster images, SVG is rejected
  • fix(security): Provider-supplied EPG text is escaped in guide tooltips
  • fix(sync): Auto-enable follows groups the provider renames mid-sync (#1649)
  • fix(sync): Sync runs finish after feed connection failures (#1769)
  • fix(import): Live streams and movies that share a provider stream ID are kept separate (#1782)
  • fix(sync): Xtream live/VOD numbering matches M3U and XMLTV, and CSV imports go to the right live or VOD list (#1772)
  • fix(playlists): Auto-Add sync no longer removes channels you added by hand
  • fix(backups): A failed scheduled backup is no longer reported as created (#1788)
  • fix(channels): Values of "0" are no longer treated as empty, including a Custom Password of "0"
  • fix(channels): Channel names match across non-ASCII case
  • fix(epg): Find & Replace keeps empty and "0" replacement values (#1778)
  • fix(channels): Parallel channel scrubber batches complete (#1777)
  • fix(epg): EPG mapping, timezone and logo proxy fixes, and timezones for numeric timeshift timestamps
  • fix(tmdb): Manual TMDB search for TV shows, overwrite-metadata keeping a known TMDB ID, and the Missing/Has TMDB filters
  • fix(vod): VOD metadata sync no longer reports success on failure, plus STRM filename and cleanup fixes
  • fix(vod): Unicode movie names from WebDAV and Add Progress duration clamping
  • fix(dvr): Retention, retry and scheduling, any-channel rules and dvr:enrich --all
  • fix(networks): Network pin overlap and schedule regeneration
  • fix(integrations): Dispatcharr, Sonarr and Post Processing fixes, and Dispatcharr profiles for an alias of a Custom Playlist
  • fix(emby): Managed-library path collisions and status (#1762)
  • fix(admin): Scheduled backups, navigation settings, queue and SMTP settings
  • fix(admin): Queue Monitor retries no longer report false success, and impossible cron expressions are rejected
  • fix(docker): Nginx routing and Compose proxy health checks
  • fix(aliases): Bouquet name uniqueness and merged-group checks in the Group API
  • fix(admin): System Health CPU count respects a narrower cpuset (#1780)
  • fix(copilot): Pending tool calls no longer show as successful (#1779)
  • fix(plugins): Update reporting, with a warning when an updated plugin may still be running old code (#1763)
  • fix(devices): TV device sign-in respects the advertised polling interval (#1764)
  • fix(general): Playlist group, sort and copy-attributes tools, Copilot DVR search, guest filmography and the zh_CN translation

Maintenance

  • chore(deps): Dependency updates for security advisories, including Livewire and symfony/mime

Upgrade notes

  • Custom Playlists: groups without a custom tag now get new Xtream category IDs, fixing a clash with tagged groups (#1670). Players may forget per-category settings for those groups, like favourites or hidden categories.
  • Providers that reuse stream IDs: live channels or movies that were missing because they shared an ID with the other type now appear on the next sync, disabled unless auto-enable is on (#1782).

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.13.6...v0.13.7

What's Changed

Bug Fixes

  • fix: Test case for sys health page (90e2f6aa)
  • fix(epg): preserve merged guide when source files are unavailable (#1653) (7ce0d553)
  • fix(schedules-direct): Recover from mid-sync token expiry instead of saving an empty guide (068d14e0)
  • fix: Fail sync when batch fails to prevent clearing programme data (de6c8471)
  • fix(schedules-direct): Use SD's rolling 24h login window and real /image error codes (0b8876b3)
  • fix: Move Xtream channels into the category the provider moved them to, and log added groups (#1636) (#1640) (bc1a096a)
  • fix(schedules-direct): Stop retrying /token on permanent login errors, back off on limits and server errors (#1638) (95b515ad)

Performance

  • perf: Cut idle scheduler CPU, admin polling timers and idle Horizon workers (#1637) (ba68cca9)

Maintenance

  • chore: Add system health page for services overview (1614dcbd)
  • chore: Update container OS and services (4963ee86)
  • chore(dev-deps): Update deps to resolve CVE (86365320)
  • chore: Support one-off and patch version releases in Git workflow (f65207fc)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.13.5...v0.13.6

What's Changed

Features

  • feat: Opt-in proxy setting to retry the same stream before failing over (#1632) (94daa5a8)
  • feat(settings): privacy mode blurs URLs and credentials across the app (#1625) (9a358bab)
  • feat(merged-playlists): one-click merge of provider playlist with unmatched local media (#1615) (64546cae)
  • feat(dvr): start late / finish early padding with sec/min toggle (#1622) (b87e4ce6)

Bug Fixes

  • fix: DVR test case failing with corrected playback URL (ef5f2369)
  • fix(emby): enable default downloaders on new managed libraries and publish movie genres (b574249b)
  • fix: DVR recording URL construction missing port (cc04eaa3)
  • fix: Keep TMDB season trailers through provider refreshes, and stop rechecking series TMDB has no seasons for (90cb5018)
  • fix: Keep TMDB-filled plot/cover through blank provider refreshes, and recheck a reverted genre (2d5c71b7)
  • fix: Stop repeat TMDB lookups on every sync, and scrubber logs for long titles (#1633) (5bfc6f01)
  • fix: Keep the existing EPG guide when the file ends partway through, and drop queued chunk rows on failure (e6a6f339)
  • fix: Keep existing EPG data when a source returns non-XMLTV, plus import and SchedulesDirect integration tests (#1631) (22d8ee77)
  • fix: Catchup for plain M3U providers and Kodi/IPTVnator-compatible M3U catchup output (#1627) (#1630) (cb448ccf)
  • fix: Network playlist channels in merged playlists and Xtream re-imports (#1303) (bc0575e6)
  • fix(epg): apply channel EPG shift to Xtream EPG actions and viewer refresh (#1629) (f8c63ec6)
  • fix: Map EPG to selected now links custom channels (#1628) (a61e450d)
  • fix(dvr): stop misclassifying movie recordings as series episodes (#1626) (97d21d72)
  • fix(media-server): managed Emby library preparation lifecycle (#1603) (70e1e471)
  • fix: Post process header hint works for Jellyfin 12 (7849c846)
  • fix: Jellyfin 12 integration 401s from removed legacy auth (#1619) (da416902)
  • fix: Playlist viewer watch progress relink (b8419d9e)
  • fix: distinguish missing TMDB seasons from lookup errors (#1613) (52c2769e)

Maintenance

  • chore(tests): Cleanup old DVR test cases using wrong base URL (e4f52fab)
  • chore: Cleanup DVR recording default forms section (d399f10a)
  • chore(deps): Update dev deps to resolve CVE (cc122d05)
  • chore: Add missed screenshots from last pass (69e5d856)
  • chore: Update screenshots to reflect recent style updates (1b6979b5)
  • chore: Ensure we're syncing provider added timestamp for VOD content (48a0aed9)
  • chore: Add season specific YT trailer (when present) to XAPI endpoint (093a39cf)
  • chore: Ensure mpaa_rating passed in XAPI endpoint (c28f10b2)
  • chore: Preserver SD lineup on provider error (ca156c26)

Other Changes

  • test: Use realistic multi-line XMLTV fixtures so EPG import tests pass on libxml 2.9 (8a7d2bb3)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.13.4...v0.13.5

What's Changed

Features

  • feat(channels): support OTA sub-channel numbers like 5.1 (#1604) (#1606) (db27c7f6)
  • feat(epg-maps): Explain every EPG Map column with a tooltip (7df8130e)

Bug Fixes

  • fix(epg): dedupe repeated XMLTV programmes and stream gzip EPG output (#1609) (b7c4a4f7)
  • fix(epg): preserve programme poster and backdrop roles (#1568) (#1605) (b48c8419)
  • fix(dvr): Validate schedule_dvr windows and padding (24d35e6f)
  • fix(channels): Size Info column to content and escape provider text (3158577d)
  • fix(channels): Restore "EPG is not mapped" filter on Live Channels (3ecaf1be)
  • fix: Auto-enable now matches categories and groups on the provider's name (8aab3ff3)

Documentation

  • docs(xtream): Document direct_source as intentionally empty (4dca8b4e)

Maintenance

  • chore: Ensure channel minor is capped (03f1d6cc)
  • chore: Optimize AED profile logic (5927b3ee)
  • chore: Fix AED profile time format not working with separator (fb73b954)
  • chore: Trigger playlist EPG cache clear on AED update/delete (9da412d5)
  • chore: Migrate to Jakarta sans font (18a0f565)
  • chore: Cleanup watch progress tables (8f40701f)
  • chore: Make cluster navs sticky (01f8be73)
  • chore: Additional theme styling updates (a2f76fae)
  • chore: Update ToggleButtons styles to match new design (aa96ee65)
  • chore: Removing hand-rolled buttons in favor of shared components (237d161d)
  • chore: Tweak theme (4a413102)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.13.3...v0.13.4

What's Changed

Features

  • feat(aliases): tabbed alias edit page, bouquet order + auto-include patterns, stop re-adding removed groups (#1601) (4120c490)
  • feat(cache): fall back to the provider when Radarr/Sonarr can't deliver (#1598) (0379fc32)
  • feat: Add Disabled and Custom Password options for the playlist default login (#1596) (2463d70a)

Bug Fixes

  • fix(cache): Update cache column to be more informative (07cd54b3)
  • fix: Share EPG matcher settings between mapping, review and Copilot The chunk job and the candidate review job each read the six matcher settings by hand instead of using matcherOptionsFromSettings(). The copies disagreed on an empty custom quality indicator list: mapping used the built-in defaults (as the form's helper text says), while the review and Copilot preview stripped nothing. The shared helper now maps an empty list to the defaults and all three use it; mapping results are unchanged. (aa550eea)
  • fix: Stop EPG auto matching channels with different numbers or words (a5196134)

Maintenance

  • chore(dvr): Resume recordings the proxy lost mid-airing (28843885)
  • chore(cache): Make sure global cache state is reflected on Arrs table/forms correctly (e9acc36c)
  • chore(arrs): Cleanup options section (5766d747)
  • chore: Expand sync logs to allow filtering by different types + adds series tracking (0a5b7347)
  • chore(perf): Batch EPG exact lookups and speed up candidate narrowing (1ba47dde)
  • chore(perf): Optimize EPG map sim-search logic (c60d1d89)
  • chore: Add EPG mapper benchmark command (2e63ea1c)

Other Changes

  • test: Fix flaky EPG benchmark baseline comparison test (96f8854c)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.13.2...v0.13.3

What's Changed

Features

  • feat: Add stat widgets to cached content table (20da83a2)
  • feat(cache): opt-in removal of dynamic-group movies from Radarr (#1593) (6a1ee3aa)
  • feat: Add bouquets to Alias live group sort (f70d83da)
  • feat: Add Arr webhook register/test actions (88f47eb9)
  • feat(cache): send Cache Now and dynamic group caching to Radarr/Sonarr (#1585) (42052879)
  • feat(dynamic-groups): auto-cache dynamic group members with per-rule retention (#1574) (20bc6dc9)
  • feat: Record failed probes and add sampled series probing (#1577) (3617ef90)
  • feat: Add TV app client id support (#1572) (5da6e539)
  • feat(dynamic-groups): cache-now bulk action on Movies and Series items tables (#1563) (2b79d9f0)
  • feat: prefer media server sources over provider streams (#1567) (8f615114)

Bug Fixes

  • fix: Failing test cases for cache content (f6506ded)
  • fix: Playlist Alias source change not correctly clearing bouquets on save (b1cd6ad1)
  • fix: report the actual Emby managed setup failure instead of a blanket install prompt (#1594) (0d976d09)
  • fix: i18n merge conflict tool reshuffling lang keys (818ca7f3)
  • fix(cache): route Cache Now to Radarr/Sonarr when the playlist is narrowly loaded (#1589) (a49cb742)
  • fix(build): check out the resolved m3u-proxy commit (#1587) (e669e12d)
  • fix: Alias duplicate action missing bouquets (9edd48a6)
  • fix(arr): show the webhook URL on Radarr/Sonarr integrations (#1586) (6fb34683)
  • fix: Stop TV streams that were swapped to another item (#1573) (15d0b5a5)
  • fix: stop catchup seeks from re-running stream creation per Range request (#1571) (f3ecd2fe)

Maintenance

  • chore(dynamic-group): Update form and table to reflect cache state (81edef70)
  • chore(dynamic-groups): Form and action alignment for TMDB Dynamic Groups (50a4161b)
  • chore: Cleanup settings page header actions (cc58e8ad)
  • chore: Cleanup integration and media server pages (fc508827)
  • chore(dev-deps): Follow up dep bump to resolve security issue (548358ed)
  • chore(dev-deps): Bump framework deps to resolve CVE (dff1c2d1)
  • chore: Fix networks table logo (b5eb3c66)
  • chore: Disable Arr stack cache toggle when caching disabled (144442bd)
  • chore: Add info panel to cached content (9993ac24)

Other Changes

  • ci(release): build and gate the release on the exact tagged commit (#1588) (bffa2735)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.13.1...v0.13.2

What's Changed

Features

  • feat(images): serve artwork at named size profiles; move media server and SD art from Redis cache to disk (#1566) (5631da79)
  • feat: Add logs endpoint for sending diag data to editor from TV app (286d416c)
  • feat(copilot): upgrade filament-copilot to 1.8 and laravel/ai to 0.11, add tool approvals and reply feedback (#1565) (86245ece)
  • feat: Add optional "Sort by channel number" playlist output ordering (#1561) (572ff8da)
  • feat(tmdb): persist US certifications, series networks and movie studios (TMDB + media servers) (#1557) (4069b20b)
  • feat(dynamic-groups): order members by TMDB rank + extend TMDB page cap to 10 (#1534) (90ed4f12)
  • feat: Add named resource types for API docs (#1558) (e28a8f3f)

Bug Fixes

  • fix: Timing issue in test case (dc6b56ac)
  • fix(aiostreams): Episode list not loading with recent API update (506193d9)
  • fix(dvr): scope EPG channel lookups by epg_id to fix wrong channel, missing stream_url (#1462) (#1564) (12d2aeac)
  • fix: surface Emby publish failures (#1544) (54cf4f94)

Maintenance

  • chore: Add sync invalidation to service alerts (bc742921)
  • chore: Make sure manual playlist sync resets retry counter (709a7a23)
  • chore: Optimize poster size for VOD in TV app requests (a4705372)
  • chore(security): SSRF patches (503143f1)
  • chore: Fix EPG channels logo display (f16d799e)
  • chore: Refactor retry loop + count logic for failed syncs (ff018d5e)
  • chore(dev-deps): Bump axios to resolve CVE (dafc37d3)
  • chore(aiostreams): Add missing Series metadata (54716824)
  • chore: Cleanup return types for interactive API docs page (577a7079)
  • chore(sec): Bump deps to resolve CVE (66d67bd0)
  • chore: Fix preferred artwork for SD sync (65fec668)
  • chore: Update M3U TV app url to new docs page (65834557)
  • chore: Add query params to append additional EPG metadata (7985c24e)
  • chore: Fix lang file ordering (b1ffc8bd)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.13.0...v0.13.1

What's Changed

Features

  • feat: Implement EPG cache enrichment plugin hook (#1556) (ca270653)
  • feat: Support multiple line ups for SD EPG types (#1555) (2415a51c)
  • feat: Add Unsloth Studio as local AI copilot provider (#1522) (61b60128)
  • feat: Expose DVR functionality via API (#1554) (37d0ff27)
  • feat: Add sort by recent activity to series sort options (#1552) (8029a815)
  • feat(cache): Add cached content downloads (#1524) (64f7f445)

Bug Fixes

  • fix: In-app player not working with AIOStreams (cefae87e)
  • fix: M3U import duplicate check (21524141)
  • fix: AED profile not respecting length (7c7c3254)
  • fix(dynamic-groups): Remove the playlist rule when a dynamic group is deleted (#1551) (6bc320e2)
  • fix: Update column type for metadata strings (ad265e1e)
  • fix: TMDB enrichment being overwritten on media-server sync (9e4cf4f6)
  • fix: Series episode table season grouping (a156fad5)

Maintenance

  • chore: Updating README screenshots (1777d5bd)
  • chore: Update auto-enable column on groups/categories to indicate playlist override (53af5954)

New Contributors

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.12.59...v0.13.0

What's Changed

Features

  • feat: Add cache time and has DVR columns to EPG resource (74634608)
  • feat: Expand Playlist Alias to allow host swap (#1541) (6cd0dfac)
  • feat(emby): publish dynamic groups through library mappings (#1535) (0919fd43)

Bug Fixes

  • fix: SQL inject warning flagged by auditor (be4cf284)
  • fix: TMDB enrichment being overwritten by provider auto-fetch (#1540) (0f1ecbab)
  • fix(emby): reconcile managed libraries after delayed inventory (#1537) (6a65863b)
  • fix: Continue watching cross-providers to allow switching (285dc396)
  • fix: TMDB auto-enrichment feature skipping partially fetched items (f47a5bbf)

Maintenance

  • chore: Add Custom Playlist option to provider migration action (30be3cca)
  • chore: Add Laravel Vet to CI workflow (12b0bd67)
  • chore(sec): Add Laravel Vet (efd38b5f)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.12.58...v0.12.59

What's Changed

Features

  • feat: Auto-TMDB enrichment (08c0ce10)
  • feat(dynamic-groups): add per-type listing creation actions (#1527) (1c057d81)

Bug Fixes

  • fix: Source group duplicate check (ed64541d)
  • fix: Prune stale provider source groups on sync (794432b0)
  • fix: Custom channel playback not working (ad592eb8)
  • fix: Manual TMDB search action (c95bfa0d)

Maintenance

  • chore: Silence DVR scheduler in queue monitor (1711f4a2)
  • chore: Add dupe check to DVR schedule action (c16cb9cc)
  • chore: Update Alpine and container services (f046822a)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.12.57...v0.12.58

What's Changed

Features

  • feat: Add actor filmography Xtream API endpoint (11dc911a)
  • feat: Allow enable/disable of playlist output types (f61518c3)
  • feat(dvr): add matched airings preview with smart dedup and skip reasons (#1490) (d2655c78)
  • feat(series,vod): link actor filmography from series and VOD detail views (#1512) (5a42fb63)
  • feat(sort): add 'Sort by Rating' option to playlist Sort Alpha Configs (#1487) (9bb1f0fb)
  • feat: Add custom playlist mgmt. API endpoints (7f4afe85)
  • feat: Extend TMDB enrichment to include related (2b326c34)

Bug Fixes

  • fix: DVR dedup loading all channels breaking form (9808ca9e)
  • fix: proxy logos in channel table (#1520) (f087e24d)
  • fix: Alias custom group sort not working via get_X_categories endpoint (312c031a)
  • fix: Failing test case with logic update (6c7e67d6)
  • fix: Move provider profile proxy count fetch outside selection lock (2d09743e)
  • fix: SQLite backup restore stall (69e41a21)
  • fix: SQLite sync loop with locked DB (b93dc337)

Maintenance

  • chore: Remove plan files (2b7b886a)
  • chore: Fix AIOStreams recommendations logic (a7b2992b)

New Contributors

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.12.56...v0.12.57

What's Changed

Features

  • feat: Support mixed libraries in Emby/Jellyfin (de1a6eb22)

Bug Fixes

  • fix: Extension for M3U and HDHR output not using proxy format when enabled (#1508) (b641cfc33)
  • fix: Wrapper logic for DVR follow up to PR #1507 (2e06d1adc)
  • fix: Enforce wrapper and source playlist stream caps independently, resolve DVR settings through Merged/CustomPlaylist (#1507) (2b35999e5)
  • fix: Merged-target bouquet pickers reopen empty and drop selections on save (#1506) (5c4669655)
  • fix: Easy editor screen not updating channel on category change (6b4cc3c5f)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.12.55...v0.12.56

What's Changed

Features

  • feat: Simplified UI for playlist editing + menu manager in settings (#1501) (9d3f58e30)
  • feat: Implement provider migration with user intervention support (#1497) (6d4444812)
  • feat: Add image resize query vars for metadata (5ff60ba8d)
  • feat: Add transcoding option to per-playlist DVR (930248b5c)
  • feat: HDHomeRun playback and DVR support (#1494) (878e15314)
  • feat(bouquets): reusable playlist group selections assignable to aliases (#1391) (#1484) (0f80bb3f9)
  • feat(alias): per-source group and category filters for merged playlist aliases (#1457) (#1483) (5ce09c449)
  • feat: Add days to generate config for dummy EPG on Merged and Custom playlist (6a99723b5)

Bug Fixes

  • fix: DVR recording not respecting pooled provider profile setups (2b7b07a18)
  • fix: Pooled provider playback via merged playlist (1b55ac7cf)
  • fix: Reject auth credentials that cannot be embedded in stream URLs (#1495) (1cde90866)
  • fix(aiostreams): fix AIOStreams playback in m3u-tv (#1491) (edc238d4e)
  • fix(reclassify): keep DVR VOD channels and DVR Series in their DVR Recordings group/category (#1486) (ddd817593)

Maintenance

  • chore: Add fallback lookup with using mixed types for merged playlists where stream IDs don't match (4a9fa5e0a)
  • chore: Update playlist alias sub-nav (8c09bf9e0)
  • chore: Add exception flag for new bouquet model (66a77ba67)
  • chore: Migrate resources into clusters for better resource mgmt. (92e44a36a)
  • chore: Add TMDB enrichment to AIOStreams integration (a9d95bf40)
  • chore(bouquet): Cleanup duplicated code (d8918c3bc)
  • chore: Code cleanup and optimization (54f1d4521)

Full Changelog: https://github.com/m3ue/m3u-editor/compare/v0.12.54...v0.12.55

© 2026 - m3u editor logo m3u editor v0.14.1 Donate with