[-0.7.9-rev4-]
- Episodes: Clear VIDEO_PROGRESS onFirstInit; Only redirect to episode from progress if shows match
- Collections: Fix shuffle play
- Core/Playback/CoreELEC: Increase CoreELEC resume seek wait fix to 350ms (was 250ms)
- Playlists: Fix shuffle/play button behaviour
- Player: Only send timeline events if playstate has changed or we haven't sent one for 15 seconds; fixes #137
- AddonSettings: Fix default cert bundle setting
- Core/plexnet/http: Fix session cert bundle usage by using the correct attribute (verify vs cert); should fix kodi 18 connectivity
- Core/AddonSettings: Adjust proper defaults for plextv timeouts
- Core/Networking/MyPlex: Don't use custom certificate for plex.tv connections
- Core/SSL: Replace default plex.direct certificate with ACME root bundle (Letsencrypt, ZeroSSL), valid until 2035
- Core/AddonSettings: Adjust default plex.tv timeouts to 1s (connect), 2s (read)
- Core/KodiGUI: When broken template is detected, make sure to stop current playback as well

- Login/Pinlogin/Prelogin: Fix black screen
- i18n: Fix duplicate translations (de_de, es_es, zh_cn)
- Home: Fix hubs not translated
- Home: Fix double refocus; add logging
- i18n: Fix bad escapes in translations, update forgotten description

- Episodes: After fully watching the last episode of a season, select the next unwatched episode of the next season, automatically, after returning to the episodes view
- Episodes: Carry progress data as long as we're visiting (nested) episodes views
- Episodes: Clear progress data after filling episodes when opened without nesting (episodes or postplay)
- Episodes: Correctly select next-up-episode even if we had progress data
- Episodes: Correctly show episode thumbnails at their 16:9 ratio
- Episodes: Correctly update unwatched counter in seasons list after marking an episode watched
- Episodes: Don't change focus after selecting a new episode (might need a better fix)
- Episodes: Don't reselect current season in seasons view after returning from visiting another season
- Episodes: Fix badly reported resume states
- Episodes: Fix episodes not playable after returning from playback
- Episodes: Fix focus handling (don't refocus already focussed elements)
- Episodes: Fix focussing after playing something in a different season
- Episodes: Fix no related shows shown; broken for half a year
- Episodes: Fix rare timing issue (with possible crash/freeze) when play was pressed before theme music started playing (thanks @MikeTeavee for reporting and testing the fix)
- Episodes: Fix refocus handling after visiting a sub-season
- Episodes: Fix round robining too early after returning from playback and pressing left after watching the first episode
- Episodes: Fix wrong top scroll when returning to episodes screen after visiting sub-season
- Episodes: Harden selectEpisode logic further
- Episodes: Only redirect to seasons when returning from playback (reinit)
- Episodes: Properly reselect play button if possible
- Episodes: Visually fix resume point still showing after rewinding to a non-resume-worthy point (<60s) in a video that had a resume point
- Episodes: When watching multiple episodes in a row, completely, until the end of the season, select the last episode in the season when returning from playback
- Episodes/Movies: Fix play button not working after cancelling the resume dialog; fix play button not working after returning to view after direct playing from home
- Episodes/Movies/Libraries: Don't allow multiple presses of play to avoid issues
- Episodes/Postplay: Fix behaviour when visiting episodes view from postplay
- Home: Allow hiding specific hubs via hubitem context menu
- Home: Avoid mis-selecting a hub item after watching something and returning to the hub, after updating the hub and a different selection has been made in the meantime
- Home: Avoid section button "jumping" on reInit after visiting a library
- Home: Bifurcate library dropdowns
- Home: Correctly re-enable home updates even if we're playing, after coming back from screensaver or sleep
- Home: Disable updates when screensaver activated
- Home: Don't refresh stale sections while we're not the active window; might improve UI performance after watching something
- Home: Fix extremely long/indefinite reload when revisiting home after watching something from another library for longer than 5 minutes
- Home: Fix setting correct background when round-robining hubs
- Home: Implement library features "Scan Library Files", "Empty Trash", "Analyze" for admins
- Home: Properly support cancelling library reordering (reverting to the previous order)
- Home: SectionHider: After hiding a section, go to the previous one
- Home: SectionMover: Stay on current section after moving
- Home: update On Deck hubs after revisiting home, not before
- Home: Wait 1 second before continuing (block input) after wake event (default); 5 seconds for CoreELEC (default)
- Home: When a hub goes missing (e.g. continue watching gets emptied) after reinit, focus next best valid hub, if a hub was focused before
- Home: When onWake is set to restart PM4K, close all active dialogs and non-home windows before exiting
- Home/Hubs: Try correctly reselecting the last selected item after item progress has been made and we're revisiting home (hubs update)
- Home/Hubs: When round-robining is enabled, limit the amount of items fetched to 250 (default); if the hub exceeds this value, the rest of the items are lazy loaded as before
- Home/Restart-after-wake: Prevent API calls when we're closing all windows and returning home to restart the app
- Home/Settings: Fix description for EZ mapping
- Home/Settings: Set home dirty when changing the option to show/hide path mapping indicators
- Home/Settings/Theming: When setting a theme-relevant setting, restart home
- Photos: Correctly focus play button on OSD open
- Player: Properly honor previous paused state when switching streams during transcode session (now pausing onAVStarted instead of onPlayBackStarted)
- Player/Audio: Fix zero-duration error; fix seeking impossible
- Player/Episodes/Seekdialog: Always correctly select the currently playing item in the current playlist
- Player/Episodes/Videoplayer: Avoid blocking play button based on wonky BGM state
- Player/Episodes/Videoplayer: Before starting playback, wait for BGM to finish being handled
- Player/Music: Fix broken shuffle handling (hopefully)
- Player/PlaybackState: Allow forcing a timestamp
- Player/PlaybackState: Avoid using the player's current time when reporting a stopped state via the tick() method; might fix resume issues on CoreELEC when switching audio streams that need transcoding; add logging
- Player/PlaybackState: Only store progress for episode view if updatePlaybackState has accepted and sent our new timestamp
- Player/SeekDialog: Show chapters when pressing down with OSD
- Player/SeekPlayerHandler: Possibly harden further against bad timeline events
- Player/Settings/Player UI: Add option to show OSD instead of skipping chapters when pressing up/down without OSD (Default: On) (called "Behave like official Plex clients")
- PlexPlayer: Music: Allow directplay of high resolution audio (e.g. FLAC >= 192 kHz)
- PlexPlayer: Music: When transcoding is necessary, use http/mp3/mp3 for compatibility and seeking reasons
- Postplay: Allow resuming in-progress episodes
- Postplay: Fix cosmetic "API: ERROR: FATAL: Container address is not an expected path: "
- SeasonsMixin: Don't auto-select unplayed specials/season 00
- SeasonsMixin: Select the first unwatched season by default
- SeekDialog: Allow ACTION_PAGE_DOWN and ACTION_PAGE_UP to bring up the OSD when Behave like official Plex clients is active
- SeekDialog: Allow for seek-back on resume after pause (only Direct Play)
- SeekDialog: Blur chapter preview images if wanted
- SeekDialog: Fix issue with time fields not updating in OSD when transcoding video (thanks @bowlingbeeg)
- SeekDialog: Fix Kodi UI shining through when pressing INFO
- SeekDialog: Fix player settings scrollbar visible between native Kodi settings dialog fades (returning from subtitle offset adjust for example)
- SeekDialog: Normalize marker data before modifying it
- Seekdialog: Only react to DOWN with OSD shown if we should behave like official Plex clients and we want/have (virtual) chapters
- SeekDialog: Postplay: Fix replay error/issue
- SeekDialog: Re-evaluate MediaDecisionEngine decision when changing selected streams during playback; this allows switching between DirectPlay/DirectStream/Transcode, on the fly, based on the selected streams
- SeekDialog: Reduce skip-button "jumping" just before auto skipping a marker
- SeekDialog: Refocus playlist button after closing playlist dialog, after opening it more than once
- SeekDialog/CurrentPlaylist: Honor no TV spoilers setting as well
- SeekDialog/Player: Don't restart the video when changing audio or subtitles (possibly even video, not tested), if not necessary
- SeekDialog/Player: Fix resume-on-start sometimes not working when an embedded subtitle stream was selected
- SeekDialog/Player: Report selected streams correctly to PMS when switching streams in DirectPlay mode (activity/sessions tab in PlexWeb)
- SeekDialog/PPI: Correctly position CPUUsage when scaled
- SeekDialog/VideoSettings: Hide fade backdrop when we're using skin.plextuary
- SeekDialog/VideoSettingsDialog: Don't fade background when OSDBackgroundPause isn't activated in plextuary; never fade background when SliderDialog is active (audio/subtitle offset adjustments), regardless of the skin used
- Audio: Fix transcoding not working
- Audio: Support direct play of high-res audio (<= 384 kHz)
- Audio/CurrentPlayList: Allow round-robining
- Audio/CurrentPlaylist: Close current playlist view when pressing back/previous menu with current playlist view open instead of closing the music player
- Audio/Playqueues: Fix issue were track would skip back to the previous one
- Audio/Playqueues: Generic fixes
- Boot: Force home before starting via plugin mode (Program Addons, My Addons, Shortcuts)
- Core: Add customized templating engine
- Core: Add info to splash in log whether we need scaling or not, and the current aspect ratio
- Core: Add our own ibis-3.3.0 fork as a library
- Core: Add singleton from tendo library; add LICENSE; make singleton py2 compatible (hopefully)
- Core: Add the ability to use an addon-supplied CA-certificate bundle for plex.direct connections (might be slightly less resource-intensive; new default; non-plex.direct connections will use the system bundle), the system bundle (old default), or a custom bundle
- Core: Allow going home using a mapped button (thanks @Rick_Williams for testing)
- Core: Change the way we use onAction introduced with the goHome button
- Core: Detect whether we're using skin.plextuary
- Core: Dropdown with header: Limit vertical size, enable scrolling
- Core: Dump all user settings into the DEBUG log if requested (private information masked)
- Core: Fix certain network related issues
- Core: Fix hang after sleep/wake when network isn't immediately available on CoreELEC
- Core: Fix No data error upon startup when "Use new Continue Watching hub" is enabled
- Core: Fix usage of collections.Iterable with Kodi python > 3.9
- Core: Make DEBUG_LOG calls cheaper in case DEBUG isn't enabled
- Core: Revert 2023 change to tick every 100ms; tick every 1 second
- Core: Separate version info and global property handling from util.py into kodi_util.py
- Core: Store active state in global property for skin.plextuary to detect whether we're the active window and not minimized
- Core: Support new JSON based settings (we had something similar before for lists)
- Core/AddonSettings: change stepping for non-local-check timeouts from 0.1 to 0.5
- Core/AddonSettings: Correctly honor dynamic backgrounds setting
- Core/AddonSettings: Increase skip_intro_button_show_early_threshold1 from 60 to 70 seconds (by default)
- Core/AddonSettings: Set max_retries=3 (default) for HTTP/HTTPS adapters, possibly fixing section refresh failing after power states (hibernation) (thanks @stigger)
- Core/AddonSettings: Split connect and read timeouts for Plex and Plex.tv connections; correctly set default max_retries to 3; New defaults: Plex (connect: 5s, read: 10s), Plex.tv (connect: 5s, read: 20s)
- Core/Boot/Entrypoint: Make entrypoint leaner by only importing what's necessary
- Core/Boot/Entrypoint: Use both tenga.singleton and global "started" property on Window(10000) to determine whether we're already running
- Core/Boot/Kiosk: Allow delaying autostart/kiosk-mode; allow manual immediate start when requested
- Core/Cache/Settings: Disallow writing (and showing) cache settings from within the plugin when installed from the official Kodi repository and we don't have the modern API
- Core/GUI/Templating: Smaller aspect ratio support (16:10, 4:3, …)
- Core/Main: Make absolutely sure we never run more than one instance at a time (via tendo.singleton locks)
- Core/Mainloop: Clean up global properties
- Core/MyPlex/UserSettings: Use cached user/account while waiting for plex.tv response; fixes episode playback errors with bingeMode setting
- Core/Networking: Fix certain queries not timing out (thanks @evertonmdz for testing)
- Core/Networking/MyPlex: Adhere to max_retries when querying myplex; adhere to PLEXTV_TIMEOUT_READ (default: 20s) when doing so (used LONG_TIMEOUT=20 as a fixed value before)
- Core/Networking/MyPlex: Retry myplex query on account initialization 4 times; use util.LONG_TIMEOUT (default: 20s) for data and util.TIMEOUT (default: 5s) for connecting
- Core/PlaybackManager: Allow ACCOUNT.ID to be None to not fail on pbs.bingeMode in certain (rare) situations
- Core/Plugin: Make plugin entrypoint much leaner; remove old directory based play() feature; move ensureHome() to kodi_utll.py
- Core/Reactivate/Maximize: If unable to reactivate plugin, exit cleanly
- Core/SeekDialog: Workaround for seek issue on Ugoos am6b+ (On the Ugoos am6b+ after seeking it can take 2-15 seconds for audio to start while the video is playing. Playing the same file using the default kodi player does not exhibit this issue. Changing to use the executebuiltin(Seek) solves this issue.) thanks @bowlingbeeg
- Core/Settings: Add setting to System tab to dump all user settings
- Core/Settings: Allow setting DEBUG on the fly, without restarting the addon
- Core/Settings: Backport old separated boolean settings to multioptions
- Core/Settings: Implement MultiOptionsSetting
- Core/Settings: Implement theme-relevant settings flag; reapply theme if necessary after exiting settings and revisiting home
- Core/Templating: Allow full context overriding by using addon_data/script.plexmod/context_overrides.json (see lib/templating/context.py for structure)
- Core/Templating: Recompile templates if we're missing XMLs; fixes addon not starting after upgrade without theme version change
- Core/Theming: Allow overriding theme definition/defaults by supplying theme_overrides.json in userdata/addon_data/script.plexmod; see /lib/templating/context.py for the data structure
- Core/Theming: When rendering templates, show kodi progress dialog
- Core/Windows: Fix "Go to Home to {library}"; properly select and focus library in section list
- Dropdown/Libraries: Fix visual scrolling issues on dropdowns with many items (e.g.: Genres)
- Dropdowns: Be smarter when we're trying to display a dropdown that's out of bounds
- FireTV: Fix timeFormat (at least in InfoView)
- Fix seek issue with CoreELEC devices (thanks @bowlingbeeg)
- GUI: Clean up interface by removing most button focus zoom animations
- i18n/Chinese: Fix broken translation (incomplete)
- i18n: Update Chinese translations (thanks liquidion, wabisabi, x1ao4)
- i18n: Update German translations (thanks fuchs21, Martin)
- i18n: Update Spanish translations (thanks Deci8belios, Donovan_000)
- Indicators: Improve indicators resolution; add missing image
- Kodigui: Support dialog and window close signals
- Libraries: Fix play all and shuffle all buttons
- Library: Add "Episode Date Added" sort; rename "Name" sort to "Title"
- Library/Music: Support Tracks as type on Music libraries; partially fixes #133; should fix #132
- Main/EventLoop: Allow setting a tickrate different than 1 Hz
- Movies/Episodes: Auto-scroll long summaries
- Music Libraries: Fix filters erroring
- Music: When stopping playback with open current playlist, close audio player window as well
- MyPlexAccount: Fix isAdmin based on homeUser (when caching home users)
- Settings: Add CONTEXT_MENU to clear bound home button to description
- Settings: Add MultiUAOptionsSetting (a user aware variant of MultiOptionsSetting)
- Settings: Add setting "Action on Wake event" (none, restart pm4k, wait Xs)
- Settings: Add setting for Hi-Res Music (default: on)
- Settings: Add setting to allow a delay for the autostart/kiosk-mode
- Settings: Add setting to enable or disable factor based scaling of modern watched indicators based on poster size (default: on)
- Settings: Add setting to only allow seek-back on Direct Play
- Settings: Add setting to only seek-back after a certain amount of time in paused state
- Settings: Add setting to seek-back on pause instead of resume
- Settings: Add setting to set seek-back on resume after pause (100ms, 250ms, 500ms, 750ms, 1-60s)
- Settings: Add user-setting to never show Post Play (default: off)
- Settings: Allow clearing home button mapping using CONTEXT_MENU/long press
- Settings: Disable "Stop video playback on screensaver" by default
- Settings: Focus setting categories when pressing back while inside a category instead of immediately backing out
- Settings: Implement new watched/unwatched status setting (default: Modern (2024))
- Settings: Move "Behave like official Plex clients" further up
- Settings: Move "Player Theme" setting to Main section and rename it to "Theme"
- Settings: Move "Stop video playback on idle after" and "Stop video playback on screensaver" settings to Video Player tab
- Settings: Move autostart/kiosk-mode to Main (was in: System)
- Settings: Move Theme selection above Indicators
- Settings: Post play Auto Play: Honor postplay timeout in setting description (addonSetting; default: 16s)
- Settings: Re-arrange settings; add "User Interface" tab; move a lot of settings from Main to User Interface
- Settings: Remove visually "annoying" last main section item bottom border
- Settings: Rename "Hide black backdrop in inverted watched states" to "Hide background in modern indicators"
- Settings: Rename Player UI to Video Player
- Settings: TV Spoiler settings: Add setting to hide chapter preview images
- Settings: Unify TV spoiler settings further
- Settings: Update hubs round robin description, add warning
- Settings: Use unicode literals
- Settings/Audio/AC3/DTS: Change setting options from 2.1+ and 5.1+ to >2.0, >2.1, >5.0, >5.1 to allow for more fine-grained control
- Settings/Home-Map-Key: Show proper dialog while remapping; make use of skin.plextuary-pm4k-1.1's no-icon-dialog
- Settings/MultiOptionsSetting: Keep original options order when displaying currently selected options
- Settings/Player UI: Test new MultiOptionsSetting for a couple of Player UI button visibility settings (should auto-migrate over from old boolean settings)
- Settings/Player: Add "Skip intro" and "Skip credits" to button options, allowing per-user control of whether marker action buttons should be shown or not (default: On)
- Settings/Player: Make "Show buttons" setting user aware
- Settings/TV/Spoilers: Make allowed TV spoilers for specific genres configurable
- Settings/Video: Streamline playback features and video codecs to reduce the amount of settings available
- AddonSettings: Add setting for tickrate (default: 1 Hz, min: 0.5 Hz, max: 10 Hz)
- AddonSettings: Add setting to Cache Templates (default: on); Add setting to always recompile templates on start (default: off)
- AddonSettings: Add setting to choose the CA-certificate bundle (system, plex.direct (default), custom (userdata/addon_data/script.plexmod/custom_bundle.crt)
- AddonSettings: Add setting to specify the limit for round-robining hubs (default: 250, safe tested on SHIELD: 1000)
- AddonSettings: Increase CoreELEC resume seek wait to 250ms by default (was: 200ms); thanks @panaitwebbos for testing
- AddonSettings: Reset default Plex Requests timeout to 5s (was 10s); increase maximum to 60s (was 30s)
- Signals: Check whether we've actually registered a signal before trying to disconnect it
- Templating: Retry writing a template to disk once
- Templating: Try making sure the XMLs actually have been written (sadly xbmcvfs.File doesn't allow flush/sync())
- Templating/Kodigui: Harden against corrupted XML files; recompile templates if encountered in any window/dialog
- Templating/Postplay: move hubs up a little (scaled)
- Templating/Watched_indicators: Implement factor based scaling of modern watched indicators based on poster size
- Theming: Apply button themes to all views
- Theming: Cache templates by default, making subsequent theme-related changes blazing fast (cache clears after restarting PM4K and is filled again when recompiling templates)
- Theming: Implement new 2024 watch status
- Theming: Make watch status indicator handling fully dynamic (templated)
- Theming/Playlists: Use different watched indicator location
- Tracks: Select last played track on window reinit
- TV Shows: Fix play button not working after returning from playback on TV Shows/Seasons screen
- Videoplayer/External: When using external player handle Ended events as always stopped manually
- VideoPlayer/Postplay: Fix vertical positioning of hubs to be about the same as in Movie/Preplay view
- Videoplayer/Postplay/Episodes/Movies: Try fixing rare timing error when clicking a role/actor
- VideoPlaylists: Fix returning to playlist after manually stopping a video
- VideoPlaylists: Properly select first unwatched item if possible; correctly set current item after returning from watching more than one


[-0.7.8-]
- Global: Use watched markers instead of unwatched markers (green checkmark vs. yellow triangle)
- Home: Blur in-progress episode thumbnails if Addon Setting "Use episode thumbnails in continue hub" is enabled and titles if requested
- Home: Refresh hubs when no episode spoiler setting changed
- Home/Settings: After changing home-relevant settings, reload Home on revisit, not immediately
- Home: Dynamically reload home when relevant settings have changed
- Home/Sections: Improve handling for sections that errored out once, and retry loading them just like any stale section every 5 minutes
- Home: Fix hubs not coming back after disconnect
- Home: Harden disconnect handling in general; PM4K should be able to "live" forever now
- Home: Refresh last section on: screensaver deactivated, DPMS deactivated, system wakeup after sleep
- Home/PowerEvents: Disable updates when system goes to sleep, enable them when it wakes up; force a hubs update when waking up
- Home: Probably fix long-running section change issue (partially reverting a previous change and being a little smarter about the current selection state); add debug logging for when we detect the "anomaly"
- Home: Don't let any tasks remain in a crashed state
- Core/Home: Add easy path mapping
- Core/Home: Add library context option to hide them for current user/server; Add context option for "Home" to unhide hidden libraries
- Home: Hide hidden library content from home hubs as well
- Home: Add library reordering functionality
- Home: Remove Hub round-robining altogether
- Home: Use ACTION_NAV_BACK/ACTION_PREVIOUS_MENU in home hubs to select the first item when any item other than the first item is selected
- Home: After refreshing stale section hubs (every 5m), re-select the last selected position in every hub, possibly re-extending the hubs to match the last position
- Episodes: Blur unwatched/in-progress episode thumbnails and redact spoiler texts, and episode titles if requested
- Episodes: Possibly use correct episode when playing TV Show from TV Show overview; always play latest in progress, unwatched, deprioritize specials
- Episodes: after watching an episode, remove chevron immediately
- Episodes: After watching multiple episodes in a row that span more than one season (e.g. watched S01E10, S02E01), properly redirect to the latest correct season view of the just watched episodes
- Episodes: Inject watched/progress state into listitem datasource (fixes wrong "Mark as (Un) Played" menu item behaviour immediately after watching an episode)
- Episodes: Don't play theme music when coming back from Home-Direct-Play (pressed P or ACTION_PLAYER_PLAY)
- Episodes: Select the correct episode after returning from direct playback from home (P/PLAY pressed)
- SeekDialog: Hide episode title if wanted
- SeekDialog: Properly update VideoPlaylist when using next/prev
- SeekDialog: Improve chapter visibility (selected and deselected (current))
- SeekDialog: Throw away intro markers with an unreasonably late start offset (>10m)
- SeekDialog: Throw invalid markers away once, not every tick
- SeekDialog/Settings/Video Playlists: change the setting options for showing the prev/next and playlist buttons from "Only for Episodes" to "Only for Episodes/Playlists"; Show next/prev/playlist buttons in player for video playlists if wanted
- Core/Players: Remove all Kodi media-loading spinners when using Plextuary skin
- Core/Player: Always set infolabel "year" and remove it when downloading subtitles; don't set infolabels "episode" and "season" at all for non-TV-shows (fixes scrobbling issues with trakt plugin)
- Core/Player: Report all known Guids to script.trakt if it's installed; generate slug for movies
- Player/SeekDialog: Properly handle a manual stop action on episodes when OSD was visible (possibly other occasions)
- Player/PostPlay: Hide spoilers as well, if configured
- Postplay: Don't show the same episode on deck which is going to be played next
- TV Shows/Seasons: Try reloading instead of exiting to home when deleting a season if possible
- Libraries: Add movie/show year to label (thanks @bowlingbeeg)
- Libraries: Fix year display, fix Art display in listview 16x9; make small posters view a little less cramped
- VideoPlaylists: Show playback menu when an item can be resumed
- VideoPlaylists: Show playback menu when CONTEXT_MENU action is detected
- VideoPlaylists: Allow resuming, or, if possible, Start from Beginning
- Core: Ignore local IPv4 docker plex.direct hosts when checking for host mapping
- Core: Unify spoiler handling across multiple windows
- Core: API requests: Don't generally include markers, only for PlayableVideos
- Core: Open up translations to everyone, using POEditor
- Core/AddonSettings: Remove old compatibility profile code and setting
- Core/AddonSettings: Make caching home users optional; add setting (default: on)
- Core/Home: When home user caching is disabled, refresh home users when opening the user dropdown (once)
- Core: Add support for Guids in new library agents
- Core/Episodes/Player: Inject Show reference into episodes to speed up playback start and avoid additional API hits; Don't initiate a playlist if only one episode is being played
- Core: Compatibility with script.trakt
- Core: Add automated generic JSON data cache, stored as addon_data/script.plexmod/data_cache.json
- Core/TV: Store and use "once seen" genres for a show in the data cache to speed up certain views (such as postplay and continue watching, with no spoiler mode active)
- Core: Automatically clean up old unused data cache entries which haven't been accessed for 30 days
- Core/Settings: Add option to use watched markers instead of unwatched markers (default: on)
- Core/Settings: Add option to hide the black background on inverted watched markers (default: off)
- Core: Fix dialogs reverting the underlying window's watched marker setting temporarily
- Core: Memory usage and performance optimizations (possibly >10% in py3 and >30% in py2 by using __slots__ on massively used classes)
- Core: Allow for custom watched.png, unwatched.png, unwatched-rounded.png in addon_data/script.plexmod/media/
- Core: Improve delete media clarity
- Core/Playlists: Fix context menu "play" action on playlist items when addonSetting playlist visit media is on
- Core/Windows: Optimize Imports
- Settings: Add setting to show indicators for libraries with active path mapping (default: on)
- Settings: Add setting to blur episode thumbnails and preview images, as well as redact spoilers for unwatched or unwatched+in progress episodes
- Settings: Add setting to also hide episode titles based on the above
- AddonSettings: Add setting to configure the blur amount for unwatched episodes (default: 16/255)
- AddonSettings: Add setting for ignoring local docker IPv4 hosts when checking for host mapping (default: enabled)
- AddonSettings: Change default of "Visit media in video playlist instead of playing it" to False
- AddonSettings: Add setting to define the maximum start offset of an intro marker to consider it (default: 600s/10m)
- Theme: Bump theme version to 3


[-0.7.7-rev2-]
- UserSelect: When not switching user (startup), close the addon on cancel actions
- Libraries/Photos: Do autoplay when Play or Shuffle buttons are pressed in photo library view
- Libraries/Photos: Fix wonky thumbnail display on photodirectories
- SeekDialog: Fix final credits marker skipping wrongly on manual marker skip
- SeekDialog: Fix several marker issues (over-jumping, invalid markers)
- SeekDialog: Show stream transport type in video session info (smb, nfs, path mapped, http(s))
- SeekDialog: Fix empty chapters list shown when watching an episode without markers via NEXT after watching one with markers
- SeekDialog/Settings: Add option to hide all time-related information from the user when the OSD isn't open
- SeekDialog: Transcode Session Only: Don't show subtitle download option in subtitle quick actions; properly show subtitles when toggling them via subtitle quick actions
- Core: Advanced/Addon settings: Set default Plex requests timeout to 10 (was 5)
- Core/Mainloop: Make sure we were able to open the Home/UserSelect window after our BACKGROUND successfully opened, even if another modal dialog opened in the meantime
- Core: Firstrun: Refresh resources after signin and/or home user switch, otherwise the first time the addon's run the user sees no servers
- Core: UI: Fall back to black background image when we have backgrounds set but they didn't load
- Core: Finally fix and handle plex.direct mappings via advancedsettings.xml
- Core: Fix issues resulting in new devices being registered with plex.tv on every plugin start
- Core: Only use mapped file path if mapped file exists or verification is off
- Core: Backgrounds: More concise fallback handling
- Core/Player: Add optional DirectPlay path mapping via addon_data/script.plexmod/path_mapping.json (path_mapping.example.json included in addon directory). Allows for arbitrary replacements of HTTP playback with SMB, NFS, local mounts etc.
- Home: Rework and simplify section/library change logic
- Home: Never update hubs while playing a video to avoid hickups in high bitrate scenarios
- Home: Properly cache user thumbnail (by removing the ?c timestamp from the URL), increasing performance
- Home: Fix round robining on hubs (going left once before the last item, then right falsely round-robined to the start, early)
- Home: Add virtual hub 'home.VIRTUAL.movies.recentlyreleased' on index 3 if we encounter 'movie.recentlyreleased' on the home hubs
- Home/Settings: Add setting to use the modern Continue Watching hub on Home instead of the separated In Progress/On Deck hubs
- Episodes: Complete rework of the watch-state handler for TV; instantly update progress while watching
- Theme: Update assets, icon, splash
- Music: Rework music player and handler; remove plugin:// path and handle tracks directly; fixed all stability issues; massively improve performance
- Player: Add button theme support, use new modern colored theme; support custom themes
- Player: Improve handling when postplay screen is not wanted and we're at the end of a show; harden progressEvent handler
- Player: Remove all /file.xxx instances instead of just .mkv and .mp4 from non mapped stream URLs
- Musicplayer: Partially fix "dangling" playing tracks in Plex Dashboard after stopping playback
- Music: Hide spinner on prev/next button clicks as well (only with Plextuary skin 4.0.0-pm4k0.9 (omega), 3.0.10-pm4k0.8 (nexus and older))
- Settings: Add setting to toggle path mapping dynamically
- Settings: Adjust cache recommendations down from 100MB to 50MB
- AddonSettings: Add advanced setting to verify mapped files before playing them (default: on)
- Account/HomeUsers: Use new API to determine the PlexPass subscription status of the Plex Home
- Account/HomeUsers: Refresh home users once a week if we've never seen a plex home
- Home/RefreshUsers/UserSelect: Refresh subscription state


[-0.7.6-]
- Core: Avoid DNS rebind protection issues for plex.direct
- Core: Support ipv6 plex.direct hosts when checking for locality/LAN
- Core: Network: Massively speed up local connection checks
- Core: Network: Skip local connection checks for plex.tv
- Core: Network: Add 172.16.0.0/12 as local network
- Core: MyPlex: Ignore non-server resources
- Core: Use correct default for LAN_REACHABILITY_TIMEOUT
- Core: Cache home users indefinitely; add refresh button to user select
- Core: Add support for adaptive readfactor from Kodi Omega BETA3 onwards; recommend it instead of the default range
- Core: Add setting to allow VC1 DirectPlay (default on; was on by default before)
- Core: MDE: Fix DirectStreaming when media has no deep analysis by setting the maximum bitrate to unlimited in maximum quality mode
- Core: Simplify video DirectStream codec decision handling
- Core: Make sure our home window opens, exit if it doesn't in time; unify waiting for window functionality
- Home: Add "Refresh Users" action to user dropdown to refresh available home users
- Home: Reduce unnecessary section refreshes if the section hasn't changed
- Playback: Fix PlayQueue crashing
- Userselect: Remove legacy thread/cache handling leftovers
- Userselect: Fix ACTION_PREVIOUS_MENU/ESC closing the addon instead of leaving the user selection
- SeekDialog: Avoid accidental seeking when navigating through player buttons after closing player settings without changing anything
- SeekDialog: Hide OSD fast after changing subtitle via settings
- SeekDialog: Show episode year in player overlay if possible
- SeekDialog: Widen episode/movie title line
- SeekDialog: Autoscroll episode/movie title lines for too long titles
- SeekDialog: Hide non-autoskipping marker into the OSD using NAV_BACK/PREVIOUS_MENU
- SeekDialog: Apply positive marker endtime offset to manually skipping markers as well (unifying with the autoskip handling), to avoid re-showing the marker occasionally after seeking
- Library: Show current total item count in title
- Settings: Add description for Direct Stream


[- 0.7.5-rev2 -]
- Core: asyncio Kodi compat
- Fix: transcoding is broken due to deepcopy usage
- Add IMDB ID to video info
- Fix: Libraries: Missing items when filters applied and collections exist (thanks @bowlingbeeg )
- Fix: Libraries: Removed most filters from collections view as they don't work (thanks @bowlingbeeg)
- Fix: Chapters not available in episodes during playback after manually changing watch status
- Fix: next episode receives resume state from previously resumed episode when pressing NEXT
- Fix: Items with non-existant files get removed from the home hubs when visited
- Fix: When using ACTION_PLAYER_PLAY to autoplay an item on Home that resumes, all title2 titles of the underlying screen disappear
- Fix: PPI: CPU core usage overlaps items when playing something with enabled subtitles
- Fix: SeekDialog/Handler/Player: Edge case where progress wasn't updated in certain situations
- Fix: Non-Home-Hubs: hub elements limited to 10 after modifying an underlying item
- Update Spanish translations (thanks @Deci8BelioS)
- TV Shows: Allow deleting TV shows if possible
- TV Shows: Allow deleting seasons if possible
- TV Shows: Add CONTEXT_MENU handler on seasons, allowing changing watched status and deletion
- TV Shows: More accurately show progress bar including in progress episodes
- Player: Don't use old resume info when going to next video in playlist
- Player: Simplify and optimize stop/end/next logic
- Core: Fall back properly when Kodi version string couldn't be parsed
- Core: Correctly reload addon settings on maximize from minimized state (so yes, you can minimize the addon, change addon settings, then maximize it again and the settings will be applied)
- Core: Edge-case: Ensure TV background music isn't recognized as audio
- Core: Logging: Clean Plex tokens from constructed item for playback dict
- Core: SeekHandler: fix usage of player.video.duration erroring
- Core: Home: Store last BG on minimize and on home select as well; don't store the same background URL if it hasn't changed
- Core: VideoPlayer: Make sure we're the only active player, try to stop all other active players for 5 seconds
- Core: Instead of using Action(back) before running addon, navigate to Home and try to guarantee that
- Home: Don't round robin while loading the next hub pagination chunk
- Home: Sections: Increase section select timeout from 300 to 500ms
- Home: Fix autoplay from home on episodes (ACTION_PLAYER_PLAY)
- Home: Don't fail on empty hub
- InfoScreen: Add DV stream metadata info
- Episodes: Show episode options menu on long press select/OK (CONTEXT_MENU)
- Episodes/Seasons/Shows: Calculate and show season watched percentage including in-progress episodes
- Episodes/Seasons/Shows: Show progress even for shows/seasons with only an in progress episode, no fully watched ones
- Episodes: Adjust ratings/userratings positioning and label widths; add autoscroll to show and episode titles
- Episodes: Wait for full episode data to be loaded before enabling playback
- Episodes: Add directors/writers to episode view
- Episodes: BGM: Fix show() accessor failing
- Episodes: Don't play background music when current volume is zero
- Movies/TV/Episodes: Support ratings from non-legacy agents (also when primary provider is IMDB)
- Movies: Scroll long titles as well
- Movies/Preplay: Move userRating/stars in line with other ratings
- Movies/Preplay: Show writers besides directors as well
- PlayerSettings: Add Kodi Resolution Settings for Kodi >= 18 (only when you have a whitelist configured in Kodi/Video)
- PlayerSettings: Add Kodi Colour Management for Kodi >= 20 (when applicable)
- SeekDialog: Ignore immediate OK/SELECT on auto-skipping marker with countdown during the first second of the marker shown
- SeekDialog: Make sure we only send the correct timeline request on certain actions
- SeekDialog: Make sure we send a timeline request on certain actions
- SeekDialog: Remove now unnecessary negative offset on manual marker skip on final credits marker, as we've got much more robust PostPlay handling now
- SeekDialog: Avoid showing the final credits marker twice (after it's been manually skipped already)
- SeekDialog: Hide once-manually-skipped markers and move them to the OSD as well
- SeekDialog: Don't react to SELECT/ENTER on counting down autoskip marker if marker is only visible in OSD
- SeekDialog: Bingemode: Don't autoskip the credits of the last available episode of a TV show
- Player/SeekDialog: Simplify and harden PostPlay behaviour
- Libraries: Clean up code, improve performance (memory usage, CPU load) and optimize viewing experience by properly chunking the view's requests based on the view position (thanks @bowlingbeeg)
- Addon Settings: Add setting for Library view chunk size
- Settings: Add separate playback setting to skip Post Play in TV shows (separate from binge mode)
- Settings: Clarify and reorder playback settings

[- 0.7.4 -]
- Add: Show video codec rendering type (SDR/HDR, ...) in "choose version" dialog
- Add: Add imperfect (but better-than-none) representation of DTS profiles and EAC3 JOC to preplay and stream screens
- Add: Artists/Albums: Show similar artists
- Add: Fade-to-black background when current item has no art
- Fix: All instances of UI flickering
- Fix: Use correct resolution name in "choose version" dialog
- Fix: Collections 16x9 view thumbnail
- Fix: DV HDR detection
- Fix: Properly quote url params (e.g. when searching for "AC/DC")
- Fix: Missing artists albums by adding related albums with types: live, soundtrack, singles, demo, remix, compilation
- Fix: Choices sorting for extras/trailers (and possibly other videos); fix switching qualities during extras/trailers playback
- Fix: Playing a track directly from search results by supplying its album info if possible
- Fix: Crash when readfactor isn't readable in advancedsettings.xml
- Fix: Unstable "smaller" buttons in episodes view with multiple media versions available
- Fix: Multi-line cast names on seasons screen (thanks @bowlingbeeg)
- Fix: PlayerSettingsDialog: enable ACTION_LEFT to leave scrollbar
- Core: Thumbnails/Art: Don't unnecessarily upscale images serverside above their native resolution
- Core: Allow DirectPlay of non-http-protocol Extras with protocol falsely(?) set to mp4
- Core: Properly sort mediaChoices if there are multiple choices to make (trailers)
- Core: Harden library view with regards to switching view types
- Movies/Preplay: remove "cast" heading, move cast up so their names and roles are visible without scrolling
- SeekDialog: PPI: Reduce videoSession wait timeout to 2 seconds
- SeekDialog: Fix seeking via RWD/FFWD buttons when autoSeek is off; fix seeking via OSD via timeline pressing ENTER; hide OSD after seeking via ENTER
- Seekdialog/Markers: Fix issue where a canceled countdown-autoskip-marker still skipped using SELECT/ENTER/OK
- Player/Seekdialog: DirectPlay: Show additional cumulative parts time on multi part videos
- Player: Remove (probably) unnecessary sleep between videos
- Episodes/Preplay: Add "X more" label when video has multiple audio streams (thanks @bowlingbeeg for the idea)
- Episodes/Seasons: Move actor images on episodes and seasons screens to better conform to other official Plex clients (thanks @bowlingbeeg)
- Episodes: further harden view against network errors/disconnects
- Home: Only store valid last-background on shutdown, preventing potential flicker on boot; Only store last BG for home section hubs
- Home: Properly unhook signal receiver (possibly preventing a timely shutdown)
- Playersettings/Audio: Show audio stream title as well, if available
- Playersettings: show "X more" in stream selection as well
- UI: Improve rendering smoothness and resolve flickering issues by providing a dark background while any background is currently loading (mostly invisible)
- GUI/AdvSettings: Remove dialog flicker fix
- GUI: Add longpress/CONTEXT_MENU handler to exit dialog, to switch from exitting the addon to quitting kodi
- Photoviewer: Improve performance again
- Hubs/Settings: Add setting to show hub bifurcation lines (default off)
- Settings: Add setting to swap the default exit action with quit Kodi
- AdvancedSettings: Player: Add setting to wait an amount of time before starting the next item in the queue (default: off)


[- 0.7.3-rev2 -]
- Fix: certain home hubs were limited to 10 items without pagination
- Fix: very rare infinite playback loop with enabled embedded subtitles (thanks @florinvlaicu for reporting)
- Fix: Partially fix issues when switching audio streams during Transcoded/DirectStream playback
- Fix: Fix error in ExtendHubTask
- Fix: Partially revert "Home: Increase section change timeout from 0.3s to 0.5s; re-jig section change handling to allow using ENTER/SELECT to immediately select a section below 0.5s wait time" due to instability
- Fix: Fix a couple of SyntaxWarnings for invalid escape sequences
- Fix: Unfocusable buttons throw focus errors occasionally on shutdown
- Fix: Laggy UI after playback/5 minutes due to requesting certain hubs without limits applied. Drastically improving UI smoothness even for smaller hubs (<1000 items)
       This also fixes crash and shutdown issues and by proxy should enable everyone to use a poster resolution scale of at least 200%.
- Fix: Depending on the situation, the home hubs update request could be sent multiple times while waiting for the first one to finish. (thanks @bowlingbeeg)
- Subtitles: Supply OpenSubtitles.com hash if possible and enabled
- Subtitles: Add setting to Audio/Subtitles to calculate the OpenSubtitles.com hash (default: off)
- Core: Advanced Settings: make default resolution scale a percentage; limit to 750% max (based on Plex max poster size)
- Core: Add more debug logging for player events
- Core: Add more debug logging details for hub refresh events


[- 0.7.2 -]
- Fix: playing next episode when episode played threshold was met when hitting STOP button
- Fix: Dropdown would roundrobin falsely onup item when initial item wasn't item 0
- Fix: Movies: pressing back in a scrolled movie view with the header options open wouldn't back out properly
- Fix: Reset library filters when Role/Cast view opened
- Fix: Cast display in movies/preplay
- Fix: Apply dialog flicker fix in Role/Cast
- Fix: Dropdowns were broken sometimes (especially library view)
- Fix: Addon crash on non-default Kodi (e.g. OSMC) due to System.BuildVersion not matching Kodi's default
- Fix: Error on no data returned on PlexObject.reload (disconnect); Handle connection errors more gracefully
- Fix: Background of info page (thanks @bowlingbeeg)
- Fix: Rare SeekDialog crashes between episodes
- Fix: OpenSubtitles not finding subtitles for certain Movies

- Core: Harden against network disconnects in multiple views, home and videoplayer/seekdialog
- Core: Re-enable backing out of videoplayer (inbetween screen)
- Core: Player: Alternative implementation of bingeMode auto-next; ignore stop events when triggering non-user-stop
- Core: Add setting for poster/thumbnail resolution scaling, implement everywhere sensible
- Core: Thumbnails/Art: use the same parameters as PlexWeb for images
- SeekDialog: Possible fix for OSD not coming up again in some scenarios


[- 0.7.1 -]
- Fix: Embedded subtitle could be set to the wrong one (edge case)
- Fix: Episodes: theme music error when clicking on seasons
- Possibly fix rare traceback when closing an episodes window while waiting for an episode reload task
- Fix: Core: only stop playback on screensaver if player is playing video (not audio, ...)
- Fix: rare UI crash for items before 1970-01-02 (yes, we've had media back then)

- Set Accept-Language to Kodi's language setting when talking to the Plex Server, localizes subtitle titles, Library translations etc.
- Use extended title for subtitles (and add advanced/addon setting)
- Add: Show buffer state in stream info
- Reduce dialog flickering in certain situations (not fully, probably impossible)
- Player: bingeMode/autoskip credits/manual-next: avoid double-next in certain circumstances
- VideoPlayer: don't react to inputs while waiting for playback (AVStarted) to start (fixes early-back-out-crashes)
- SeekDialog: stop marker countdown on seek
- SeekDialog: auto-skip marker: ignore input while auto skipping to next video
- SeekDialog: only count down marker when OSD not shown
- SeekDialog: ignore input while handling next-video-pressed
- SeekDialog: hide OSD fast on ACTION_PAUSE/ACTION_PLAYER_PLAY/ACTION_PLAYER_PLAYPAUSE and OSD is shown
- Player/SeekDialog: Fix crash when handling SIGINT (alt+f4 on windows)
- Hubs: make all TV/movie hubs as hub types that receive updates after items being watched or marked (un) watched
- Settings: Disable alternative home hubs refresh by default
- ServerList: further hardening, list shouldn't visually "crash" anymore in certain conditions
- Pagination/Episodes: allow right round-robin on paginated long item lists (>26)
- Movies: Reorder Cast/Related/Extras according to PlexWeb
- Movies: Add reviews
- Cast: Increase Cast picture quality everywhere
- Core/Settings: Adjust recommended cache/buffer/readfactor values for different Kodi versions, starting with 21.0-BETA2 (20.90.821)
- Core/Settings: Incorporate new Kodi cache/readfactor values; clamp cache values to divisible by 16
- Serverlist: allow roundrobin at the bottom boundary
- StreamInfo: hide OSD after closing streaminfo
- Settings: Add setting to use Kodi keyboard for searching (default: off)
- Main: harden main loop (still not exiting properly when exiting fast after server change; reinits previously inited windows on exit, sometimes)
- SubtitleDownload/OpenSubtitles.com: set global videoinfo infoLabels to improve subtitle search hinting (waiting for PR to be accepted)


[- 0.7.0 -]
- Fix kiosk mode startup issue when other modal dialogs were active when PM4K was trying to start in kiosk mode
- Fix video OSD hiding too fast in certain circumstances
- Fix photoplayer issues; skip ugly initial loading image; show loading state only when it takes longer than 500ms; fix prev/next not always working; increase speed by x10
- Fix episodes view replaying the theme music when returning from a different-season-view
- Fix mediaBufferSize reported to the Plex MDE endpoint was always empty (resulting in Plex assuming we only have 5 MB cache, leading to all sorts of buffer issues)
- Fix pin entry with J characters looking like an uppercase i
- Fix episode regularly ending in bingeMode (not credits skipped) still showing post play
- Fix enabled subtitles always leading to a transcode (and subtitle burn-in) of the video stream in DirectStream scenarios
- Fix player UI for transcoded/DirectStream sessions

- UI: background/transition/rendering core rework, reducing flickering, "bouncy" background fades, improving overall snappiness of the interface (dialog transition flicker not solved)
- UI: remove the [...]-loading-spinner for everything that takes under 500ms, making the UI more natural
- UI: crossfade backgrounds before entering a view, if possible, reducing the animation load between view transitions
- UI: support more elements as background-providers (e.g. photos)
- Add advanced/plugin setting to enable/disable background crossfading altogether
- Add setting to stop video playback when screensaver (Kodi) is activated
- Add setting to stop video playback after a set idle time
- Increase home section change timeout from 0.3s to 0.5s and allow immediate section selection using ENTER

- Completely rework the AC3 handling, allowing to select in which channel configurations one wants to transcode to AC3
- Allow subtitles to be DirectStreamed; resulting in possibly ONLY the audio being transcoded
- Add setting to burn in SSA/ASS subtitles when DirectStreaming. When disabled, they're converted to raw text and DirectStreamed, if enabled (previous default), they lead to the video stream being transcoded
- Enable markers (intro/credits) functionality in transcoded/DirectStream sessions
- Harden chapter selection logic in player UI
- SeekDialog: Unify time formatting as much as possible between transcoded and directplay modes
- Add setting to allow or deny auto-skip functionality when transcoding/DirectStreaming
- Movies preplay: raise the ratings up by 70 pixels to be in line with the title, fixes issues with certain skins
- Core: improve skin compatibility: font30 is no more as we're not using Confluence but Estuary as default. Replace with its fallback, font13
- Core: improve skin compatibility: font16 is no more as we're not using Confluence but Estuary as default. Replace with its fallback, font13
- Core: allow DirectStreaming of webvtt subtitles in Kodi >= 20
- AdvancedSettings: reset background blur and opacity to their new defaults
- BGM: store last "good" audio volume before playing theme music, and apply it upon start of the addon, in case the volume reset after BGM failed/was skipped
- Core: Harden and speed up server change


[- 0.6.5+rev5 -]
- Add support for urllib3 >= 2.1.0


[- 0.6.5+rev4 -]
- Fix dropdown roundrobin needing two UPs if first selected item is item 0, introduced in 0.6.5
- Theme music: Harden BGM handler; wait for correct volume to be re-set, might fix not-so-rare stale volume issue
- Episodes: Show TV Show's other seasons in episodes window


[- 0.6.5 -]
- Fix rare postplay still shown on bingemode/autoskip credits
- Fix quick subtitle selection when override forced advanced setting is active
- Fix rare round robin case skipping item 0 onup in dropdowns
- Fix episode progress and time remaining not updating (thanks @bowlingbeeg)
- Fix embedded subtitle display delay when Cycling/using buttons to switch subtitles
- Fix rare subtitles not shown issue

- Add: Allow video player UI buttons customization via settings; remove a couple of player navbar buttons by default
- Add "Previous Subtitle" to quick subtitles nav item
- Remember subtitle actions (prev, next, download, delay) via quick nav
- Use our own CycleSubtitles/ShowSubtitles implementation;
- Rely even less on Kodi's Player states for subtitles
- Parse and show SDH/HI flag for subtitle streams
- Hide OSD faster after closing settings; try hiding OSD faster in general if necessary
- Lose orange fallback BG on userselect as well by default
- Settings: rename Player to Player UI, rename Player (user-specific) to Playback (user-specific)
- Settings: Move forced subtitles fix from plugin settings to settings interface audio/subtitles
- Store last background URL in settings if dynamic backgrounds is active; use last BG url on startup to prevent blank BG
- Reduce embedded subtitle display backseek to 100ms
- Use episode thumbnails in continue hub if available, by default; add advanced setting
- Set default background blur to 0 (was 4), background opacity to 20 (was 30)
- Disable legacy background image fallback by default; add advanced setting
- Core improvements


[- 0.6.4 -]
- Fix preplay mediachoice issues
- Fix seeking with auto-skip scenarios on slower devices
- Fix online/trailer quality issues (was always using a low quality before)
- Fix round-robining in episode view
- Fix Kodi 18
- Fix some rare Kodi playback errors in logs, mostly cosmetic
- Fix player sometimes not sending the last timeline state after playback ends
- Fix playback issues when multiple versions exist but one of them is missing
- Fix embedded subtitle display delays on playback start and on subtitle change while playing back (backseeks 1 second)
- Fix double-back-button necessary to exit when cancelling autoskip
- Fix chapters not showing when no markers present
- Fix User Pin entry not showing errors
- Fix reactivating addon after minimize
- Fix autoskip marker continuing to count down when paused; don't hide autoskip marker when paused

- Add support for multiple media versions and fix individual stream selection support
- Add support for stream selection in trailers/extras
- Add current cache/buffer state to progress bar
- Add video/audio/subtitle stream selection for trailers
- Add zero drift playback timers for current time, time left, ends at
- Add minimize option to exit
- Add playback settings manager to enable full settings per TV show instead of just binge mode toggle;
- Add slow connection support (e.g. in a hotel); waits for the buffer to fill to a reasonable amount until playback; sets readfactor to 20 (don't use with passthrough)
Migrate previous binge mode data to new extensible format, stored as addon_data/playback_settings.json

- Player: Better/more immediate intro-auto-skip implementation
- Cache/Buffer: Allow 26% and 30% "overcommit" (+android 23%)
- Cache/Buffer: Add readfactor to settings (needs Kodi restart)
- Cache/Buffer: Add support for new kodi-omega-master Cache/Buffer GUI settings
- Harden next/prev episode handling in auto-skip scenarios
- Harden next/prev button handling
- Settings: allow vertical round-robining for settings and options lists
- User Switch: Allow cancellation of switch; select the current user by default when switching


[- 0.6.2 -]
- Add system setting to execute action upon sleep event (e.g. exit Kodi when display goes to sleep; fixes passthrough issues on SHIELD)
- Allow canceling postplay timeout with enter/OK
- Binge mode: show postplay if video was exited manually
- Show local/LAN server status in status bar and server list via new icon; server list is live now
- Discover local/LAN servers automatically (if any of the plex.tv/resource's DNS points to a local IP and is reachable)
- plexapp/account/main: init account earlier to pick up ID early; slightly reorder initialization sequence to pick up preferred servers earlier
- Connection logic: refactor connection significance; wait for manual connections if necessary/wanted; add way more logging (as this might break things)
- Remember last used server per user
- Refactor seekdialog autoskip handling and chapter/marker display logic
- Harden the episodeswindow's paginator, making it less easy to generate a huge amount of requests when paging quickly (holding down left/right)
- Harden chapter/marker autoskip
- Add "combined chapters", intelligently merging chapters and markers into one, if available
- Add BIF preview images to markers if available ("Enable video preview thumbnails" needs to be enabled on server and library)
- Add separate "show autoskip info early" offset to addon settings (default: 2.5s)
- Add countdown to autoskip info button, informing the user that we're about to auto skip the next marker (intro/credits)
- Set skip intro button show early threshold to 60s (was 120s) to skip recaps but only those
- Seek as fast as possible on immediately occurring intro; skip directly to next video if possible on last credits with autoskip enabled
- Add separate connectivity check timeout; properly set up timeouts for async requests; log ping in local network tests
- Harden server discovery; further improvements to preferring local over secure
- Update reachability of servers live in server list;
- Remove server refresh button due to issues;
- Add fontawesome license
- Show busy dialog when selecting a new user, preventing errors
- Trigger force available servers/connections refresh when changing network settings;

- Fix Bingemode not properly stored per user
- Fix multiple credits naming in seekdialog
- Fix error upon episodes window reinit; catch error upon missing listitem
- Remove time left tag after watching more than one episode
- Add some missing advanced/addon setting descriptions; cleanup
- Disable GDM discovery by default
- Fix late display of embedded subtitles; the change has been forgotten, sorry; fixes #54


[- 0.6.0-rc1 -]
- Add Kodi Buffer/Cache settings to new System tab
- Add pm4k_cache_template.xml to allow further customization (copy to profile folder)
- Add addon path and Kodi profile path to Settings/About
- Add advanced/addon setting to set (Plex) HTTP request timeouts; change default from 10 to 5 (on display/crash issues, increase timeout)
- Add explicit LAN check for servers (docker-based ones won't show as local by default); only works on Kodi 19 and above; add icmplib and license
- Add setting to specify LAN check connection timeout (default 10ms)
- If desired, prefer an insecure local server over a secure one after switching users, as well
- Add warning when preferring local server connections over secure ones
- Add long timeout for essential plex.tv requests
- Add force server list refresh button to server list (allows reloading the available servers after changing PMS network settings)
- Add setting to verify local/LAN connections even if plex.tv doesn't think they're local
- Add setting to prefer local connections over secure ones, enabling enforced manual servers
- Add advanced/addon setting to add an offset to intro/credits autoskip, as the Plex markers might be a little early (default +2 seconds)

- Show video chapters if available in playback instead of bigSeek (also add a setting)
- Show virtual chapters in playback (from Plex markers, intro, credits etc.) if no chapters exist for a video file
- Reload items properly with chapters upon preplay-reinit
- Reorder settings, advanced is now system, add network settings
- Show chapters and/or markers in info view of a video item

- Implement TV binge mode (auto skip intros if not first EP of season; auto skip credits; skip postplay)
- Implement per-user settings
- Make Binge-mode overridable per show
- Make Binge-mode, all auto-skip and whether to display chapters or markers a per-user setting

- Fix focusing the wrong episode after opening the info screen
- Fix reloading episodes list after watching multiple episodes
- Strip out MP4 file name in stream URL to prevent subtitles trying to be downloaded, fixing long wait time (thanks @microadam)
- Fix failure on video with no audio stream
- Optimize remaining time calculations for preplay screen


[- 0.5.5-rev2 -]
- Fix auto intro skip not working after skipping to next episode
- Skip postplay when skipping to next video from player
- Limit early-show-intro-skip to intros occurring in the first 2 minutes;
- add advanced setting to customize this value
- Add option to show and episodes-windows (they toggle their show) to override the global auto-skip-intro setting for a show


[- 0.5.5 -]
- Add main setting to show the intro skip button early; enables recap skipping; works with auto-intro-skip!
- Move some boolean settings from Main>Advanced to Main
- Add main setting to use alternative home hubs refresh method introduced by @bowlingbeeg; default on
- Add main setting to specify item-played-threshold in main settings, please sync with your Plex Server; possibly fixes edge cases (postplay/next-overskip issues)
- Fix postplay timer-circle display on later (Nexus++?) Kodi versions
- Rework time formatting and hour padding detection for "Ends at" display completely
- Change watched status to also look at resume offset (thanks @bowlingbeeg)
- Fix crash when background threads are still running on library exit (thanks @bowlingbeeg)
- Fix playlist issues (thanks @bowlingbeeg)
- Change look of letter jump list (thanks @bowlingbeeg)
- Fix sorting/filtering issues (thanks @bowlingbeeg)
- Add second view type for episodes and albums (thanks @bowlingbeeg)
- Support showing collections inline (thanks @bowlingbeeg)
- Add support for smaller poster size view (thanks @bowlingbeeg)


[- 0.5.4 -]
- Store user thumbnail in cache (improves home "load" time)
- Change client identifier from Plex-for-Kodi to PM4K;
  possibly fix "PlexNet" entries in Authorized Devices; might also break stuff, please report back
- fix closing quote in chinese translation
- Add missing German translations
- Add "Ends at" to player ends-at time by default; add option to disable this label
- Add fallback for missing audiooutput.channels setting (seems to affect libreelec only); relates to #48
- Change resume dialog to show resume time (thanks @bowlingbeeg)
- Add unwatched status to pre-play screen and add progress bars to more hubs (thanks @bowlingbeeg)
- Fix missing parameters on Plex API queries (thanks @bowlingbeeg)
- Add time left to pre-play screen (thanks @bowlingbeeg)
- Fix audio/subtitle selection not updating correctly in pre-play screen (thanks @bowlingbeeg)


[- 0.5.3 -]
- Inhibit screensaver when in photo slideshow (Kodi 19 and above)
- Add addon setting to use old profile from P4K instead of the optimized one (might fix 3D issues with DP; not sure why?); default: off
- Show video stream render type in preplay/epidoses screen (SDR/HDR/DV/HLG)
- Adjust default background image blur/opacity from 0/40 to 4/30
- Add addon setting to set solid background colour instead of pictures (Kodi 19 and above)
- Add addon setting to hide when current media will end (default: shown, as before)
- Split filename in info screen to avoid overflow
- Don't show "no content" on home; amended PR #43
- Bad temporary fix for photo playqueues containing videos
- Photos: Use Kodi slideshow interval; fixes #41
- Add Simplified Chinese Translation (thanks @Liqianyu)
- Fix AV1 setting description
- Fix single-season pagination (anime)
- Update german translation (thanks @jamal2362)
- Fix issue when displaying a library that has no hubs to display (thanks @bowlingbeeg)
- Fixed an issue with video playlists and the general play button not working (thanks @bowlingbeeg)
- Fixed a couple of places that require integer division (thanks @bowlingbeeg)


[- 0.5.2-beta0.1 -]
re-add support for leia (Kodi 18)


[- 0.5.1 -]
add media/part/stream info to info screen
read and honor advancedsettings/memorysize


[- 0.5.0 -]
implement multiple markers per video file
add skip credits Plex-style (skip to post-credit scene if applicable or skip to end)
add auto skip credits feature
actually respect DirectPlay=Off and DirectStream=Off
fix directstream/transcoding (DS never worked apart from h264)
fix transcoded audio always being MP3
deviate from Web-client-based profile to own dynamic profile
allow directplay/stream/transcode of virtually anything on Kodi
add settings to force directstream/transcoded audio to AC3 and/or DTS (for passthrough)
add setting to limit directstream/transcoded audio to original audio bitrate/channels
add setting to limit directstream/transcoded audio to Kodi audio channel setting
prevent PMS transcoding audio to higher channel count than original audio
show video codec in preplay screen
settings: round-robin when at the end of the left heading list
stream status dialog: show HW encoding state
replace progressive jpg files (thanks @shyzus)

note: massive thanks to @hbbs for reporting the MP3 issue and sticking with me for the whole process of figuring out how to do audio stuff in a Plex client


[- 0.4.6 -]
add more sort options for ratings where applicable (rating, audienceRating, contentRating, userRating)
add smart desc/asc default sort (need feedback)
use PlexWeb sort field naming (except for PlexWeb Rating=My Rating which is clearer)
note: TV shows "By Audience Rating" seems to be broken in Plex
previous beta fixes
small bugfixes


[- 0.4.5-beta1.3 -]
properly refocus after stopping music via the mini player fix msgstr
reset autoseektimer prematurely before auto skipping intro
stream details: don't show unknown values
some music fixes; internals
auto intro skip: skip only once, show manual skipping otherwise, measures for preventing wrong jump
fix HEVC default


[- 0.4.5-beta1.2 -]
fix music and photo handlers (thanks @Buttzy10169)
fix next/prev handlers in general
fix previous release's issues
use different photos temp path resolution
enable HEVC by default


[- 0.4.4 -]
community fixes (thanks @Buttzy10169 @fvlaicu)
add auto-skip intro setting (default: off)
add addon-setting to customize how long skip-intro button is shown (default: 10s)


[- 0.4.3 -]
Allow skip-intro for users on a plexpass enabled server (thanks @fvlaicu)
Fix visual issues (due to botched addon rename)
Make AV1 setting Kodi major version dependant; pave way for hybrid codebase for 19/20
Implement new network discovery mech on windows (GDM) using powershell (experimental)
Possibly fix GDM on windows (especially on non-english variants)
Possibly fix GDM on Linux (non-BSD)


[- 0.4.2 -]
Fix skip intro button
Fix duplicate addon setting
Enable dynamic backgrounds by default set defaults for dynamic backgrounds: blur=0, opacity=40
Fix kiosk mode (autorun plex on kodi startup)
Fix music playback
Fix theme music playback; set default theme music volume to 50%


[- 0.4.1 -]
Initial PlexMod for Kodi release, based on my plex-for-kodi fork's develop branch
Add support for Kodi Nexus (20) on LibreELEC and Android
Add AV1 toggle and AV1 direct play support
Rename addon to "script.plexmod"
Add all non-plex-conform features of the develop branch as default features

[- 0.2.3 -]

Fix error causing playback to fail

[- 0.2.2 -]

Added support for collections in library views
Update Polish strings (thanks to Zachar)
Fix GDM issue (thanks to MrPumo)
Fix Python 3 issues (thanks to MrPumo and pannal)

[- 0.2.1 -]

Added Skip Intro (thanks to pannal)
Use device name for friendly name
Fix some hubs not displaying
Added title scrolling when focused on some items
Show playback speed on OSD
Fix possible error on playlists window

[- 0.2.0 -]

Bump version to 0.2.0 to differentiate from deprecated Kodi 17 0.1.x versions

[- 0.1.8 -]

Fix seek resetting when clicking select on seek bar with OSD visible
Add Spanish translations (thanks to rdcalle)
Add Portuguese (Portugal) translations (thanks to Generator)
Make python 3 compatible (thanks to pannal)

[- 0.1.7 -]

Fix transcode failures on Windows (possibly other platforms)
Add Italian translations (thanks to iz8mbw)
Use Kodi time format setting (Issue #90) (thanks to pannal)
Restore last window when starting the add-on while it is running (Issue #126)
Add Portuguese (Brazil) translations (thanks to DiogoAbu)
Add ability to exit search edit box with previous menu (escape) button (Issue #194) (thanks to pannal)
Only play unwatched media when pressing play or shuffle and filtering for unwatched (thanks to tlt21)
Fix issue with duplicated icons when fast-scrolling a hub (Issue #177) (thanks to pannal)
Fixed GUI not responding after public IP renewal (thanks to pannal and mkliche)
Advanced setting: Automatically seek selected position after a delay (Issue #172) (thanks to pannal)
Advanced setting: Use skip step settings from Kodi (Issue #133) (thanks to pannal)
Advanced setting: Use Plex/Kodi steps for timeline (Issue #133) (thanks to pannal)
OSD-Autohide improvements (thanks to pannal)
Show post play on user stop when item is considered played (thanks to pannal)
Use Unplayed/Played instead of Unwatched/Watched (thanks to pannal)
Fix issue with cast popup displaying partially offscreen (thanks to pannal)
Various fixes for incorrectly transcoded playback (Issue #201) (thanks to pannal)
Support new subtitles menu in playback for Leia (thanks to pannal)
Make sure progress bar is visible on items with less than 2% watched (thanks to pannal)
Fix focus issues caused when hubs are removed, i.e. On Deck, Continue Watching (thanks to pannal)
Fix issues with flattened seasons
Allow Kodi info display to be visible when hitting the info button
Fixes hubs not updating and some crash issues
More fixes for Kodi 18, ex. missing letters list (Issue #265)
Fix resume behavior with DSPlayer (thanks to pannal)
Add Polish translations (thanks to Zachar2)
Playlist and album view tweaks (thanks to pannal)
Quality selection clean up and fixes (thanks to pannal)
Fix to allow 3D mode selection
Add advanced option to skip the header when going back (thanks to pannal)
Ensure paused state is retained after seeking or changing video settings (thanks to pannal)
Allow closing of the options header in scrolled views using context menu button (thanks to pannal)
Some direct playback fixes (thanks to pannal)
Some shutdown fixes (thanks to pannal)
Show play state indicators to related items in preplays and On Deck in postplay (thanks to pannal)
Fix some resume issues (thanks to pannal)

[- 0.1.6 -]

Fix issues when selecting subtitles for users of certain languages (Issue #188)

[- 0.1.5 -]

Allow direct playback of episodes and movies using the play button on hub screen (thanks to pannal)
In progress watched items had the 'Mark unwatched' option instead of 'Mark watched'
Fix an issue causing the home window to start slightly scrolled down if it was closed scolled down
Fix an issue causing an error when sort was sort was "BY UNWATCHED" and the filtering "UNWATCHED" (Issue #187)
Fix issue with letter shortcuts sometimes being shown/not shown incorrectly
Fix a bug causing crash and reboot on startup on Raspberry Pi (LibreElec specific?) - Reverts "Fix autostart to work with profiles"

[- 0.1.4 -]

Kodi v18: Fix skin compatability issues
Kodi v18: Fix incompatibility with requests module update
Kodi v18: Fix issue with playback not resuming properly when direct playing
Kodi v18: Fix issue with progress bar not moving on music player/music playlist screens
Fix album display on artist screen
Fix bug causing failure to show audio player when clicking the mini player from some screens
Show original artist when available (Issue #143)
Improve centering over label backgrounds on pre-play screens
Fix some spots where tokens could still be logged
Play correct track when playing a multi-disc album (Issue #148)
Improve headers for better identification in 'Now Playing' and future server profile
Updated German language strings (thanks to coffinbearer)
Fix French translations file (thanks to coffinbearer)
Fix some Hungarian translations (thanks to vampywiz17)
Add Russian translations (thanks to shady2k)
Fix autostart to work with profiles (thanks to pannal)
Fix focus loss on home screen due to error (Issue #169)
Fix "No Servers Found" when preferred server is unavailable (Issue #159)
Fix system keyboard not working for search (Kodi 17+)(Issue #165)
Fix issue causing hubs to scroll up when settings were opened
Fix failure to sign in when signed off externally (Issue #110 & #117)

[- 0.1.3 -]

Fix incompatibility with requests module update

[- 0.1.2 -]

Fix issue with hubs not showing with (newer?) server versions

[- 0.1.1 -]

Remove PlexPass disclaimer from add-on info

[- 0.1.0 -]

Improved hub vertical scrolling animation
Fix (#87): Switching between managed users causes Kodi to crash
Fix (#119): Occasional crashes when exiting the add-on
Remove PlexPass requirement

[- 0.0.102 -]

Handle connection errors on link screen polling
Handle skip next/prev when playing video playlists
Home Screen: Navigating to the 'More' button now causes an update for all movement
Add ability to view episodes/albums in library view
Add German translation (thanks to coffinbearer)
Add Czech translation (thanks to Pavuucek)
Add Hungarian translation (thanks to vampywiz17)
Add French translation (thanks to raffoul/rlimbach)
Fix issue #64 (multi part movies won't playback)
Improve timeline reporting
Friendly name now includes hostname to differentiate Kodi devices
Possible fix for issue #102
Fix a bug causing an error on server decisions
Fix errors caused by localization on episodes and pre-play screens
Fix some errors caused when no internet

[- 0.0.101 -]

Fix (Issue #68): Artist screen options button was showing Mark Unwatched
Fix (Issue #65): When returning from playback episode pre-play did not update the selected episode
Fix: Codec info button ('o') handling on Krypton+
Remove mkv/hls testing option in add-on Kodi settings
Add Debug Logging option to Advanced Settings
Fix: Post-play after the last item in the playlist was replaying the last item instead of the displayed up next item

[- 0.0.100 -]

Fix some stability issues
Fix encoding error on startup
Improve fallbaack background quality
Fix an error causing opening of photo directories to fail
Disable debug logging by default
Make Home hub square items smaller
Improve startup and shutdown times
Fix some server reachability testing bugs and improve performance
Possible fix for crashing when shutting down Kodi while the add-on is running
Add workaround to allow launching from My Add-ons and shortcuts
Fix text cutoff for post-play in Estuary
Prevent the add-on from starting another instance on update
Skip user select in offline mode
Show 'Offline Mode' item in user options when in offline mode - selecting attempts going online

[- 0.0.99 -]

Fix: Episodes were not resuming

[- 0.0.98 -]

Fix: Was allowing non-Plex-Pass users
Fix: Some videos failed to play with certain audio stream selections
Fix: Some videos failed to play due to a logging error

[- 0.0.97 -]

Add 'Play Version...' to the pre-play options (Issue #34)
Added spring loaded playlists to Playlist section on Home screen (Issue #28)
Fix playlist composite images
Fix: Extending a hub again after a section change was starting where the previous extension left off
Handle no content and 404 for section hubs on Home screen (Issue #52)
Handle no content or no content for filter on library screen
Handle videos without duration set
Some Home screen hub loading optimization

[- 0.0.96 -]

Remove PIL usage
Use plex.tv instead of my.plexapp.com when requesting pin (Issue #50)

[- 0.0.95 -]

Now remembers unwatched filter state and sorting selection on library views (Issue #44)
Fix: Local media was being treated as remote media for playback decisions
Added a dialog to search for when selected playlists are not accessible by the current user (Issue #42)
Fixed font issues on episode/movie pre-plays and settings screens (Issue #45)

[- 0.0.94 -]

Fix: Filtering for unwatched movies was causing nothing to be displayed (regression)
Fix (Issue #41): Incorrect strings were being displayed on the episode pre-play delete dialog
Playlists now load in progressively in the background (Issue #35)
Added a dialog on failure to connect when getting sign-in pin (Issue #32)
Change posters view so that two rows are always visible

[- 0.0.93 -]

Fix: (Issue #20) Filtering by unwatched still showed watched items
Fix: (Issue #33) Photo directories were failing to open from the Home screen
Fix: (Issue #33) Some photos failed to open from the Home screen
Fix: Disabling the 'Allow HEVC' setting had no effect
Added a busy indicator while photos are loading
Fixes for DVR episodes without episode numbers

[- 0.0.92 -]

Official Kodi repo submission
Only change audio streams when necessary

[- 0.0.91 -]

Fix (Issue #23): Pressing a play on a show was not starting on the first unwatched or in progress episode
Implement (Issue #30): Decision endpoint handling for proper interaaction with streaming brain - fixes related failed playback issues
Various minor bug fixes causing fanart screen stalls, etc

[- 0.0.90 -]

Fix: (Issue #13) Errors caused by encoding issues in episodes pre-play and track playback
Fix: Player settings dialog would sometimes not close without some user input
Fix: (Issue #25) Increased music playback thumbnail resolution - affects add-on player screen and skin views outside the addon
Fix: (Issue #24) Items in movie playlists were not playable
Change: Player settings dialog now puts focus on the selected setting when displaying setting lists
Change: (Issue #21) Now back button only jumps to top bar when top bar is off screen

[- 0.0.89 -]

Fix: Selecting non plex pass not managed users caused sign out on addon restart
Fix: Playlists view showed empty space when no audio playlists were present and prevented focus

[- 0.0.88 -]

Fix: Starting a video while audio was playing triggered an error causing issues with OSD/control
Fix: Selected audio track was not being played with direct play

[- 0.0.87 -]

Initial public beta

[- 0.0.1 -]

Initial development