Releases: pannal/plex-for-kodi
Release list
1.3.19
Changelog
Player / Playback
- Core/Player: Possibly regain compatibility with Audio Offset Manager
- Player: Adjust resume point by user setting
- Player: Embedded subtitles: Fix parsing mis-tagged Kodi subtitle offset (stream tagged as "pt (BR)" for example gets parsed by Kodi as "pt-", which is invalid)
- Player: Avoid "skipping intro" blip when starting fresh with automatically skipping behind intro on start
- Player: After playback, wait 0.5s to allow for enough time for codec teardown (might hang with a black screen due to kodi dialogs otherwise)
- Player: Don't error on close when seekdialog is already deleted
- Player: Only fix embedded subtitles by short seekback if we're not CE p3i >= T2 (T2 fixes this issue already)
- Core/Player: Don't end up with a broken UI when playback failed due to missing file (wait for the failure dialog to be dismissed by the user, for up to 10 seconds)
- Core/Player: Fix double pausing on Alternate Seek and edge case (both cosmetic)
- Core/Player: Only switch LAV modes if not already LAV Full or SB
Seek / SeekDialog
- CoreELEC/SeekFix: Store reported seek player time and use it, if it massively differs from what the player tells us
- CoreELEC/SeekFix: Stabilize fast seek fix (thanks @peaceoutt32)
- CoreELEC/SeekFix: Wait until player actually paused when pausing for seek
- CoreELEC/SeekFix: Prefer reported seek time over reported current player time if set and valid
- CoreELEC/Seek back on start/SeekDialog: Implement a blackout screen during seeking back on start
- Core/Player/Blackout: Show blackout until seek completely done
- Core/Player: SeekBackOnStart: Add delay between forward and backward seek to give decoders time to stabilize (fixes VC-1 24p HW stuttering at least); default: 500ms
- SeekDialog/Episodes/Movies: Increase scroll speed for too-long titles (5/15 to 35)
- SeekDialog: Don't react to SELECT/ENTER events on skip marker buttons during seek
- SeekDialog: Allow pressing UP on the big seek chapter list with chapters disabled to access the skip marker button
- Player/Seekdialog: Pre-skip markers before the resume point to avoid race conditions with tick()
Seamless Branching / LAV / Codecs
- Core: Detect CE U3k builds above B9 that implement the alternative LAV filters for future auto-fixing of seamless branching titles
- Core/Player: Auto switch to LAV Full/SB if possible (CoreELEC U3k B9+ detected)
- Core/SB: Update seamless branching titles (thanks @korbus)
- Core: Detect avdvplus as dynamic seamless branching fix enabled build, starting with R2
- Core: Detect CoreELEC p3i build as auto seamless branching fix capable build
- VideoInfo: Show seamless branching state on audio streams of affected videos
- Core/Codecs: Improve JOC audio detection substantially in some cases; lower JOC bitrate likelihood to 736kbit due to Plex server calculation bug (was 768)
Episodes
- Episodes: Fill episodes after deletion (thanks @andybkma)
- Episodes: Fix long scrolling episode titles cutting off remaining time pill
- Episodes: Fix deleting an episode created a pagination placeholder
- Episodes: Drastically improve initial loading time of episode view (> x10)
- Episodes: Reduce wait on initial episode select
- Episodes: Fix To Show and To Section in rare circumstances
- Episodes: Be more resilient against missing item data and hung connections when closing window
- Episodes: Delay initial busy state for 2.5 seconds
- Episodes: Use thread for changing background on initial load
- Episodes: Improve load times by batch fetching all to-be-reloaded episodes' data in one go
- Episodes: Optimize task load order
- Episodes: Improve resilience against closing during initial load
- Episode: During initial load, wait up to 4 seconds before executing user actions and debounce other input during that time
Watchlist
- Watchlist: Adhere to new plex.tv watchlist limit of 100 items (was: 300; unannounced)
- Watchlist: Fix watchlisted shows "To Show" menu option error on other than current server
- Watchlist: Fix fully watched TV Shows not properly removed from Watchlist
- Core/Watchlist: Show notification once an item has been automatically successfully removed from the watchlist
- Core/Watchlist: Check for item watchlist existence before blindly trying to remove it
- Watchlist/Movies: Don't attempt to set codec info on watchlist items
Home / Hubs
- Home: Resolve old fixme for update exit event
- Home/LibraryHubs: Use poster view for in progress TV/Movie library hubs (was 16x9 view)
- Home/LibraryHubs: Add "Remove from continue watching" option to TV/Movie library's hubs in progress items as well
- Home/Main/UserSelect: Refresh home users when receiving a 401 from plex.tv when switching home users, as its protected bit might have changed (pin set), retry two times
- Home: Fix when entering a library quickly without showing its hubs, returning would show the wrong hubs
- Home: Reinitialize properly and update hubs when GoHome action was triggered by Home button bind
- Home: Consolidate multi list iteration for no reason
- Home: Fix hub stops paginating when returning from library hubs to home hubs without clean update
Library
- Library: Add PostersCompact and PostersSmallCompact views with no text (thanks @Rick_Williams)
- Library: Go home when screensaver is activated (saves CPU usage)
- LibraryWindow: Fix chunk callback edge case resulting in infinite recursion (rare case, when closing)
Movies
- Movies: Reload video info after clearing cache or refreshing metadata PMS-side
- Movies: Skip cache when reloading video info on reinit (returning from playback) (only when cache active)
Shows / Seasons
- Show/Seasons: Don't show fully watched state when an on-deck episode is being re-watched
- Episodes/Movies/Shows: Include or exclude directors in cast lists
PostPlay
- PostPlay: Fix wrong next-up item after re-playing the previously played item (e.g. played EP2, replaying EP2 from post-play, EP4 will be next up)
Settings (AddonSettings / User Interface / Video)
- Settings: Fix 'Video play completion behaviour' options and translations
- AddonSettings: CoreELEC Resume Seek Wait: Unclamp further down to 10ms, actually set correct default of 100ms
- AddonSettings: Add "Use alternate seek" prefer reported time; default: On
- AddonSettings: Add "Use alternate seek" wait for valid player time; default: Off
- Settings: Add setting to blackout the screen while seeking back to start (Default: Off, CE/LG: On)
- Settings/User Interface: Add setting to include or exclude directors in cast lists (user-setting, default: On (include))
- Settings: Add "Ensure Kodi Addon position" (default: On)
- Settings: Add setting to return home when screensaver is activated on a library screen (default: on)
- Settings/Video: Add setting for auto seamless branching LAV mode fix
- Settings/Videoplayer: Add setting to adjust resume points negatively on resume, to avoid lost content due to keyframes/seek behaviour (default: -3.5s)
- AddonSettings: Add "Seamless branching LAV mode (CoreELEC U3k B9+)", default: LAV SB
- AddonSettings: Allow specifying a custom background color (when dynamic backgrounds are disabled); overrides preset colors if set
- AddonSettings: Make Seek back on start delay configurable
- Main: Allow not showing any played/unplayed indicators at all
- Settings: Extend User Interface/Played indicators with option "None"
Core / Internal
- Core: Ensure we're updating our lastused value by running our plugin endpoint with a stub value after exiting
- Plugin-Endpoint: Support stub-run
- Core: Do not update lastused value when ran from plugin endpoint initially
- Core: Re-jig waitForOpen
- Core/SignIn/Auth: Fix wonky first start of plugin (home shown briefly after device auth and user select)
- Core: Future-proof template engine (ibis) (thanks @tuffghost)
- Core: Fix compatibility with Python 3.14 (3.14.2) (might break certain assumptions) (U3k B10)
- Core/Mixins: Implement TasksMixin
- Core/AddonSettings: Reduce default requests cache expiry from 7 days to 3 (increasing sqlite db size could yield diminishing returns)
- Core/Plexobjects: On data retrieval error, clear cache for item(s)
- PlexObjects: ListItems() and reload(): Allow returning and using raw etree data instead of parsing elements
- Seasons/Episodes/Movies: Postpone less important tasks to speed up initial load
- Main/Core: Show busy background on user switch
Theme Music
- ThemeMusic: Only locally cache theme music if server is remote (not on local LAN nor plex.tv/watchlist)
- ThemeMusic: When fading, only use sync/wait on final setVolume value, not on the intermediates (reduces blocking)
Translations
- i18n: Update Spanish and Hungarian translations
1.0.5f
1.0.5e
1.0.5d
- Core/Plex.direct: Only check native resolving of hostnames containing plex.direct
- Core/Plex.direct: Reset mapped hosts if the user skips the confirmation dialog
- Core/Plex.direct: Fix long-existing issue with multiple servers in certain circumstances not triggering plex.direct host mapping check
- Core/Plex.direct: Force mapping if requested
- Core/GDM: GDM could still be reported as active under certain circumstances
- Core/MyPlex: Consider a device that is product="Plex Media Server" as a server as well, even if it doesn't provide the correct attributes (can happen; very rare)
- Core/PlexNet/CoreELEC: Properly report device and platform parameters to Plex.tv
- Player: Don't throw away progress data during consecutive watch sessions; properly represent watched state in current video playlist during those
- Player: Honor "Never show Post Play" properly even when an episode has ended
- Player/Timeline: Never allow timeline reporting below 0 seconds
- Player: SeekBehind: Never allow seek target to be < 0
- Player/SeekDialog/AltSeekFix: Never react to seek attempts while we're waiting for a seek to happen
- Player/MDE: If we don't want a subtitle, report it properly to the Plex server (still bugged, probably server-side)
- Libraries: Move filter options out of the header area to fix overlapping music player and long filter descriptions
- Libraries: Unify and optimize play/filter/jumplist/scrollbar navigation
- Libraries/Listviews/Squares: Autoscroll long description texts
- Libraries/Photos: Fix PhotoDirectory browsing
- Library/Movies: Add filters for Writer, Producer, Editions, Audio Language, Subtitle Language, Folder Location (only if admin)
- Library/Shows: Add filters for Director, Writer, Producer; correctly separate Studio and Network filters
- Libraries: Store subfilter states
- Libraries: Re-select currently selected items in filter dropdowns
- Libraries: When re-opening applied filters, re-open all subfilter dropdowns until we reach our current one
- Libraries: Cache subfilter content
- Libraries: Depending on which "side" of the library view we are, when pressing "up", select either the left buttons or the right buttons
- Libraries: Enable fast navigation through subfilter lists via scrollbar
- Library/Movies: Allow filtering by HDR and DOVI; allow multiple boolean filters at the same time
- Library/Photos: Fix filtering
- Libraries: Allow filter clearing for boolean filters
- Libraries/Movies: Add "year" and "progress" sort types
- Libraries: Shows/Movies use sort order from PlexWeb
- Libraries: Movies: Show current sort reference value if possible in addition to movie year
- Libraries: Photos: Properly implement PlexWeb sort; fix display
- Libraries/PosterSmall: Fix vertical cutoff
- Libraries/Posters/PostersSmall: Scale and position scrollbar appropriately when moving down
- Libraries: Re-select currently used item type and sort attribute in dropdowns
- Dropdown: Allow opening a sublist by pressing RIGHT
- Dropdown: Show scrollbar if a (child-)dropdown needs scrolling
- Dropdown: Fix shadow size; perfect shadow positioning
- PostPlay: Remove leftover bifurcation line
- SeekDialog: Be smarter about playerprocessinfo/playerdebug/PM4K stream info (press left/right)
- Settings: Make the combined continue watching/ondeck hub default enabled
- Settings: Add setting "Force plex.direct mapping" (default: False)
- Settings: Sanitize defaults ("Loop Theme Music" off vs on, "Home: Resume in-progress items" off vs on)
- Settings: Temporarily remove "custom" theme setting as it's been broken for a while now
- Settings: Rename "Episodes: Skip Post Play screen" to "Episodes: Continuous playback" to make functionality clearer
- AddonSettings: widen maximum for "Use alternate seek" wait for seek to 5000 (was 2500)
1.0.0
CoreELEC
- Fix issues with delayed audio playback via the alternate seek method
- (Re-) Implemented sophisticated alternate seek method for problematic devices (brought its own quirks)
- Gradually improved alternate seek to a stable state with community feedback
- When switching audio track don’t trigger progress events
Watchlist
- Implement first version of the watchlist feature
- Auto-remove watched items (movies, shows) from the watchlist (adjustable via setting)
- Allow adding any media item to the watchlist from any media view
- (blindly) remove item from watchlist if manually marked watched via Home or Library context menus
- Allow visiting and playing back items on any available server with the item available, without having to manually switch servers
- Allow selection between multiple versions, if the case, instead of only one/the first per server (ordered by bitrate)
Subtitles
- Add support for subtitle Auto-Sync (based on audio analysis, PlexServer-side)
- Allow live-toggling of subtitle Auto-Sync in the player (overrides global setting temporarily, or per-TV-show setting)
- Fix embedded subtitle selection when path mapping enabled
- Add subtitle language denylist (disable subtitles for native languages)
- Live-download subtitles via Plex (or Kodi, or both; pre-play and during playback)
- Parse, use and store Plex account subtitle preferences
Episodes
- Fix episode progress handling
- Try using PlexServer settings for episode completion handling
- Improve background music handling
- Fix play from beginning not working for context menu of episode list items
Libraries
- Massive potential speedup (5-10x) for huge libraries
- Adhere to the library collections setting of Plex
- Use library title in title header instead of library type
- listview-16x9: Reimplement item type filter
- General fixes
Collections
- Fix collections repeating themselves after CHUNKSIZE hit (240 by default); Improve performance tenfold for big collections; Implement chunking in Collection.all()
Playlist
- Fix playlist subsequent chunking (was broken) (thanks @BrendanMyers88)
- Select the currently relevant item once it’s been created properly
- Massively improve resource usage on big video playlists when returning from playback by only refreshing affected items
- Correctly show and scale video progress
UI
- Mark any item as played/unplayed on Home (even in-progress ones), Libraries
- Allow removing individual items from Continue Watching/On Deck (same as in official clients)
- Implement fast server and user switch in Home (via long-press/context menu)
- Visual changes to adhere more to the 2024 style (player, dropdowns, dialogs)
- Add the ability to hide episode and movie spoilers defined by multiple user settings (titles, blur images, summaries, ratings)
- Add the ability to always resume in progress media (also directly from home if wanted); can be overriden using long-press/context menu
- Settings: Allow navigation using MOVE_RIGHT/LEFT; fixes
- Unify dropdown behaviour: always allow round-robin on any dropdown; default close behaviour is pressing left or BACK/PREVIOUS_MENU
- Core/Poster dimensions: Use 268x402 (0.66 ratio) for poster base resolution instead of 268x397 (0.675 ratio); unifies vertical scaling for posters and collection art
- Unify bound Home key (should now work everywhere)
- Home/Core: Don’t retain background image when switching home users
- Home/Hubs: Use season thumbnail for episodes if possible (adjustable via setting)
- Home: Add context menu option to start playback from beginning for in progress items when resume in progress items on home is enabled
- Home: Make moving sections more resilient (esp. when moving fast/holding left/right)
- Home: Add “Minimize” and “Exit” options to user menu (touch based devices can’t easily hit the exit menu by using BACK)
- Episodes: Use season art as background if available
- Episodes: Show correct cast per episode, not from parent show
- Movies/Shows/Episodes: Add Directors (up to two) to the beginning of the cast list; support searching for director’s movies (currently not possible with shows/episodes)
- Episodes/Shows/Movies: Make “go to section” action actually visit the section instead of the home hub
- Remove most obsolete dividers in sub views
- Movies/Episodes: Properly vertically align audio/video/subtitle labels within textures
- Movies: Show duration for extras
- Postplay: Scroll titles (instead of cutting them off + ellipsis); scroll multiline summaries
- Item/AudioSettings: Don’t trim secondary title, scroll it
Videoplayer
- Modernize the usage of the Plex Media Decision Engine
- Use bitrate instead of resolution when asking the Plex Server for a decision (better transcode behaviour, especially with HEVC)
- Any transcode quality selection is now bitrate based, as the resolution can (and should) vary
- Add the ability to not spoil anything during playback
- Add fast resume/pause behaviour (use OK/ENTER to quickly resume when paused or pause when playing, instead of showing the OSD)
- When showing stream info, pressing RIGHT will show playerprocessinfo, pressing LEFT will show playerdebug
- Don’t skip to next episode after final credits marker was skipped if binge mode or skip postplay for TV isn’t active
- Never show postplay for movie extras, regardless of any postplay setting
- Allow for immediate skipping of a counting down marker (before you had to wait 1 second for that to work) (needs the respective AddonSetting enabled as well)
- PlayerVideoCurrentPlaylist: Scroll titles if they’re too long; allow vertical round-robining at the top boundary; allow closing the playlist by pressing LEFT
- Use uuid4() as session ID; keep session ID when switching streams; report session ID when sending timeline requests
- Remove artificial percentage-based virtual chapters (intro/outro are still generated if necessary)
- When stopping playback after idle, don’t start playback of next episode/playlist item
- Fix rare occasion where immediately going to next item in playlist/season would keep the “skip prev” button disabled, when the playlist/season was started at episode 1
- Ensure correct audio track was set after a handler was reused (skip to next video was pressed in player)
- SeekDialog/CurrentPlaylist: Mark previous episodes/items as watched in current playlist during a multi-item playback session
- SeekDialog/CurrentPlaylist: Show progress indicators for items in playlist; “live” snapshot of current video progress when opened as well
Core:
- Add Autoupdater (for beta releases)
- VideoPlayer/Timeline event improvements
- Ship certificate bundle and allow manual certificates
- Improve background resolution by allowing a manual scale value
- Fix Collections
- Fix Playlists
- Improve VideoPlaylists
- Fix Postplay issues
- Fix MusicPlayer
- Migrate to InfoTags for Kodi >= 20, removes deprecation warning for setInfo
- Fix HTTPConnection was never async. Unify Asynchronicity between HTTPConnection and HTTPSConnection via AsyncConnectionMixin
- Add requests cache for Plex data (can also be persisted), to speed up re-visiting resource-heavy views
- Fix core networking issues
- Basic support for external players. Does not support seeking or resuming inside external players but tries to keep the playback and resume states (for resuming an item with an external player you’ll have to seek there yourself); only supports path mapping if the external player can access the same path PM4K sees
- Core/Transcode/Audio: Allow audio transcode targets ‘mp3’, ‘ac3’, ‘aac’, ‘opus’, ‘vorbis’, ‘eac3’, ‘flac’, ‘alac’ (new: eac3, vorbis, flac, alac)
- Improve audio stream type detection
- Improve correct audio stream selection during certain events fixing Kodi quirks
- Add setting to loop theme music (default: on)
- Harden VideoPlayer
- Implement cleaner shutdown functionality
- Support custom theme.mp3 theme music for TV shows and movies (additional extensions: 'ac3', 'aac', 'opus', 'vorbis', 'eac3', 'flac', 'alac')
- Watchlist/Core/ThemeMusic: While traversing items of multiple types (movies and shows), properly stop or start theme music if necessary
- Support Plex markers as watched indicators
- Check plex.direct dns rebind issues more thoroughly and don’t completely rely on the protection flags from the Plex server registry (often false); can lead to a slightly longer bootup time
- Fix plex.direct host mapping not being triggered in certain situations (local docker IP mapped to VM for example)
- Don’t consider a resolved plex.direct domain with IP 0.0.0.0 as “successfully resolved”
- Force plex.direct connectivity check if the current connection has hostname issues (should fix certain setups with manual connections/LAN connections without allowing insecure local connections, falling back to plex.direct)
- Home/Movies/Shows/Episodes/Libraries: Implement generic watched toggle; toggle watched via keyboard mapping “w” (buttonCode: 61527)
- Home: Don’t fail hard when no currently selected server is available
- Home: After selecting an unavailable server from the dropdown, shutdown wasn’t possible
- Write templates to user directory instead of plugin directory when env var INSTALLATION_DIR_AVOID_WRITE is set (useful when plugin directory isn’t writable)
- AddonSettings: Use 850ms as new default for the Alternate seek fix (was: 500ms)
- Bring back screensaver.
- Optionally allow direct play for resolutions above 4K
Translations
- Update translations for Spanish (100%), French (75%), Chinese (90%), Hungarian (100%), Italian (63%)
Addons:
- Provide the Plextuary skin with optimizations for CoreELEC and CoreELEC CPM
- Plextuary: Allow customization of Exit menu
- Add "McFontFace" Kodi font management plugin
- Add "PM4K Log Uploader" plugin
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
0.7.9-rev3
- 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
0.7.9-rev2
-
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: D...
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-rev3
- 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 (might not work for Kodi 18, you'll need to exempt plex.direct from your router's DNS rebind protection list)
- 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