mirror of
https://github.com/chrisbenincasa/tunarr.git
synced 2026-04-18 09:03:35 -04:00
167 KiB
167 KiB
Changelog
1.1.3 (2026-01-20)
Bug Fixes
- prevent "sonic boom is not ready yet" errors on system settings change (ca8e393)
1.1.2 (2026-01-20)
Bug Fixes
- fix smart collections to work with keywords and new search experience (#1603) (46ae9be)
- properly persist tags while scanning (#1595) (2b04109)
1.1.1 (2026-01-17)
Bug Fixes
- fix general settings form with invalid default logroll config (266464c)
1.1.0 (2026-01-16)
Features
Bug Fixes
- extract audio title tag when probing local files (42659b7)
- fix derivation of Plex collection subtype (9e9b005)
- multiple fixes to NFO parsing to be more permissive (cdb1ba6)
- passthrough color information from Plex (3755ecc)
- remove video stream presence restriction for Jellyfin items (d59b1f2)
- remove video stream restriction from Emby (ed7381a)
- sort nested program queries by index (a0a13b3)
1.0.18 (2026-01-14)
1.0.18 (2026-01-14)
Bug Fixes
- add audio volume filter back to ffmpeg pipeline (1e6a46c), closes #1582
- be more permissive about deriving / accepting program hierarchies (8be211d)
- correctly mint ContentPrograms for unsaved channel programming (b9143d2)
- fix zero channel durations if detected at stream time (2bb4231)
1.0.17 (2026-01-09)
Bug Fixes
- default experimental search index memory flag to false (271555c)
- properly scan Emby episodes (f1978e8)
- restore search index from snapshot when necessary (4a8fd4e)
1.0.16 (2026-01-08)
Bug Fixes
- do not stop scanning seasons if one is unchanged (109a030)
- strip leading "v" from version strings before building (6723eee)
1.0.15 (2026-01-06)
Bug Fixes
- macos: create tunarr data directory on first run if not exists (a5271b4)
1.0.14 (2026-01-05)
Bug Fixes
- add missing virtual field mappings for video / audio fields (49803be)
- ensure invalid release date / years do not break API schema validation (3e0b1fc)
- search for arch-specific meilisearch binary (bb81409), closes #1561
1.0.13 (2026-01-04)
Bug Fixes
- add missing build dependency for meilisearch install (#1577) (a6933aa)
- populate subtitle language metadata from ffprobe (#1579) (d129446)
- use proper image URL for locally scanned libraries in EPG (d541cc5)
1.0.12 (2026-01-02)
Bug Fixes
- do not run backup task immediately on server start (70b8974)
- fix typo in MediaSourceSettingsPage description (#1575) (28ced48)
- handle quotes in search values (53e1cdf), closes #1569
1.0.11 (2025-12-28)
Bug Fixes
- properly set plot field when minting Program DAOs for movies (bacabac)
- remove missing programs alert from slot scheduler (9404b31)
1.0.10 (2025-12-28)
Bug Fixes
- make Plex scannedAt attribute optional (18f22c5)
- more fixes to adding unscyned Jellyfin / Emby client (c524bad)
- properly extract episode overview for Jellyfin and Emby programs (9f64746)
- support plot and summary fields in XMLTV (61e30f3)
1.0.9 (2025-12-22)
Bug Fixes
- fix block shuffle ordering for all program types (36d4603)
1.0.8 (2025-12-21)
Bug Fixes
- ensure original program lineup is used each time block shuffle is generated before saving (19baad9)
- ensure search state is cleared when navigating to media source views (579586f)
- fix unsynced top-level Plex playlists view (4f42bfb)
- revert api client timeout back to 60s (1c36dcc)
- various fixes to Emby integration and API client (49150ab)
1.0.7 (2025-12-18)
Bug Fixes
- allow quoted strings to contain search keywords (359cc9f)
- allow selection of filler tab on slot editor dialog (a23be18)
- only sort by date; items missing date will be excluded if we try to sort on it (5e50fbb)
1.0.6 (2025-12-17)
Bug Fixes
- allow choosing local programs as filler (8a11e54)
- explicitly sort on title for GetDocuments request (4a92c4a)
- fix building external thumb URLs for unsynced libraries (5bfcf6b)
UI Changes
- add smart collection page (#1542) (528790b), closes #1526
- ensure all icons on media source table show (c67b861)
1.0.5 (2025-12-17)
Bug Fixes
- disable slot editor validation check on save button (9416c37)
- fix several form state issues in the slot dialog (345a6af)
- return audio stream index for all streams (b7ab23b)
1.0.4 (2025-12-16)
Bug Fixes
- add support for attributes in credit or director xml fields (#1540) (677b877), closes #1528
- differntiate between persisted and ephemeral artwork in API (c5c55e5)
- do not erroneously reset media source when changing libraries (9e58734)
- fix destructure of undefnied when materializing slot schedules (6aaa43b)
- generate proper order for shows in slot editors (fbf08c4)
- properly index studios and make them searchable (2f043b9)
- properly map "not in" queries to search requests after parsing (b80659f)
- properly mint directors/writers for movie items (80eb15e)
- select ETag explicitly from Emby (6912b3f)
- use proxied /api/metadata/external endpoint for loading non-persisted artwork (c13e530)
Performance Improvements
- substantially improve guide building performance while reducing memory usage (1363b88)
UI Changes
- hide free text info box when query string is empty (b8b764b)
1.0.3 (2025-12-14)
Bug Fixes
- ensure artwork is always generated for xmltv, not just for episodes (49e99d9)
- properly map virtual search fields grandparent_genre and show_genre to grandparent.genres (078cc31)
1.0.2 (2025-12-13)
Bug Fixes
- allow playing local program streams that have no subtitle streams (6dc2adc)
- fix video_(height|width) virtual field mappings (4f38e37)
- remove duplicate shuffle entry in smart collection slot editor dialog (b77f871)
UI Changes
- fix typo in Slot editor (821c9f1)
1.0.1 (2025-12-12)
Bug Fixes
- only use thumbnail paths directly if they are http/https (3e3a89c)
1.0.0 (2025-12-12)
⚠ BREAKING CHANGES
- persist cast/crew and their artwork to the DB (#1448)
- introduce smart collections (#1436)
- implement local media libraries (#1406)
Features
- media library scanner + full library search (4dd117c)
- add parent directory as tag for other video libraries (7d6890f)
- support negation of IN queries (63f23ac), closes #1514
- add credits API and use it for credit thumbs (758fd64)
- new program page (fde72a4)
- implement emptying trash functionality (#1484) (a6360b0)
- implement missing/trashed items (#1481) (18cdbcb)
- add search server link to status page (9ff38ce)
- allow manually purging dangling documents from search index (2ddf07e)
- search parser overhaul (fa6db00)
- add local media scanner for "other video" library type (#1474) (efff4b8)
- expose max-indexing-threads advanced option for search (0b30a62)
- hookup scanner cancellation and do it in graceful shutdown (de5ca88)
- persist artwork and credits extracted from media source scanning (#1450) (9c82432)
- persist cast/crew and their artwork to the DB (#1448) (b26a0ba)
- add basic fallback metadata extraction for local media (45a9643), closes #1428
- allow scheduling shows that are not part of channel lineup (#1440) (83bf854)
- support smart collection slots in both slot editors (#1442) (2c6ef93)
- add search bar to top bar (#1432) (de41188)
- introduce smart collections (#1436) (5183eae)
- adds new channel options button across pages (#1425) (1c9c99c)
- add ability to randomly sort by whole show (#1415) (3fc743a)
- allow basic configuration of library scan interval (b3af495)
- allow configuring path replacements per-server (#1412) (8a0b8b8)
- implement local media libraries (#1406) (a748408)
- save program media versions to DB (#1379) (b7b9d91)
- support for syncing / scanning Other Video libraries in Plex/Jellyfin (1ea6e8a)
Bug Fixes
- allow parsing virtual show_* fields in search (0dcd7d7)
- allow using non-synced sources in filler / custom-shows (6b27a07)
- another fix for foreign keys migration; defer checking (9d8ff9c)
- backfill program_grouping.media_source_id in fixer (f049a81)
- do not mark missing items in local scanners when using pathFilter (d4ed522)
- fix mediaSourceDB#setMediaSourceUserInfo early exit clause (71ef775)
- fix migration splitting for broken migration (bcd72d7)
- handle different language formats when parsing subtitle filenames (#1507) (b88fb47)
- properly display thumbnails for non-synced sources (d1e66c5)
- ensure search index snapshots are included in backups (af63a41)
- ensure UI cannot unset 12/24 hour clock (49fa52b), closes #1504
- only keep the last 3 DB copy migration backup files (a61de3b)
- properly materialize smart collections with structured filters when scheudling slots (58b71a6)
- simplify database copy migrations (9804863)
- take search index snapshot during backup task (a3e885c)
- fix missing item checking for local scanners (ecfb621)
- standardize on artwork hooks on new program detail pages (2d0c112)
- actually delete smart collections when requested (e285655)
- allow viewing slot schedulers even with missing programming (7993bb5)
- fix horizontal page scroll (#1497) (308bf3d)
- lift 1k document restriction on structured queries (28279e8)
- remove reliance on search index for program materialization (#1494) (c5d2118)
- allow saving "free query" searches as smart collections (d55cdd9)
- do not attempt to parse numbers from nfo files (41f1307)
- fix stream duration calculation in StreamProgramCalculator (526417b)
- run RefreshMediaSourceLibraries at startup; then once an hour afterwards (ba96b3f)
- do not require canonicalId to return API program/grouping (b2ea9f9)
- ensure all fields are properly updated when upserting grouping (b06f8e4)
- fix macos bundle for meilisearch (62025c6)
- ui: fix Force Scan toolip (434fe3b)
- allow dumpless Meilisearch upgrades; bump to 1.27.0 (ab82009)
- improve media source scanning UI state (dc67e9e)
- make audio/subtitle language optional in nfo schemas (18cdbcb)
- make various Plex item index fields optional (c198860)
- return TerminalProgram type from /channels/:id/programs (d5405e0)
- add missing RemoveDanglingProgramsFromSearchTask (96650ee)
- delete items from search index when media source is deleted (de995c7)
- ensure PlexApiClient uses dayjs from server impl (0dc0b60)
- fix JF/Emby stream path building (db5e6bc)
- index additional denormalized details (4ac97a5)
- properly persist media source path replacements on save (2744ad0)
- allow query from top search bar even if not a structured query (04cfe0c)
- implement proper dirty checking in media source other video scanner (4fed159)
- include child relations for program groupings in API (8c4634c)
- pass relevant media source token when loading external images (7b65ff5), closes #1469
- proper implementation of dirty checking during media source scanning (857f656)
- add derivedtypes update - forgot to save this file (2f0c882)
- allow 0 as a track number index (ff17084), closes #1462
- always report input on API schema parse errors (5c20e72)
- catch Jellyfin VideoRangeType parse error and default to Unknown (568594d), closes #1452
- disable dataloader caching (95ff917)
- disable music video libraries in Manage Libraries (4f952b6)
- do not allow changing library enabled state if locked (8d417ba)
- ensure artwork for programs is minted and saved (db5ec6a)
- fix form state when switching between slot duration types (f02fb9b)
- only show supported media library types (b348621)
- populate parent entity when querying getProgramGroupingById (9ea53fb)
- properly index "index" field for seasons/albums/tracks in search (f8f1989)
- properly return index for season/album groupings from API (533971a), closes #1463
- re-implement ChannelProgramGrid on new APIs (#1456) (86c305e)
- remove Plex auto-channel updater (effcb18)
- return all relations for program gropuings in search API (d217d82)
- return full parent/grandparent details from getProgramById API (66c03b2)
- return terminal program genres in /programs/:id endpoint (957f0ce), closes #1461
- revert better-sqlite update (e0f7162)
- allow for space between season / episode numbers (2d4be84)
- fix season/episode regex regressions with fallback regex (0ab464f)
- make actor.role optional when parsing nfo (5633933)
- parse but ignore bin_data streams in with ffprobe (24b7fbb)
- support parsing season/episode numbers in the form 4x03 (84979a6)
- accept both string or number for aspect ratio in NFO files (eba9f89)
- reset local media settings dialog state on close (6c614e8)
- do not require episode nfo files to have the uniqueid field (6342a03)
- make videodetails nfo parsing more persmissive (c611297)
- do not crash if there is no stream-cache to migrate (abb708a)
- make durationinseconds optional; we dont even use this field currently (46ceea1)
- fix jellyfin and emby streaming (5bf3e84)
- more permissive nfo parsing (66369b9)
- remove dependency on sharp until we can figure out x-platform packaging (f4433f6)
- fix binary release and bump node to 22.20.0 (6475f85)
- fix adding music items for non-synced libraries (7a1f6f0)
- fix db associations with scanned audio libraries (ea2edc5)
- properly upsert program grouping external ids (8462143)
- fix meilisearch grabber script to accept x64/x86_64 args for mac download (415121e)
- streaming: convert to proper pixel format before cuda upload + scale (091e7bd)
- streaming: do not apply hwdownload filter in cuda pipeline if not on hardware (5726d6e)
- streaming: do not set sc_threshold to 0 for mpeg2video out (949efda)
- streaming: properly pass disable hw decode/encode/filter to pipeline (70b3757)
- streaming: use bitstream filter in CUDA pipeline to workaround green line (ff61f62), closes #1390
- treat ffprobe format_long_name as optional (c656d24)
- ui: allow viewing stream details of custom / filler programs (af87a17)
- use proper generic other_video scanning type for inject (e44d55d)
- allow querying of other/music video types in UI (dd494fc)
- fix non-synced item enumeration when adding programming (5a8acb7)
- search: make various stream metadata params filterable (f5590f4)
- bundle and start meilisearch properly on macOS (32d2e23)
- do not use github api to pull meilisearch releases (169503c)
- ensure we do not save duplicate libraries by external_id (071be3b)
- extract proper child counts for JF parent items (1261f22)
- meilisearch windows build needs exe extension (13ffcd2)
- ui: allow switching non-synced JF/Emby libraries (0d812ed)
- ui: properly show selection state on imported items (fff1f6c)
UI Changes
- add link to search page from smart collections page (dc3e932)
- add warning for structured vs free queries (714982f)
- consistent library page UX and always-visible drawer (2c59729)
- cleaning up some mobile styling (#1405) (9a79146)
0.22.18 (2025-12-08)
Bug Fixes
- fix stream duration calculation in StreamProgramCalculator (526417b)
- only generate in range indexes (bcb7542)
0.22.17 (2025-11-26)
Bug Fixes
0.22.16 (2025-11-24)
Bug Fixes
- dynamically calculate SAR when necessary (69c6947)
- fix build with new sample aspect ratio fields (80fccd2)
- fix tests after SAR changes (944039e)
- make duration_ts option on video streams in ffprobe output (fe34da8)
- streaming: properly set decoder thread count to 1 for hwaccel pipelines (72f128b)
- ui: fix remaining time calculation and display in guide (3c5ea7a)
0.22.15 (2025-11-16)
Bug Fixes
- do not pass exact duration to audio pad filter (289acf1)
- fix bad form state in channel EPG settings (ec82018), closes #1468
- more balanced cyclic shuffle implementation (0ceb5e3)
- remove BackfillProgramGroupings fixer (f6cf17f)
0.22.14 (2025-11-10)
Bug Fixes
- overhaul logs and system logs page (24b3213)
0.22.13 (2025-11-10)
Bug Fixes
- disable time slot editor buttong when there are no slots (cc4f056)
- fix sidear ASS subtitle download in Jellyfin (5784079), closes #1457
0.22.12 (2025-11-06)
Bug Fixes
- fix form state when switching between slot duration types (f02fb9b)
- remove Plex auto-channel updater (effcb18)
0.22.11 (2025-10-27)
Bug Fixes
- allow playing remote media from Emby (8eaa68f)
0.22.10 (2025-10-27)
Bug Fixes
- fix HLS direct playback in Jellyfin for MKV/MP4 output formats (85ea844)
- fix lineupItemToChannelProgram override to account for undefined channel.programs (a87cf4a)
- streaming: always set framerate when resetting PTS in QSV pipeline (00c17a8), closes #1431
- streaming: fix HLS direct streaming for Jellyfin 10.11 (81ea984)
- use default analyzeduration (5s) when probing files instead of 30 microseconds (91755b3)
0.22.9 (2025-10-18)
Bug Fixes
- streaming: potential fix for QSV audio sync issues (f5a96ae)
0.22.8 (2025-10-15)
Bug Fixes
- do not let stream cache hard fail streams (e5e5b15)
0.22.7 (2025-10-15)
Bug Fixes
- ensure program summaries are escaped for xml (9f3cad5)
- handle some weird cases of expected exit in ffmpeg (8106d34)
- streaming: apply sc_threshold after hw accel is decided (1037ca3)
- streaming: fix audio only streams for vaapi (c0691cc), closes #1365
0.22.6 (2025-10-08)
Bug Fixes
- add subtitle and description to xmltv (f056790)
- streaming: convert to proper pixel format before cuda upload + scale (091e7bd)
- streaming: do not set sc_threshold to 0 for mpeg2video out (949efda)
- streaming: properly pass disable hw decode/encode/filter to pipeline (70b3757)
- streaming: use bitstream filter in CUDA pipeline to workaround green line (ff61f62), closes #1390
- ui: allow viewing stream details of custom / filler programs (af87a17)
UI Changes
0.22.5 (2025-09-23)
Bug Fixes
- streaming: do not apply hwdownload filter in cuda pipeline if not on hardware (5726d6e)
- treat ffprobe format_long_name as optional (c656d24)
0.22.4 (2025-09-19)
Bug Fixes
- do not send fractional millis to ffmpeg stream seek (b588137), closes #1378
- ensure PremiereDate is selected for both Jellyfin and Emby (335c0a0), closes #1389
- ui: allow saving transcode config when audio format is copy (a98bc32), closes #1387
0.22.3 (2025-09-16)
Bug Fixes
- allow selecting parent Jellyfin items in list view (9756e35)
- correct set the isDefault bit on new transcode configs (180841c)
- streaming: change how QSV is initialized on Windows (1dbec53)
- streaming: do not apply apad when audio encoder is copy (92bce8a), closes #1311
- streaming: fallback to yadif=1 when configured software deinterlace is none (3a5e69d)
- ui: add missing BackupForm file erroneously left out (67b97b0)
- ui: disable various audio stream forms when encoder is set to copy (2aa12c3)
- ui: properly handle keyboard input for backup time picker (39a6d70), closes #1361
UI Changes
- hide missing season/associations health checks (59265a8)
0.22.2 (2025-09-07)
Bug Fixes
0.22.1 (2025-09-05)
chore
0.22.0 (2025-09-05)
chore
- fix docker build (37c6708)
0.22.0 (2025-09-04)
⚠ BREAKING CHANGES
- expose advanced transcode parameters (#1347)
Features
- expose advanced transcode parameters (#1347) (f13e3bb), closes #1090
- scheduling: keep random ordering stable between preview/save in slots (#1354) (afcbac9)
Bug Fixes
- do not pass userId in Jellyfin library requests (62b853d)
- ensure fallback filler is looped for the duration of the stream block (#1329) (c16b208)
- scheduling: keep relevant existing values when switching program types in slot editor (4880e42), closes #1352
- scheduling: properly deduplicate custom/filler programs for slot algos (0e49c41)
- several fixes to filler editor and programming (#1350) (aba6018)
- ui: ensure correct guide end time is passed for specific channel guide queries (dd2b9a3)
- ui: fix transcode config name overlay in summary page (b00a68a)
- ui: invalidate relevant queries after transcode config is deleted (abf3b8b)
UI Changes
- fix wording for channel flex cooldown (c135fe7)
0.21.11 (2025-08-27)
Bug Fixes
- scheduling: always use full custom show / filler list when generating slot schedule (c3aa641)
- streaming: fix HLS stream paths in legacy streaming pipeline (adc1113)
0.21.10 (2025-08-22)
Bug Fixes
- fix channel logo upload validation (by ignoring it) (fdfbe4a)
UI Changes
- remove extra padding from mobile styles (a7ead3a)
0.21.9 (2025-08-22)
chore
- release 0.21.9 (217209f)
0.21.8 (2025-08-21)
Bug Fixes
- use iso.datetime instead of iso.date for guide API (30afcc5)
0.21.7 (2025-08-20)
Features
Bug Fixes
- ui: fix filler list weight distribution (5fe9595), closes #1316
- ui: scope select all to selected jellyfin genre (2e77231), closes #1332
UI Changes
- ui: make filler cooldown differences more clear (d93805f)
0.21.6 (2025-08-20)
Bug Fixes
- default stream output directory to within Tunarr data directory (d901652)
- ui: ensure media source dialogs always update after edits (ec213f0)
0.21.5 (2025-08-16)
Bug Fixes
- allow adding emby programs to custom shows (912b540)
- fix ffprobe command in stream details debug tab (576f337)
- include original ffmpeg command in error file (cc2776b)
UI Changes
- account for delete action in program list padding (fba8bda)
- allow for larger steam detail dialogs (ba2f767)
- limit size of channel logo on summary page (1e3af1a)
- standardize channel menu (119d280)
0.21.4 (2025-08-14)
Features
Bug Fixes
- fix subtitle extraction (e6ac4d4)
0.21.3 (2025-08-14)
Bug Fixes
- fix jellyfin library selector (#1320) (c898b3e)
- properly init channel cache (ec3e98e)
- synchronously initialize PersistentChannelCache (838d8cc)
- ui: actually fix issue with changing slot type not rendering (23be5c0)
0.21.2 (2025-08-13)
Bug Fixes
- scheduling: many fixes to filler types in slot editors (#1318) (3e69e0b)
- ui: enable submit button after changing existing slot type (a1e59aa)
0.21.1 (2025-08-11)
Bug Fixes
- jellyfin: user /Library/VirtualFolders endpoint for gathering user libraries (aa6c0af)
- ui: propery re-render slot program form when type changes (3d99ce6)
0.21.0 (2025-08-11)
⚠ BREAKING CHANGES
- scheduling: ability to schedule filler directly in slot schedulers (#1234)
Features
- add genres endpoint and integrate genre selection in the ui for… (#1295) (50ceb54)
- add movie nfo parser (#1262) (3ba2aad)
- add program stream details info to program dialog (#1296) (d87f269)
- add tv show and episode nfo parsers (#1266) (555d838)
- macos: add proper macOS wrapper app (#1290) (e293f4c)
- scheduling: ability to schedule filler directly in slot schedulers (#1234) (fed7717)
- scheduling: support for flex kinds in time slots (#1238) (7a16eab)
Bug Fixes
- allow scheduling content from mixed-type Emby libraries (a894ef4)
- ensure release action uses proper xcode version (7c6214b)
- ensure remove duplicates uses most up-to-date program list (c6d9b79), closes #1297
- fixes and simplification of stream program calculator (#1301) (3fa2808)
- hide scheduled filler content from EPG by default (#1286) (d36bfd0)
- only run ReconcileProgramDurationsTask when necessary (ed09b4c)
- remove admin mode (8fa0bac)
- streaming: explicitly set software mpeg2video encoder (6976e35)
- streaming: fallback to software decode when seeking with QSV (#1276) (e8e4bac)
- streaming: multiple fixes for image-based sub overlays on CUDA (#1275) (bb63c46), closes #1272
- streaming: only set output pixel format on CUDA hwdownload when necessary (3f9d3ce)
- streaming: remove first_pts setting to fix audio drop/desync issues (dde8a83)
- streaming: remove some limits on thread counts (#1277) (4116225)
- streaming: rework hwdownload cuda filter (04e30dc)
- ui: allow getting nvidia debug details after getting vainfo debug (8fa0bac)
- ui: fix default form state in weekly time slot editor when day is empty (231e3bf)
- ui: fix filler list clear all button (cd2060b)
- ui: fix infinite API calls in Jellyfin grid (#1300) (4a9b3a3)
- ui: fix stealth mode checkbox state (136f9fa), closes #1305
- ui: properly filter various program types based on channel (#1271) (8c32d8b)
- ui: reording custom show programs no longer affects episode number (#1280) (231e3bf), closes #1273
- use execFile over exec when executing one-off child processes (8fa0bac)
- use execFile over exec when executing one-off child processes (#1309) (8fa0bac)
Performance Improvements
- periodically flush event loop in ReconcileProgramDurationsTask (622b8b3)
0.20.6 (2025-07-20)
Bug Fixes
- server: default is_edge_build env var flag to false if not present (d9d7aa3)
- ui: make version mismatch snackbar dismissable (8294735)
0.20.5 (2025-07-20)
Features
- ui: add ability to hide stealth channels from Tunarr guide page (9decb37), closes #1220
- ui: add channel summary page (#1190) (1f2e5eb)
- ui: add debug panel showing relevant server environment variables (c358dfc)
Bug Fixes
- backend: allow deleting channels that have subtitle preferences (1c12b6b)
- ensure build versions match between web and server (d31919c)
- insert filler / custom show content in chunks of 1000 to stay under sqlite limits (907594e), closes #1255
- server: fix incorrectly setting transcodeConfig.isDefault based on wrong field (50b31a6)
- streaming: fix nvidia hwdownload compat with ffmpeg 7.2 (#1253) (d4a1ed4)
- streaming: include Quadro M2000, etc in special Maxwell cards that can decode HEVC (be92d10)
- streaming: typo in rc-lookahead option (a96d782)
- streaming: various fixes to CUDA decoding and pipeline (#1242) (0f25baa)
- streaming: various fixes to pixel formats in nvidia pipeline (#1251) (4c3a080)
- ui: do not attempt to reach new plex servers with no access token (2c37b83)
- ui: ensure 'unsaved changes' popup doesn't erroneously pop-up in channel settings (be6db83)
- ui: fix channel summary page for empty channels (218e01c)
- ui: remove extraneous unsaved changes warning in ffmpeg settings (0c95cf0), closes #1244
UI Changes
- add health check for deprecated base docker image tags (3c5ea42)
- calculate guide item width to better fill container (d9f5e12)
- trialing out brighter secondary colors in dark mode (6e21d5b)
- various fixes to how the guide page is displayed (#1248) (6438a0d)
0.20.4 (2025-06-16)
Bug Fixes
- ui: ensure local state is always updated after querying media sources (ce40a9f)
- ui: fix programs disappearing from channel after save (e2722cc)
0.20.3 (2025-06-15)
Bug Fixes
0.20.2 (2025-06-15)
Features
- backend: add support for Tunarr worker thread pools (#1225) (f45b873)
- time-slots: allow scheduling any custom shows via time slots (#1227) (c7de6a1)
Bug Fixes
- backend: break injection dependency cycle with worker pool (3f75295)
- backend: pass correct message back from worker pool (947e2e6)
- ui: dark mode toggle could sometimes flash (ce844ed)
Performance Improvements
- backend: add performance metrics to worker pool (947e2e6)
- scheduling: do not create new arrays when pushing flex into time slot schedule (947e2e6)
0.20.1 (2025-06-06)
Bug Fixes
- cuda: ensure unscaled output properly sets pixel format when burning subtitles (dbc29f0)
- do not outright fail stream if external subtitles cannot be downloaded (11dae74)
- properly handle all item types in Jellyfin/Emby program selectors (#1214) (a311d8f)
- streaming: format error log timestamps as unix timestamps to avoid colon issues on Windows (9fb52d9)
- streaming: generate correct font file paths for error streams on Windows (2d052f7)
- subtitles: use double quotes for output paths to fix error on Windows (749fc14)
- subtitles: use proper path.dirname when downloading external subtitles (ccc2898)
UI Changes
- include release year in grid view, when possible (f009c32)
0.20.0 (2025-06-03)
⚠ BREAKING CHANGES
- official DB support for music / other video program types (#1207)
- add subtitle support with multi-level configuration (#1167)
Features
- add subtitle support with multi-level configuration (#1167) (a5a072e)
- official DB support for music / other video program types (#1207) (6f7c4d3)
Bug Fixes
- allow clicking directly next to guide timeline indicator (b12c40e), closes #1205
- always request recurisve=true for JF libraries (8b609e0)
- change subtitle preferences priority column from numeric to integer (236b6a1)
- do not pick unextracted subtitle streams (477d25f)
- download external subtitles to local cache (132a206)
- ensure correct channel/programming data always fetched (c759101), closes #1194
- fix weekly time slot deleting and editing issues (bd253fd)
- invert checkbox for old/new ffmpeg pipeline (7635225)
- multiple fixes to subtitle streaming / extraction (#1208) (9a61543)
- properly set filler list play cache entry (7b32acb)
- properly set lastFlushTime in InMemoryCachedDbAdapter (1f54a89)
- properly set output pixel format when using CUDA hardware download filter (5e45dbf)
- remove jellyfin item type checking when starting stream (ff5a4e7)
- remove other program type checks for media sources (fbc903e)
- update Emby types with more recent OpenAPI definition (#1211) (350b7c0)
- use default subtitle stream if channel has no preferences but subtitles enabled (1653a05)
UI Changes
- hide leading edge checkbox is intemrittent watermarks are disabled (143121c)
- implement horizontal scrolling in guide page (98331d0), closes #1197
- show hardware acceleration value in Transcode config table by default (f66cfc6)
0.19.3 (2025-05-12)
Bug Fixes
- fix tv guide current time indicator alignment (c74aa14)
0.19.2 (2025-05-12)
Features
Bug Fixes
- fix select all for Jellyfin libraries (c872ad9)
UI Changes
- add loading indicator when adding selected media to channel (50344a4)
0.19.1 (2025-05-09)
Bug Fixes
- allow adding Jellyfin media of type Video/MusicVideo (ff3ad43), closes #862
- default backup path to tunarr data directory when unset (#1183) (daf6d34)
- do not hit non-existent /Users/Me endpoint for Emby (e93ffe3)
- fix new sticky header for Jellyfin/Emby program selectors (#1185) (cecdecb)
- properly handle boolean Plex filters (#1186) (53307f8)
- remove erroneous flashing 0 when switching media sources (f075b15)
UI Changes
- add weekday headers to time slot scheduler (#1184) (caf4200)
- added sticky bar for programming selector actions (ac93725)
0.19.0 (2025-05-05)
⚠ BREAKING CHANGES
- properly scope Jellyfin/Emby requests to the auth'd user (#1163)
Features
- add safe title area indicator on watermark page (#1177) (474331e)
- improvements to restrict hours tool (#1165) (0065e2b), closes #1159
Bug Fixes
- always pass mediaSourceUuid for api clients created from sources (8c2653c)
- do not allow start time padding to skew (384ff75), closes #1175
- fix drawer subnav expansion (82ca195)
- fix erroneous "unsaved changes" warning on ffmpeg page (e5bd022)
- get all tests passing and fix db migration bug (c998163)
- improve Nvidia card name detection and debug output (0495023)
- properly scope Jellyfin/Emby requests to the auth'd user (#1163) (d9483f4)
- re-add program_external_id indexes, removed by mistake (d2338f7)
- remove unusable drag indicator in time slot table (541e650), closes #1158
- set recursive=true certain types of Jellyfin "libraries" (#1168) (8f81791)
- support Jellyfin mixed library types (#1171) (222b0bb)
0.18.20 (2025-04-17)
Bug Fixes
- disable filtering on non-library tabs (14b591c)
- fix weekly calendar view stack overflow error (c928bb8)
0.18.19 (2025-04-14)
Bug Fixes
- properly write m3u8 playlist string in response (83269d1)
0.18.18 (2025-04-14)
Bug Fixes
- fix updating plex play status during stream (f90f271)
- improve error logging and handling when HLS playlists are not found (a3e806c)
- properly detect when running in a Podman container (d53ec45), closes #1147
- redact errors to /Users call in JellyfinApiClient (5296259), closes #1136
- show delete confirmation before deleting a custom show (3dc56d6)
UI Changes
- calendar style tweaks (9917af9)
0.18.17 (2025-04-10)
Features
- add calendar views for channel programming (#1134) (8e8d10e)
- add flag for enabling trust proxy (#1140) (718af48)
- support in-order slot scheduling (#1132) (a8a5d52)
- support setting preferred theme setting to 'system' (#1137) (9ad0a9b)
Bug Fixes
- do not reset channel pagination state when data updates in background (40a5984)
- fix copy-to-clipboard links from top bar (424b494)
- fixes to rendering paused on-demand guides (1d67a3d)
- use correct state in dark mode selectors (b3217ba)
UI Changes
- fixes to colorization in dark mode (#1143) (f7dfe39)
- make settings link last in side drawer (a81c02e)
0.18.16 (2025-03-27)
Features
- ability to set the transcode output path (#1129) (539df9f)
- add system logs page (#1130) (c166acb)
- show channel active session indicator (#1123) (a60d200)
Bug Fixes
- convert 10-bit inputs to 8-bit before using overlay_cuda filter (#1125) (98d2070)
- guide/epg now accurately reflects state of on-demand channels (#978) (79c6a69)
- random slot schedule preset should set all relevant fields in form (9a4d67f), closes #1122
0.18.15 (2025-03-11)
Features
Bug Fixes
- re-add media_source unique index (d874b9b)
0.18.14 (2025-03-06)
Bug Fixes
- add indexes for external ids to improve various queries (91d654d)
- install ldid on binary build github action to properly codesign macos-arm binaries (e442e70)
0.18.13 (2025-03-03)
Features
- show version mismatch warning on frontend (4c534ce)
Bug Fixes
- fix ARM Docker builds; use the ARM executable artifact name (7d246f4)
- fix DB copy migrator on Windows (#1111) (e440380)
- properly regenerate relevant XMLTV bits when channel configs change (6ee1b1c)
- run Docker ARM builds on an ARM machine (#1107) (5086ae3)
- updating channel number properly refreshes XMLTV (4c40190)
0.18.12 (2025-02-27)
Features
Bug Fixes
- allow scheduling custom shows that contain the same programs (#1102) (ea78d1c)
- copy temp db file instead of renaming to avoid cross-link errors (c7a90f1)
- do not sort programs when block shuffling in random mode (e072e54)
- fix filler list delete confirmation dialog nav (651d236)
- handle case where initial DB migration was not run yet (70789ef)
UI Changes
- add breadcrumbs to transcode config page (95f4456)
0.18.11 (2025-02-16)
Features
- ability to set the server port in the UI (#1096) (3b65ccd)
- backend: support "append" parameter for programming lineup update requests (be55db2)
Bug Fixes
- fix legacy channel migrator to only insert channel filler shows if they exist (e184540)
- fix media_source insert query in legacy migrator to use correct index (aa069d3)
- remove Bun and rollback to Node 22.13.1 (#1095) (e803946)
Performance Improvements
UI Changes
- add data directory location to system status page (99c69b3)
0.18.10 (2025-02-12)
Features
- add support for older CPUs (pre-2013) on bun builds (066a538)
Bug Fixes
- fix docker build args for new baseline builds (deacd3d)
0.18.9 (2025-02-12)
Bug Fixes
- fix release builds for docker and simplify (41f0cee)
0.18.8 (2025-02-07)
Features
- add basic sorting tools for custom shows (#1079) (24e9e37)
- add separate system page with new system debug page (#1084) (03f6b78)
- show changelog on main page (#1081) (cee2c78)
Bug Fixes
- attach image to xmltv program entries (d039d45)
- disable limit on update/delete queries (#1077) (2b37fe0)
- fix copyToClipboard for xmltv/m3u links (again) (ff08303)
- fix typo in vacuum for new sqlite backup method (d648e1e)
- use fps_mode instead of vsync when specifying frame rate (3198481)
0.18.7 (2025-01-29)
Bug Fixes
- fix remote watermark local file caching (d726d51)
- properly create tunarr database directory on first run (db97e57)
- properly detect capability to encode 8-bit HEVC from vainfo (b645c88)
- properly inject program converter to programdb (cfc3127)
- use revision instead of last version for binary edge builds (0025bc6)
0.18.6 (2025-01-25)
Bug Fixes
- fix bundled build; apparently only works with a TS entrypoint with esbuild (3dcf327)
0.18.5 (2025-01-24)
Features
Bug Fixes
- actually bind the server (fb9abf0)
- display show name properly in RemoveShowsModal (b09ea55)
- potential fixes/workarounds for quicksync audio sync issues (#1069) (93141ba)
0.18.4 (2025-01-24)
Bug Fixes
- fix bad binding causing jellyfin stream injection failure (009f55a)
0.18.3 (2025-01-23)
Bug Fixes
- fix XMLTV to display show/artist title and not season/album (45455e2)
- fixes to displaying program title after #910 (c1e673d)
- more flexible positioning of alphanumeric filtering (3ab34d4), closes #1062
0.18.2 (2025-01-21)
Bug Fixes
- fix tunarr.bat hardcoded node version path (20c41f6)
0.18.1 (2025-01-21)
UI Changes
- fix betterHumanize duration function to handle >=1 days with <1 hours (6c07fe2)
0.18.0 (2025-01-19)
Features
- add new sort order options for slot scheduling (#1054) (d15e4e8)
- ffmpeg: add audio language preferences (#1046) (f0f78eb) - thanks @AugusDogus!
Bug Fixes
- always return channels even if they have no program associations (d41f81b)
- ensure Jellyfin password redaction works as expected (e717cac)
- fix selecting mpeg2video as a video format (a46cdd2)
- return filler lists in alphabetical order by name (51647ad)
0.17.5 (2025-01-16)
Bug Fixes
- add missing comma in ScaleQsvFilter (f5fa38d)
- av1 decoding support on new pipeline (#1053) (18d8363)
0.17.4 (2025-01-15)
Bug Fixes
- add default value to RandomSlot#durationSpec to fix JSON DB schema migration (c4944db)
- do not backtract first 30s of a program (3972b77)
- do not loop infinitely on invalid JSON schemas (eb61d59)
- use hardware pixel format before vpp_qsv filter (bbe6cd9)
UI Changes
- add "copy channel id to clipboard" button on channels table (16b6cfb)
0.17.3 (2025-01-13)
Bug Fixes
- fix audio + album cover streaming in new ffmpeg pipeline (0c32d99)
- fix audio + album cover streaming in new ffmpeg pipeline (#1048) (0c32d99)
- minor fixes for hls direct stream mode - still not very smooth (0c32d99)
- properly apply next state from decoder in qsv pipeline (3a8a8e7)
0.17.2 (2025-01-11)
Bug Fixes
- always specify an encoder in QSV pipeline (f964ce1)
- check for windows sooner when checking qsv/vaapi capabilities (d973630)
- fix m3u/xml copy to clipboard urls...again (f166552)
- remove erroneous channel transcode overrides (235d3e9)
- show redirect programming properly in xmltv (16eff87)
0.17.1 (2025-01-10)
Bug Fixes
- add "new" button for transcode configs (f7bca67)
- enable watermarks on new qsv ffmpeg pipeline (0260abc)
- handle 10-bit hevc in new qsv pipeline + other fixes (0260abc)
- use transcode configs where appropriate in new pipeline (0260abc)
0.17.0 (2025-01-10)
Features
- add "transcode configurations" (#1001) (b5a4fdf)
- implement existing program tools using random slots (#1041) (00fa4d4)
- improvements to random slot weighting (#1040) (4e7740b)
- re-implement random slot UI to match time slot UI (#1036) (8027f99)
- support for toggling between 12/24-hour time in UI (#1026) (891ed29)
- support HLS direct channel stream mode (#1029) (303964b)
Bug Fixes
- additional fix for square pixel calculation (df369f3)
- allow navigation to add more programs when there are unsaved programs (b7d05df)
- allow setting channel stream mode on initial creation (2f39648)
- always ensure a default transcode config exists via fixer (67d1acf)
- choose default/selected audio streams first (732e81d)
- copy full m3u url instead of just path (if backendUri is empty) (de5cd1d)
- cyclic shuffle now works with custom programs (1a106a4)
- default new channel start time to now (13db6ec)
- determine isAnamorphic via DAR/SAR; better square pixel size calculations (d3dd7e4)
- do not count initializing sessions in stale check (ca0ec6a)
- do not set channel start time when saving lineups (#1042) (4c96a24), closes #276
- fix default audio stream sort for boolean (b298be3)
- fix HLS direct mode when requested from an mpeg-ts wrapper stream (27ab7a8)
- fix Jellyfin HLS direct streams (84a8e63)
- fix JF streams + local watermark file inputs on legacy ffmpeg pipeline (c6d07c8)
- fix show sorting in cyclic shuffle (9122018)
- further delineate between selected and default audio streams for plex (43f9ffc)
- pick random start position for each group in cyclic shuffle (e2d6c03)
- set correct output pad size state in ScaleFilter (dea698c)
- use stream.selected over stream.default for plex audio streams (1a8afb6)
UI Changes
- move channel table actions column to first (dedb6e4)
0.16.13 (2024-12-18)
Bug Fixes
- display Plex playlists as its own library (#1018) (22849e9)
- fix issue where random slot do-not-pad could generate 0-duration flex programs (8abd3c8)
- improvements in handling fractional durations in scheduler (9f46d11)
0.16.12 (2024-12-13)
Bug Fixes
- fix channel_programs update query in updateLineup (ea73a5d)
- fix ProgramGroupingMinter to correctly assign type season for seasons instead of show (0b92fa3)
- re-enable fixers (3fab90f)
- request additional jellyfin user view types by default (a4cb229)
- time slots - always use the currently saved lineup state for slot generation (04e58b6)
0.16.11 (2024-12-11)
Bug Fixes
0.16.10 (2024-12-10)
Bug Fixes
- alphanumeric title filter should scroll with you (e5d10d0)
- properly handle redirects in scheduler (#1011) (e5d10d0), closes #1010
- use correct pixel formats when downloading from hardware (#1008) (828367c)
0.16.9 (2024-12-06)
Bug Fixes
- fix for plex channel auto-mapping update (3e48d6f)
- fix form state resetting in media source edit modals (236d819)
- properly treat yuv420p10le as 10-bit (f266fab), closes #1003
0.16.8 (2024-12-05)
Bug Fixes
- attempt to use default audio stream before others (aeee37b)
- fix display names in some clients (518d280)
- fixes for CUDA pipeline state management (#998) (bbb9f76)
- implement "slot pad" mode in random slots (#1000) (ec8b943)
0.16.7 (2024-12-02)
Bug Fixes
- add missing comma after setsar in ScaleVaapiFilter (3df4300)
- allow choosing channel redirects in time slots, regardless of current lineup (f6a127a)
- do not use default value for useNewPipeline query param in APIs (e086ef4)
- fix start time / pad precision for random slots (d4fa0af)
- implement intermittent watermarks in nvidia/vaapi ffmpeg pipelines (97123b9)
- infinite scroll on list view (#994) (85666c6)
- properly parse .env file in bundle script for edge builds (39e9d68)
- redirect time slots now take up the whole slot duration (38c03fc)
- set correct frame data location in HardwareDownloadFilter nextState (05fb6f2)
0.16.6 (2024-11-24)
Bug Fixes
- disable speed-dial when loading (#984) (b10925d)
- fix weekly timeslot scheduling (#992) (3597546)
- use stable ID when reporting Plex playback session status (#993) (b89dde9), closes #960
0.16.5 (2024-11-23)
Bug Fixes
- fix displaying weekly slot start times after save (67593ef)
- prevent multiple select alls duplicating selections (#986) (f3e0f2d)
- support more watermark options on new ffmpeg pipeline (#989) (12270ba)
- update language to make Name required when adding jellyfin server (#985) (433c6e3)
0.16.4 (2024-11-22)
Bug Fixes
- copy image uploads instead of rename, because we cant be sure of fs layout (8af83e7)
- pass correct pix_fmt to scale_cuda filter (#980) (d6448e2)
0.16.3 (2024-11-21)
Bug Fixes
- allow backdating channel start times (#979) (4d85e08)
- fix HLS concat on new FFmpeg pipeline (#976) (e2c9b51), closes #974
- slot time no longer resets day of week for weekly schedules (f2000fb)
- use form field array index and not table index for slot editing (dfaab86)
0.16.2 (2024-11-19)
chore
- release 0.16.2 (66552b6)
0.16.1 (2024-11-19)
Bug Fixes
- fix typo in kyseley-ported custom_show_content migration code (49d8b4c)
- fix weekly time slot editing and display (#970) (9280a7c)
UI Changes
0.16.0 (2024-11-18)
Features
Bug Fixes
- revert default "max days" to 365 for slots (ba8a19b)
0.15.10 (2024-11-13)
Bug Fixes
- account for weekly schedules when setting slot start time (5797001)
- chunk program grouping updates to avoid "too many sql variables" db error (98e7ade)
- ensure program grouping upserts stay within sql variable limits (#961) (57009a2)
- fix improper offsets for time slots (167f5e0)
- fix pagination for jellyfin (a8d7d33)
0.15.9 (2024-11-09)
Bug Fixes
- account for windows taskkill exits in FfmpegProcess (75e2a91)
UI Changes
0.15.8 (2024-11-09)
Bug Fixes
- re-enable custom shows in time slot editor (deae3de)
0.15.7 (2024-11-08)
Bug Fixes
- remove errant quote in windows process kill cmd (88e640b)
- resolve Jellyfin items when underlying file changes (#933) (d8b8e09)
- use Windows-specific task kill command as .kill() doesnt seem to work (0f5b437)
Performance Improvements
UI Changes
- add clear all button to timeslots page (0bae6e6)
- flush load items (#948) (c86dd6a)
- simplify time slot page title (d59df21)
0.15.6 (2024-11-07)
Bug Fixes
- improve image caching logic (859f679)
- never clear, and always update, program relations on upsert (86c5330)
0.15.5 (2024-11-05)
Bug Fixes
- do not remove scheduling configurations when adding new programs (#936) (d18e99d), closes #934
- fix deleting filler shows using new db code (95bf2b3)
- fix passing arguments to standalone script files (#939) (82b2a2c)
- reference correct table in channel_filler_show filler_show_uuid foreign key (a3539ed), closes #931
- uploads can just be renamed from saved temp path (af14be1), closes #932
0.15.4 (2024-11-02)
Bug Fixes
- do not attempt to upgrade plex rating key for jellyfin items (a406bde)
- fix for updateProgramPlexRatingKey return query (40c73c2)
- fix the build (6eab3fb)
0.15.3 (2024-11-02)
Bug Fixes
- fix updating channels (01fb70d)
- run enabled backup jobs once immediately when enabled (#926) (2ffa2cc), closes #923
0.15.2 (2024-11-01)
Bug Fixes
- fix conditional index conditions in new migrations (cb939ca)
0.15.1 (2024-10-31)
Bug Fixes
- program_grouping_external_id.external_source_id is nullable (e31f5c3)
0.15.0 (2024-10-31)
Bug Fixes
- can't use chain in shared lib either because it gets bundled into server (59c2ead)
- fix "specials" creating wrong XMLTV (ce6b3d9), closes #666
- handle undefined durations from Plex (#912) (ea163ee)
- show edge commit in tunarr version for edge builds (c3f04cd)
Miscellaneous Chores
- release 0.15.0 (1555d38)
0.14.2 (2024-10-24)
Bug Fixes
- fix playing Video-type Jellyfin streams (#902) (68670f8)
- fix plex auto-channel mapping update (70ecd00)
- fix VAAPI rendering (#884) (e8a5656)
- handle more Jellyfin item types in program selector (#883) (1f2d963)
- persist channel table page state across nav (#894) (3e5e42a), closes #888
- properly clear m3u cache when channels change (#895) (5bdc92b)
0.14.1 (2024-10-21)
Bug Fixes
- fix ffmpeg path normalization for Windows (5adf769)
- increase exp backoff factor for HLS sessions; theoretical max wait of ~2mins (d272d21)
- remove uuid format requirement from some Jellyfin types (1ced59f)
0.14.0 (2024-10-21)
Features
Bug Fixes
- fix channel deletes when channel is associated with fillers (#889) (83126c8)
- mitigate RCE vulneratbility (#892) (4570b08)
0.13.2 (2024-10-16)
Bug Fixes
- correct conditional for adding reconnect settings (8c94af4)
- differentiate file/http stream source inputs (#873) (fc836b8)
- mark addedAt field as optional in all Plex types (#874) (f68e89f), closes #863
- properly calculate filler show content counts (#881) (11abbc1), closes #872
- use window location for base URL in m3u clipboard copy when backend url is empty (#880) (a99d3ca), closes #878
0.13.1 (2024-10-15)
Bug Fixes
- accept array type in Jellyfin API items extraFields query param (f511edd)
- accept array type in Jellyfin items API endpoint (edbef2b)
- correctly handle error streams in default HLS mode (#867) (4f3ae86)
- handle ffmpeg "unknown" version on welcome screen (a134cab)
0.13.0 (2024-10-14)
⚠ BREAKING CHANGES
- use new, segmeneted channel IDs in xmltv as wordaround for Plex guide bug (#855)
Features
Bug Fixes
- convert 10-bit inputs to 8-bit for non-supported NVDA+format combos (#765) (d02b834)
- fix on-demand channel pause times when watching mpeg-ts streams (2bececf)
- reimplement BackfillProgramGroupings fixer (#864) (0dd8dbc)
- temporarily raise the body limit for channel lineup updates (b062dbe)
- use new, segmeneted channel IDs in xmltv as wordaround for Plex guide bug (#855) (9e10d78)
- use proper m3u links in frontend (#854) (accb0d7)
- use req.host instead of req.hostname because it includes port (3acca8e), closes #861
- wait on other transactions just in case (#866) (c5d82a5)
0.12.4 (2024-10-09)
Bug Fixes
- allow setting ffprobe path instead of deriving it (#842) (5771238)
- fix web video player (5ff85f5)
- mark 1900/udp as exposed in Dockerfile for UDP server (HDHR auto-discovery) (4638c70)
- remove eventual consistency for program_grouping upserts (#843) (d83113b), closes #825
0.12.3 (2024-10-02)
Bug Fixes
- always output yuv420p pixel format (for now) (4548a3a)
- external watermark loading fixes (e324bac)
- handle Windows ffreport paths (70f1f9b)
- properly construct program set before saving slot schedules (ac3f84a)
- remove duplicates before running block shuffler (9816749)
- try a different file path pattern for FFREPORT on Windows (4675ec1)
0.12.2 (2024-09-30)
Bug Fixes
- improvements to session error state handling / cleanup (550846e)
- include Client authorization value in Jellyfin auth header (803faf8)
- mark plex video frame rate field as optional (9307a18), closes #819
0.12.1 (2024-09-30)
Bug Fixes
- bail on HLS stream wait if an error occurred on startup (0a611c3)
- server: properly close event channels on server shutdown (b7b2be6)
- server: use existing mappings in BackfillProgramGroupings fixer (b7b2be6)
- treat video stream indexes as absolute (d7f65ca)
- web: ability to perfectly loop block shuffled shows + other block shuffle fixes (b7b2be6)
0.12.0 (2024-09-27)
Features
- improved program tools around balancing / block scheduling (#802) (bd65de4)
- introduce new default HLS stream mode (#780) (6e66cfe)
- use local file path for plex/jellyfin media if it exists (#806) (11ca353), closes #804
Bug Fixes
- attempts to improve stream stability for mpegts streams (#801) (ecaddb5)
- do not set programming selector viewType to null (#812) (37a9fe7), closes #808
- empty backendUri in general settings is allowed to be empty (#811) (0924b63), closes #747
- ensure all tokens are redacted from ffmpeg args, not just the last (e406cfa)
- ensure readahead works for audio+album art and offline streams (f2f3053)
- fixes for static image streams for offline mode (d8238cc)
- handle multiple error events from sessions (5dfa18f)
- improvements to stream error and end handling (d8238cc)
- make link to ffprobe in Docker image (4111106)
- only use reconnect parameters when input source is http(s) (d8238cc)
- properly reset general form setting values (51bc998)
- revert change to m3u generation -- use ts stream always until we have separate endpoints (52ebc71)
- use channel's configured streamMode in m3u file; still use mpegts for HDHR (d8238cc)
- use new mpegts path in hdhr lineup json generation (#799) (18592d0)
- use new mpegts path in m3u generation (#798) (e31333a)
0.11.0 (2024-09-23)
Features
- add option to use show's poster instead of episode poster (4f661d5), closes #655
- parity: support custom shows in time/random slots (24b5a97), closes #785
Bug Fixes
- calcuate channel list runtime by selected programs (24b5a97), closes #786
- hide image cache settings in xmltv as the feature is currently disabled (4f661d5)
- simplify query in BackfillProgramGroupings fixer which could cause OOMs (29956a8), closes #788
- simplify query in BackfillProgramGroupings fixer which could cause OOMs (#789) (fd36e38)
- use correct timezone for start time in random slot editor (24b5a97)
- use program_grouping.uuid value as slot program showId, rather than show title (#792) (24b5a97)
0.10.4 (2024-09-21)
Bug Fixes
- listen on all interfaces (0.0.0.0) by default (aeddfd5), closes #777
- listen on all interfaces (0.0.0.0) by default (#778) (f093bc2)
- macos packaging script pointed to wrong file (57c02a5)
- plex playlist children now load in list view (5f06ae0), closes #782
- plex playlist children now load in list view (#783) (f9fdaff)
0.10.3 (2024-09-13)
Bug Fixes
- do not block navigation on time slot editor page after successful save (a5731cf)
- properly adjust for timezones in time slot generation/preview (60f0664)
0.10.2 (2024-09-12)
Bug Fixes
- ensure that latest tags receive hwaccel build suffix (9c2e806)
0.10.1 (2024-09-12)
Bug Fixes
- sessions unable to start after cleaned up (b84df2f)
- track channel menu open state per-channel (2b0a30b)
- use location.reload over resetRoute until we properly setup error boundaries (4e44839)
0.10.0 (2024-09-10)
Features
- enable drag'n'drop on custom show page editor (7c46753)
- major streaming overhaul (#749) (5ef1fc8)
- support movies and custom shows in block shuffle (c74ba91)
Bug Fixes
- add more structure around sensitive info redaction (deb8319), closes #732
- add more structure around sensitive info redaction (#764) (dfa0820), closes #732
- artificial readrate burst now returns the correct duration for the HLS session (f47da60)
- do not add flex program when channel lineup is cleared (49253fc), closes #745
- do not include width for icons if it is <=0 (#750) (e4d4ef8)
- fix custom shows in programming selector (4be7c34)
- provide hardcoded width for invalid thumb widths in XMLTV (#753) (bd40f53)
- remove unnecessary left margin from main content on mobile (3f4c380)
- return custom show programs sorted by index asc (05e1db3)
- run session cleanup job every minute now that we are defaulting to session based streams (165327f)
- set video stream index to account for files with >1 video stream (065f87c), closes #758
- use correct stream duration value for Plex/Jellyfin streams (8d559b7)
- use stream end event in order to remove session token (4094dd9)
0.9.1 (2024-08-31)
Bug Fixes
- transitions between offline still images and video streams resulted in garbled audio (#739) (ec665e2)
0.9.0 (2024-08-29)
Features
Bug Fixes
- ensure server-scoped Jellyfin API tokens always make requests with user ID (#729) (78cef1e)
- ensure that server URLs include http/https protocol (#722) (3dbc0cd)
- remove programs with invalid duration before saving lineup (#730) (51ceb2b)
- use Jellyfin authorization scheme over X-Emby-Token header (#723) (a5f97fd)
0.8.1 (2024-08-26)
Bug Fixes
- create temp backup of channel_programs table during migration so references are not deleted (2d3ff83)
0.8.0 (2024-08-25)
⚠ BREAKING CHANGES
- add support for Jellyfin media (#633)
Features
- add support for Jellyfin media (#633) (f52df44), closes #24
- support leading/trailing edge configuration for intermittent watermarks (#704) (ba2ec87), closes #672
Bug Fixes
- custom show editor style and behavior should match fillers (#715) (b834e1a)
- default fallback image not rendered properly in UI (#709) (c5d9f43)
- defer foreign keys in Jellyfin migration due to self-referencing tables (9462432)
- edited new filler list name reverted after adding programming (#711) (40f1776), closes #705
- generalize media source connection on welcome and settings pages (#701) (bb1a17f)
0.7.0 (2024-08-21)
Features
- add FWVGA (16:9, 480p) and WVGA (15:9, 480p) resolution options (#694) (5d24059), closes #693
- convert filler/custom show tables to Tanstack table (#697) (dc5e346)
- replace simple tables in UI with more powerful tanstack table (#684) (f531b3c)
0.6.0 (2024-08-19)
Features
Bug Fixes
- make all parent/grandparent plex fields optional (#686) (dc29742), closes #683
- various fixes to channel edit form (#689) (c9784c8)
0.5.4 (2024-08-13)
Bug Fixes
- do not use RouterLink for m3u link on guide page (8b59a56)
0.5.3 (2024-08-13)
Bug Fixes
- change default watermark preview image URL to use configured (12ff270)
- channel intermittent watermark default state should be intiialized (f11e8cf)
- macos entrypoint script can be executed anywhere (#669) (6d505e9), closes #668
- marks PlexTvShowSchema#Country as optional, like other Plex media Country fields (#674) (d112c3d), closes #670
0.5.2 (2024-08-06)
Bug Fixes
- fix sql query error when querying channel fallback programs (#661) (16cd085), closes #660
- mpegts streams now work even if any HLS streams were started prior (#663) (d77b0e0), closes #662
0.5.1 (2024-08-05)
Bug Fixes
0.5.0 (2024-08-04)
Features
Bug Fixes
- do not double suffix docker image tags for latest (8501eca)
0.4.2 (2024-08-04)
⚠ BREAKING CHANGES
- use OS-specific, stable path for default Tunarr data directory (#643)
Features
- ability to manually add Plex servers (#622) (7027efc)
- add ARM builds (#618) (c2d5a66)
- implement on-demand channels (#613) (13fe504), closes #612
- support for intermittent watermarks (#644) (9b490b2), closes #492
- support setting opacity on channel watermarks (#621) (9480aa2), closes #615
- use OS-specific, stable path for default Tunarr data directory (#643) (1c56752), closes #620
- web: display channel duration and program count on channels page (#617) (7564a4b)
Bug Fixes
- ambiguous column error when selecting all filler shows (#635) (ddb0723), closes #634
- cannot use createRequire in web-module; move version function to server (#641) (7175f15)
- default disableChannelOverlay to false (df8192b)
- define platforms for docker edge build workflow (a1ad921)
- do not double suffix docker image tags for latest (8501eca)
- double star for tag event? (2d0fce1)
- navigation blocker appeared after channel update (#645) (a2809d8)
- new custom show programming button led to wrong path (#647) (554a003)
- properly save filler list / channel associations (#610) (017eca5)
- single edge build failure should not affect other builds (d8840ac)
- tag matching in docker release; remove quote and semver specific (0c45071)
- Use inputted name for new filler lists (38f76d1)
- use PAT for release-please so tag pushes trigger releases (f8f524d)
- workaround for macOS binary release (#608) (8b8f6f8)
Miscellaneous Chores
0.4.2 (2024-08-04)
⚠ BREAKING CHANGES
- use OS-specific, stable path for default Tunarr data directory (#643)
Features
- ability to manually add Plex servers (#622) (7027efc)
- add ARM builds (#618) (c2d5a66)
- implement on-demand channels (#613) (13fe504), closes #612
- support setting opacity on channel watermarks (#621) (9480aa2), closes #615
- use OS-specific, stable path for default Tunarr data directory (#643) (1c56752), closes #620
- web: display channel duration and program count on channels page (#617) (7564a4b)
Bug Fixes
- ambiguous column error when selecting all filler shows (#635) (ddb0723), closes #634
- cannot use createRequire in web-module; move version function to server (#641) (7175f15)
- default disableChannelOverlay to false (df8192b)
- define platforms for docker edge build workflow (a1ad921)
- double star for tag event? (2d0fce1)
- navigation blocker appeared after channel update (#645) (a2809d8)
- new custom show programming button led to wrong path (#647) (554a003)
- properly save filler list / channel associations (#610) (017eca5)
- single edge build failure should not affect other builds (d8840ac)
- tag matching in docker release; remove quote and semver specific (0c45071)
- Use inputted name for new filler lists (38f76d1)
- use PAT for release-please so tag pushes trigger releases (f8f524d)
- workaround for macOS binary release (#608) (8b8f6f8)
Miscellaneous Chores
0.4.1 (2024-08-03)
Bug Fixes
- navigation blocker appeared after channel update (#645) (a2809d8)
- new custom show programming button led to wrong path (#647) (554a003)
0.4.0 (2024-08-03)
⚠ BREAKING CHANGES
- use OS-specific, stable path for default Tunarr data directory (#643)
Features
Bug Fixes
Miscellaneous Chores
- manual release (356249c)
0.3.2 (2024-07-24)
Bug Fixes
0.3.1 (2024-07-17)
Bug Fixes
- use PAT for release-please so tag pushes trigger releases (f8f524d)
0.3.0 (2024-07-17)
Features
- ability to manually add Plex servers (#622) (7027efc)
- add ARM builds (#618) (c2d5a66)
- implement on-demand channels (#613) (13fe504), closes #612
- support setting opacity on channel watermarks (#621) (9480aa2), closes #615
- web: display channel duration and program count on channels page (#617) (7564a4b)
Bug Fixes
- default disableChannelOverlay to false (df8192b)
- define platforms for docker edge build workflow (a1ad921)
- double star for tag event? (2d0fce1)
- properly save filler list / channel associations (#610) (017eca5)
- single edge build failure should not affect other builds (d8840ac)
- tag matching in docker release; remove quote and semver specific (0c45071)
- Use inputted name for new filler lists (38f76d1)
- workaround for macOS binary release (#608) (8b8f6f8)