Release Notes
Added
- Add
show_studioandshow_content_ratingto search index for seasons and episodes - Add two new global subtitle settings:
Use embedded subtitles- Default value:
true - When disabled, embedded subtitles will not be considered for extraction (text subtitles), or playback (all embedded subtitles)
- Default value:
Extract and use embedded (text) subtitles- Default value:
false - When enabled, embedded text subtitles will be periodically extracted, and considered for playback
- Default value:
- Add
sub_languageandsub_language_tagfields to search index - Add
/iptvrequest logging in its own log category at debug level - Add channel guide (XMLTV) template system
- Templates should be copied from
_channel.sbntxt,_movie.sbntxt,_episode.sbntxt,_musicVideo.sbntxt,_song.sbntxt, or_otherVideo.sbntxtwhich are located in the config subfoldertemplates/channel-guide- Copy the file, remove the leading underscore from the name, and only make edits to the copied file
- The default templates will be extracted and overwritten every time ErsatzTV is started
- The templates use scribian template syntax
- The templates contain comments describing which fields are available for use in the templates
- Templates should be copied from
- Add experimental and incomplete
Imageslibrary kind- Image libraries have fallback metadata added like Other Video libraries (every folder is a tag)
- Image library items currently default to a duration of 15 seconds
- The
Media>Imagespage can be used to configure image durations at a folder level - Child folders with unset durations will inherit the closest ancestor's duration
- The
- Add experimental new streaming mode
HLS Segmenter V2- In my initial testing, this streaming mode produces significantly fewer playback warnings/errors
- If it tests well for others, it may replace the current
HLS Segmenterin a future release
- Add setting to change XMLTV data from
Localtime zone toUTC- This is needed because some clients (incorrectly) ignore time zone specifier and require UTC times
- Support
.ogvvideo files in local libraries
Fixed
- Fix antiforgery error caused by reusing existing browser tabs across docker container restarts
- Data protection keys will now be persisted under ErsatzTV's config folder instead of being recreated at startup
- Fix bug updating/replacing Jellyfin movies
- A deep scan can be used to fix all movies, otherwise any future updates made to JF movies will correctly sync to ETV
- Automatically generate JWT tokens to allow channel previews of protected streams
- Fix bug applying music video fallback metadata
- Fix playback of media items with no audio streams
- Fix timestamp continuity in
HLS Segmentersessions- This should make some clients happier
- Fix
Other Video,SongandImagefallback metadata tags to always include parent folder (folder added to library) - Allow playback of items with any positive duration, including less than one second
- Fix VAAPI transcoding of OTA content containing A53 CC data
- Fix AV1 software decoder priority (
libdav1d,libaom-av1,av1) - Fix some stream failures caused by loudnorm filter
- Fix multi-collection editor improperly disabling collections/smart collections that haven't already been added to the multi-collection
- Fix path replacement logic when media server paths use inconsistent casing (e.g.
\\SERVERNAMEAND\\ServerName) - Fix many search queries, including actors with the name
Will - Fix sqlite
database is lockederror that would crash ETV on startup after search index corruption - Fix bug where replacing files in Plex would be missed by subsequent ETV library scans
- This fix will require a one-time re-scan of each Plex library in full
- After the initial full scan, incremental scans will behave as normal
- Fix edge case where some local episodes, music videos, other videos, songs, images would not automatically be restored from trash
- Fix
MPEG-TSplayback when JWT tokens are enabled for streaming endpoints
Changed
- Log search index updates under scanner category at debug level, to indicate a potential cause for the UI being out of date
- Batch search index updates to keep pace with library scans
- Previously, search index updates would slowly process over minutes/hours after library scans completed
- Search index updates should now complete at the same time as library scans
- Do not unnecessarily update the search index during media server library scans
- Use different library for reading song metadata that supports multiple tag entries
- Update
/iptvrouting to make UI completely inaccessible from that path prefix - Use CUDA 11 instead of CUDA 12 in NVIDIA docker image to significantly lower required driver version
- Allow block durations with 5-minute increments (e.g., 5 min, 10 min, 15 min, etc.)