Health Checks

Check Message

Full changelog is available on GitHub

Release Notes

Added

  • Channel stream selector: add zero-based culture-specific day_of_week to content_condition, for example:
    • en-US can match sunday using day_of_week = 0
    • fr-FR can match sunday using day_of_week = 6
    • As a complete example, to match Saturday from 9pm (inclusive) to 11pm (exclusive), based on content start time
      • content_condition: day_of_week = 6 and (time_of_day_seconds >= 75600 and time_of_day_seconds < 82800)
  • Add Pad Mode to ffmpeg profile. Options are:
    • Hardware If Possible - default/existing behavior when hardware acceleration is properly configured
    • Software - force software padding
      • This can be used to work around buggy GPU driver behavior where padding is green instead of black
      • This is most often seen with VAAPI acceleration (radeonsi or i965 drivers)
  • Add API endpoint to clean artwork cache folder (on demand)
    • POST /api/maintenance/clean_artwork
  • Add health check to warn about unsupported empty (classic) schedules
  • Add health check to warn about incompatible ffmpeg due to missing filters
    • This is directly applicable to homebrew ffmpeg on MacOS, which is no longer compatible with ErsatzTV
      • ffmpeg@7 or ffmpeg-full should be used instead
  • Add Marathon Group By option Director
    • This groups the first director on Movies, Episodes, Music Videos and Other Videos
    • This is supported in classic schedules and sequential schedules
  • Add FFmpeg Profile options:
    • Normalize Audio (default: true) - normalizes audio streams, or stream copies when disabled
    • Normalize Video (default: true) - normalizes video streams, or stream copies when disabled
    • Normalize Colors (default: true) - normalizes color parameters when enabled
    • Disabling any of these options may have a significant performance benefit at the expense of stream stability
  • Add chapter title to filler expression
    • This can be used to include or exclude chapters with specific (case-insensitive) titles
    • E.g. title == 'here', title != 'not here', title like '%here%'
  • Local movie libraries: load fanart from backdrop files (created by Jellyfin)

Changed

  • Disable automatic artwork database cleanup
    • This will be re-enabled at some point in the future (after more testing)
    • For now, the API should be used to clean as needed
  • Classic Schedules: make multiple count an expression
    • The following parameters can be used:
      • count: the total number of items in the collection
      • random: a random number between zero and (count - 1)
    • For example:
      • count / 2 will play half of the items in the collection
      • random % 4 + 1 will play between 1 and 4 items
      • 2 (similar to before this change) will play exactly two items

Fixed

  • Use code signing on all Windows executables (ErsatzTV-Windows.exe, ErsatzTV.exe, ErsatzTV.Scanner.exe)
  • Graphics engine:
    • Respect z_index (draw order) on all graphics element types
    • Fix bug with z_index sorting
  • Restore default UI font that was erroneously removed in v26.1.1
  • Classic schedules: fix building playouts when Fill With Group Mode schedule items also have graphics elements
  • Use configured searching log level on startup, instead of the default log level of Information
  • MySql: fix searching for shows and seasons in schedule items editor
  • Fix 500 errors when serving XMLTV due to concurrent file reads and writes
  • Fix playback of AC3 audio when targeting stereo output and input layout changes mid-stream
  • Use other video artwork in XMLTV template
  • Properly update (add or remove) artwork for all local media libraries when files have changed
  • Sync Plex library name changes
  • Sync Plex episode title, plot, year, date added, release date, episode number changes
  • Sync Jellyfin and Emby library name and type changes
    • Library type (movies, shows) can only be changed when synchronization is disabled for the library in ETV
  • Fix some sequential and scripted playout build failures when using playlists or marathons
  • Fix erasing playout items and history so all related data is also erased
    • This includes rerun history, unscheduled gaps, build status
  • Fix indexing collections when using Elasticsearch backend
An error has occurred. This application may no longer respond until reloaded. Reload 🗙