Blueskies278 81 Posted July 11 Posted July 11 (edited) Currently Alpha, Not Yet Released If you're outside the US, you've probably noticed some shows appear in your Upcoming/Latest lists a day early (or late) — a show airing at 8–10pm US Eastern actually lands in the early hours of the next day in UK/European time, but Emby often shows the raw US broadcast date instead. I originally built this as a standalone Docker container/script. After 3 months of testing ironing out the bugs, I decided it was worth turning into a proper Emby plugin so it's easier to set up and run natively. I'm now running the plugin version on my UGEEN iDX6011 Pro through about 4 weeks of real-world testing before considering a beta release. If there's genuine interest, I'll release the first beta once testing wraps up — just wanted to gauge interest and share what's coming. Air Date Fixer corrects this automatically, using Trakt's timezone-aware broadcast schedule data: Pulls each show's real broadcast timezone and converts it properly to your own local date Only touches US/Canada-broadcast shows — everything else is left untouched Works across three levels: episodes you already have files for, episodes already in your library without files yet, and future/upcoming episodes that only exist in cached metadata (so it also fixes what shows up under "Yesterday"/upcoming date headings, not just episode detail pages) Runs automatically in the background — no manual scripts or cron jobs needed Self-heals if Emby's own metadata refresh reverts a date Requires a (free) Trakt account and API app (no VIP needed) — this is needed because Trakt is the only source that tells the plugin what time of day and timezone a show actually airs in (e.g. "8pm US Eastern"), which is the missing piece needed to work out whether it lands on a different calendar day once converted to your local time. Metadata sources like TMDB only give a plain date with no time/timezone attached, so there's nothing there to calculate the correction from. Edited July 11 by Blueskies278 1
sh0rty 767 Posted July 15 Posted July 15 Really interested. The upcomng section for non US users was always bothering me. There was a project almost a decade ago that replaced US airdates with european ones, but it unfortunately died. 1
Blueskies278 81 Posted July 15 Author Posted July 15 9 hours ago, sh0rty said: Really interested. The upcomng section for non US users was always bothering me. There was a project almost a decade ago that replaced US airdates with european ones, but it unfortunately died. The date issues for non-US users also bothered me. Air Date Fixer is created from the ground up. The Alpha plugin is about 97% done, just a few more tweaks. 1
Blueskies278 81 Posted July 19 Author Posted July 19 I’ve encountered a significant bug that requires a full rebuild. I apologize for the delay and will keep you updated on our progress. 1
Blueskies278 81 Posted yesterday at 08:07 AM Author Posted yesterday at 08:07 AM (edited) Please note that Alpha 1 is in very early development. Unfortunately, it's only compatible with Emby Server version 4.9.5.0. While I haven't encountered any issues with Alpha 1, there may be many bugs you might encounter with your setup. Please use with caution. I'm currently working on a more robust version of the Air Date Fixer plugin, and it's looking very promising so far. EmbyAirDateFixer.dll Edited yesterday at 09:56 AM by Blueskies278
sh0rty 767 Posted 9 hours ago Posted 9 hours ago (edited) OK, I set everything up. But thhe Plugin does not work on my system. Airdates in TV Show Forecast did not change. 2026-07-27 11:26:21.347 Error App: [AirDateFixer] Failed to write external token backup to 'C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata\plugins\AirDateFixerBackup' - fresh-install self-healing will not work until this path is writable *** Error Report *** Version: 4.9.5.0 Command line: C:\Users\blingbling\AppData\Roaming\Emby-Server\system\EmbyServer.dll -service Operating system: Microsoft Windows 10.0.26200 OS/Process: x64/x64 Framework: .NET 8.0.27 Runtime: C:/Users/blingbling/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll Processor count: 4 Data path: C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata Application path: C:\Users\blingbling\AppData\Roaming\Emby-Server\system System.UnauthorizedAccessException: System.UnauthorizedAccessException: Access to the path 'C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata\plugins\AirDateFixerBackup' is denied. at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode) at System.IO.File.WriteToFile(String path, FileMode mode, String contents, Encoding encoding) at EmbyAirDateFixer.TraktEntryPoint.SaveTokens(TokenData tokens) Source: System.Private.CoreLib TargetSite: Microsoft.Win32.SafeHandles.SafeFileHandle CreateFile(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, System.IO.FileOptions) 2026-07-27 11:26:21.347 Info App: [AirDateFixer] === LoadOrSeedTokens returned: non-null === 2026-07-27 11:26:21.347 Info App: [AirDateFixer] Starting refresh. Target timezone: W. Europe Standard Time 2026-07-27 11:26:21.902 Error App: [AirDateFixer] Failed to fetch episode from https://api.trakt.tv/shows/agatha-all-along/next_episode?extended=full *** Error Report *** Version: 4.9.5.0 Command line: C:\Users\blingbling\AppData\Roaming\Emby-Server\system\EmbyServer.dll -service Operating system: Microsoft Windows 10.0.26200 OS/Process: x64/x64 Framework: .NET 8.0.27 Runtime: C:/Users/blingbling/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll Processor count: 4 Data path: C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata Application path: C:\Users\blingbling\AppData\Roaming\Emby-Server\system System.Text.Json.JsonReaderException: System.Text.Json.JsonReaderException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0. at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes) at System.Text.Json.JsonDocument.Parse(ReadOnlySpan`1 utf8JsonSpan, JsonReaderOptions readerOptions, MetadataDb& database, StackRowStack& stack) at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 utf8Json, JsonReaderOptions readerOptions, Byte[] extraRentedArrayPoolBytes, PooledByteBufferWriter extraPooledByteBufferWriter) at System.Text.Json.JsonDocument.ParseAsyncCore(Stream utf8Json, JsonDocumentOptions options, CancellationToken cancellationToken) at EmbyAirDateFixer.TraktEntryPoint.FetchAndCacheEpisode(String url, String tmdbId, TokenData tokens, TimeZoneInfo targetTz, String showTimezoneId) Source: System.Text.Json TargetSite: Void ThrowJsonReaderException(System.Text.Json.Utf8JsonReader ByRef, System.Text.Json.ExceptionResource, Byte, System.ReadOnlySpan`1[System.Byte]) 2026-07-27 11:26:22.928 Error App: [AirDateFixer] Failed to fetch episode from https://api.trakt.tv/shows/ahsoka/next_episode?extended=full *** Error Report *** Version: 4.9.5.0 Command line: C:\Users\blingbling\AppData\Roaming\Emby-Server\system\EmbyServer.dll -service Operating system: Microsoft Windows 10.0.26200 OS/Process: x64/x64 Framework: .NET 8.0.27 Runtime: C:/Users/blingbling/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll Processor count: 4 Data path: C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata Application path: C:\Users\blingbling\AppData\Roaming\Emby-Server\system System.Text.Json.JsonReaderException: System.Text.Json.JsonReaderException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0. at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes) at System.Text.Json.JsonDocument.Parse(ReadOnlySpan`1 utf8JsonSpan, JsonReaderOptions readerOptions, MetadataDb& database, StackRowStack& stack) at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 utf8Json, JsonReaderOptions readerOptions, Byte[] extraRentedArrayPoolBytes, PooledByteBufferWriter extraPooledByteBufferWriter) at System.Text.Json.JsonDocument.ParseAsyncCore(Stream utf8Json, JsonDocumentOptions options, CancellationToken cancellationToken) at EmbyAirDateFixer.TraktEntryPoint.FetchAndCacheEpisode(String url, String tmdbId, TokenData tokens, TimeZoneInfo targetTz, String showTimezoneId) Source: System.Text.Json TargetSite: Void ThrowJsonReaderException(System.Text.Json.Utf8JsonReader ByRef, System.Text.Json.ExceptionResource, Byte, System.ReadOnlySpan`1[System.Byte]) Clicking a Series Link form the error logs gives me this: Edited 8 hours ago by sh0rty
Blueskies278 81 Posted 1 hour ago Author Posted 1 hour ago (edited) 7 hours ago, sh0rty said: OK, I set everything up. But thhe Plugin does not work on my system. Airdates in TV Show Forecast did not change. 2026-07-27 11:26:21.347 Error App: [AirDateFixer] Failed to write external token backup to 'C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata\plugins\AirDateFixerBackup' - fresh-install self-healing will not work until this path is writable *** Error Report *** Version: 4.9.5.0 Command line: C:\Users\blingbling\AppData\Roaming\Emby-Server\system\EmbyServer.dll -service Operating system: Microsoft Windows 10.0.26200 OS/Process: x64/x64 Framework: .NET 8.0.27 Runtime: C:/Users/blingbling/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll Processor count: 4 Data path: C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata Application path: C:\Users\blingbling\AppData\Roaming\Emby-Server\system System.UnauthorizedAccessException: System.UnauthorizedAccessException: Access to the path 'C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata\plugins\AirDateFixerBackup' is denied. at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode) at System.IO.File.WriteToFile(String path, FileMode mode, String contents, Encoding encoding) at EmbyAirDateFixer.TraktEntryPoint.SaveTokens(TokenData tokens) Source: System.Private.CoreLib TargetSite: Microsoft.Win32.SafeHandles.SafeFileHandle CreateFile(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, System.IO.FileOptions) 2026-07-27 11:26:21.347 Info App: [AirDateFixer] === LoadOrSeedTokens returned: non-null === 2026-07-27 11:26:21.347 Info App: [AirDateFixer] Starting refresh. Target timezone: W. Europe Standard Time 2026-07-27 11:26:21.902 Error App: [AirDateFixer] Failed to fetch episode from https://api.trakt.tv/shows/agatha-all-along/next_episode?extended=full *** Error Report *** Version: 4.9.5.0 Command line: C:\Users\blingbling\AppData\Roaming\Emby-Server\system\EmbyServer.dll -service Operating system: Microsoft Windows 10.0.26200 OS/Process: x64/x64 Framework: .NET 8.0.27 Runtime: C:/Users/blingbling/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll Processor count: 4 Data path: C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata Application path: C:\Users\blingbling\AppData\Roaming\Emby-Server\system System.Text.Json.JsonReaderException: System.Text.Json.JsonReaderException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0. at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes) at System.Text.Json.JsonDocument.Parse(ReadOnlySpan`1 utf8JsonSpan, JsonReaderOptions readerOptions, MetadataDb& database, StackRowStack& stack) at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 utf8Json, JsonReaderOptions readerOptions, Byte[] extraRentedArrayPoolBytes, PooledByteBufferWriter extraPooledByteBufferWriter) at System.Text.Json.JsonDocument.ParseAsyncCore(Stream utf8Json, JsonDocumentOptions options, CancellationToken cancellationToken) at EmbyAirDateFixer.TraktEntryPoint.FetchAndCacheEpisode(String url, String tmdbId, TokenData tokens, TimeZoneInfo targetTz, String showTimezoneId) Source: System.Text.Json TargetSite: Void ThrowJsonReaderException(System.Text.Json.Utf8JsonReader ByRef, System.Text.Json.ExceptionResource, Byte, System.ReadOnlySpan`1[System.Byte]) 2026-07-27 11:26:22.928 Error App: [AirDateFixer] Failed to fetch episode from https://api.trakt.tv/shows/ahsoka/next_episode?extended=full *** Error Report *** Version: 4.9.5.0 Command line: C:\Users\blingbling\AppData\Roaming\Emby-Server\system\EmbyServer.dll -service Operating system: Microsoft Windows 10.0.26200 OS/Process: x64/x64 Framework: .NET 8.0.27 Runtime: C:/Users/blingbling/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll Processor count: 4 Data path: C:\Users\blingbling\AppData\Roaming\Emby-Server\programdata Application path: C:\Users\blingbling\AppData\Roaming\Emby-Server\system System.Text.Json.JsonReaderException: System.Text.Json.JsonReaderException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0. at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes) at System.Text.Json.JsonDocument.Parse(ReadOnlySpan`1 utf8JsonSpan, JsonReaderOptions readerOptions, MetadataDb& database, StackRowStack& stack) at System.Text.Json.JsonDocument.Parse(ReadOnlyMemory`1 utf8Json, JsonReaderOptions readerOptions, Byte[] extraRentedArrayPoolBytes, PooledByteBufferWriter extraPooledByteBufferWriter) at System.Text.Json.JsonDocument.ParseAsyncCore(Stream utf8Json, JsonDocumentOptions options, CancellationToken cancellationToken) at EmbyAirDateFixer.TraktEntryPoint.FetchAndCacheEpisode(String url, String tmdbId, TokenData tokens, TimeZoneInfo targetTz, String showTimezoneId) Source: System.Text.Json TargetSite: Void ThrowJsonReaderException(System.Text.Json.Utf8JsonReader ByRef, System.Text.Json.ExceptionResource, Byte, System.ReadOnlySpan`1[System.Byte]) Clicking a Series Link form the error logs gives me this: So sorry for the delay! The new version is a total rewrite with a completely different approach—I genuinely thought it would take weeks. Somehow I've made amazing progress and am just fixing a few minor bugs now. Fingers crossed! If all goes well, V2 will be up in a few hours. I can see why the other developer abandoned his project. This project is very complicated but I'm not going to give up. Edited 1 hour ago by Blueskies278 1
Blueskies278 81 Posted 35 minutes ago Author Posted 35 minutes ago (edited) @sh0rty Almost done, just cleaning up V2! I was going to give it a few more days of testing, but if you're eager to try it out, let me know and I'll upload it soon—as soon as I finish rewriting the new Air Date Fixer document. Update: Discovered a new bug. Edited 1 minute ago by Blueskies278
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now