github chrisbenincasa/tunarr v2026.11.2

one hour ago

Read the announcement: https://tunarr.com/blog/2026.11.2/

2026.11.2 (2026-11-09)

⚠ BREAKING CHANGES

  • api: GET /api/media-libraries/:libraryId/programs returns a
    paged { total, result, size, offset } object instead of an array.
    Pass offset and limit (1-1000, default 100) to walk the library.

Features

  • add ability to bulk edit filler/channel assignments (#1842) (28ab7e5)
  • integrate new stream selector with the ffmpeg pipeline (#1874) (b2fda38)
  • let users remove a channel's slot schedule (#937) (#2458) (3e0c369)
  • stream selection profiles with a resolution cascade, legacy migration, and assignment UI (#1876) (4c44d21), references #1960
  • stream-selection: rule preview and Basic-mode program fields (#2181) (738878d)
  • upload and loop the channel fallback soundtrack (#2467) (404f8d5), closes #523
  • web: add bulk actions, keyboard navigation and a status filter to /channels (#2421) (5b2a46e)
  • web: port six tables to DataTable (MRT replacement Phase 1) (#2411) (edf7b53)
  • web: rebuild /channels on a new CollectionView pattern (#2414) (40aac0a)
  • web: show a snackbar linking to the logs when a query fails (#2473) (2b2beab)

Bug Fixes

  • api: make POST /media-sources/:id/scan queue a scan (#2501) (c12eee5), references #2271
  • api: page GET /media-libraries/:libraryId/programs (#2423) (0b72882), closes #2420
  • channels: preserve on-demand playback state on channel save (#2496) (80a6b2a)
  • ffmpeg: isolate output defaults between streams (#2468) (fa7ca66)
  • ffmpeg: normalize SDR color output for VAAPI (#2379) (a5b1162)
  • hls: lower the default session staleness to 60s (#2422) (d7d12c5), references #1942 #1911
  • nvidia: crop bottom rows only for overlays on unpatched ffmpeg (#2404) (c762000), closes #2393
  • plex: treat a library list with no Directory key as empty (#2442) (a134656)
  • scanner: gate movie short-name artwork on a movie folder (#2320) (170d592), references #2171
  • scanner: keep sidecar subtitles, channel counts, and default flags for local media (#2435) (d8db37e), references #2433 #2434
  • scanner: keep tvshow.nfo uniqueid tags as show external IDs (#2479) (2332318)
  • scanner: match type 'artist' on a single-artist music rescan (#2495) (2bb474f), references #2455
  • scanner: restore trashed remote programs that a scan finds unchanged (#2474) (b054faf)
  • scanner: trash remote seasons and albums left with no live items (#2450) (b0333a2), references #2401
  • scripts: recognize makeKyselyMigrationFromSqlFile in resolve-migrations (#2478) (83ce1c6), references #2147
  • search: remove index documents whose program row is gone (#2398) (e7657f9), references #2206
  • server: guard image cache downloads against blocked destinations (#2498) (f9a83f2)
  • server: preserve stream selection profiles on metadata refresh (#2360) (fd6d521)
  • server: relabel Jellyfin/Emby grouping external IDs stored as plex (#2112) (34440fc), closes #2084, references pre-#1106 #910 #1106
  • skills: page the library programs request in stream-repro (#2470) (d309f4b), references #2423
  • stream: send whole milliseconds to ErsatzTV next (#2418) (07b68bd), closes #2416, references #2416
  • stream: serve generated WebVTT subtitle windows (#2444) (b335d41)
  • stream: stop HLS audio overlapping at program boundaries (#2368) (cfcd518), references #2364
  • web: drop null year and season from program search labels (#2502) (dc23420)
  • web: omit an empty artwork fallback list on channel cards (#2499) (c049483)
  • web: separate watermark fade and time limit settings (#2464) (7cbdc65)
  • xmltv: keep a custom XMLTV output path across restarts (#2400) (86cf43e)

Don't miss a new tunarr release

NewReleases is sending notifications on new releases.