Health Checks
Check Message

Release Notes

Added

  • Add Active Date Range to block playout template editor to allow limiting templates to a specific date range
    • This is year-agnostic, meaning the Month/Day range will apply to every year
    • This also supports wrapping the end of the year (e.g., start 12/1 and end 1/15)
  • Add new Deco system for "decorating" channels with non-primary content
    • Decos currently contain
      • Watermarks
      • Dead Air Fallback (i.e. fallback filler)
    • Similar to blocks, decos have deco groups for organization
    • Similar to blocks, decos have deco templates for filling a "day" with decos
    • In the playout template editor, playout template items can have both a block template and a deco template
      • This allows watermarks and dead air fallback to change at different times than primary content
    • Block playouts can also have a default deco
      • This will apply whenever a deco template is missing, or when a deco template item cannot be found for the current time
      • Effectively, this sets a default watermark and dead air fallback for the entire playout
  • Add XMLTV Days To Build setting, which is distinct from the existing Playout Days To Build setting
    • The value for XMLTV Days To Build cannot be larger than Playout Days To Build
    • This allows, for example, a week of playout data while optimizing XMLTV data to only a day or two
  • Add health check to detect config folder issue on MacOS
    • ETV versions through v0.8.4-beta (using dotnet 7) stored config data in $HOME/.local/share/ersatztv
    • ETV versions starting with v0.8.5-beta (using dotnet 8) store config data in $HOME/Library/Application Support/ersatztv
    • If a dotnet 8 version of ETV has NOT been launched on MacOS, it will automatically migrate the config folder on startup
    • If a dotnet 8 version of ETV has been launched on MacOS, a failing health check will display with instructions on how to resolve the config issue to restore data
  • Add Video Profile setting to FFmpeg Profile editor when h264 format is selected
  • Add Video Preset setting to FFmpeg Profile editor for some combinations of acceleration and video format:
    • Nvenc / h264
    • Nvenc / hevc
    • Qsv / h264
    • Qsv / hevc
    • None / h264
    • None / hevc
  • Add experimental list type Playlist
    • Playlists contain an ordered list of:
      • Collections
      • Multi-Collections
      • Smart Collections
      • TV Shows
      • TV Seasons
      • Artists
      • Movies
      • Episodes
      • Music Videos
      • Other Videos
      • Songs
      • Images
    • Playlists can be added to schedules as a schedule item
    • Each time through the playlist, one item will be scheduled from each playlist item (if Play All is unchecked)
      • NB: This does not mean every collection will always schedule one item; the normal flood playout restrictions like duration and fixed start times still apply here
    • If Play All is checked, that playlist item will play all of its items each time through the playlist
      • This can be helpful if you want to play entire collections in a specific order, e.g.
        • Every episode from Show 1 Season 2
        • Every episode from Show 2 Season 3
        • Every episode from Show 1 Season 3
    • Playlist items with fewer media items will be re-shuffled (if applicable) before those with more media items
  • Add two new environment variables to customize config and transcode folder locations
    • ETV_CONFIG_FOLDER
    • ETV_TRANSCODE_FOLDER
  • Add checkbox to allow use of B-frames in FFmpeg Profile (disabled by default)

Fixed

  • Fix some cases of 404s from Plex when files were replaced and scanning the library from ETV didn't help
  • Fix more wildcard search phrase queries (when wildcards are used in quotes, like title:"law & order*")
  • Fix non-wildcard simple queries when asterisks are used in quotes, like title:"m*a*s*h"
  • Fix bug where channels would unnecessarily wait on each other
    • e.g. in-progress streams would delay responding with a playlist when new streams were starting
  • Update Plex show title in ETV when changed in Plex
  • Reindex seasons and episodes when show is updated from media server
    • This is needed to keep show_* tags accurate in the search index (e.g., show_title, show_studio)
  • Fix external subtitle detection to support forced/sdh subtitles with language tag before and after forced/sdh tag:
    • Something.forced.en.srt
    • Something.sdh.en.srt
    • Something.en.forced.srt
    • Something.en.sdh.srt
  • Fix playback from Jellyfin 10.9 by allowing playlist HTTP HEAD requests
  • Fix HLS Segmenter V2 segment duration (previously 10s, now 4s)
  • Fix HLS Segmenter V2 error video generation
  • Fix MySql database migrations
  • Fix Plex library scans with MySql/MariaDB
  • Fix block playout playback when no deco is configured
  • Fix HLS Segmenter V2 to delete old segments (use less disk space while channel is active)
  • Fix template and deco template editors to prevent items that go beyond midnight
  • Fix block playout random seeds
    • Different blocks within a single playout will now correctly use different random seeds (shuffles)
    • Erasing block playout history will also generate new random seeds for the playout
  • Fix building playouts that use mid-roll filler and have content without chapter markers
    • When this happens, mid-roll will be treated as post-roll
  • Fix VAAPI decoder capability check
    • This caused some streams to incorrectly use software decoding
  • Fix scheduling loop/failure caused by some duration schedule items
  • Fix video_bit_depth search field for Plex media
  • Fix template and deco template editors with MariaDB/MySql backend
  • Fix transcoding 10-bit source content using QSV acceleration on Windows

Changed

  • Show health checks at top of home page; scroll release notes if needed
  • Improve HLS Segmenter V2 compliance by:
    • Serving fmp4 segments when hevc video format is selected
      • 1.5. The container format for HEVC video MUST be fMP4.

    • Using accurate BANDWIDTH value in multi-variant playlist
    • Using proper MIME types for statically-served .m3u8 and .ts files
    • Serving playlists with gzip compression
  • Use HLS Segmenter V2 for channel preview when channel is configured for HLS Segmenter V2
  • Detect and use /dev/dri/card* devices in addition to /dev/dri/render* devices
  • Change default folder locations in docker using new environment variables
    • ETV_CONFIG_FOLDER - now defaults to /config
    • ETV_TRANSCODE_FOLDER - now defaults to /transcode
    • If the old locations are still present in docker, these variables will be ignored, so you can migrate at your own pace
      • Old config location: /root/.local/share/ersatztv
      • Old transcode location: /root/.local/share/etv-transcode

Full changelog is available on GitHub

An error has occurred. This application may no longer respond until reloaded. Reload 🗙