## v7.3.0 ### Fixed - Revert change to busy polling interval #1339 - Prune invalid entries from DB when closing connection #1331 - Fix regressions with SQLite db operations #1331 - Disable label masks being used in Kodi 18 #1327 - Python 2 compatibility workaround for lack of timeout when trying to acquire an RLock #1327 - More expansive handling of inconsistent urllib3 exception re-raising - Fix regression in handling audio only setting after d154325c5b672dccc6a17413063cfdeb32256ffd - Fix comments not using correct sort methods - Fix incorrectly using playlist cache entries that have been invalidated by playlist modification - Fix some context menu actions failing for video item bookmarks - Ensure listings and items added by the addon have correct sort order - Fix resetting client region when playing media with subtitles enabled - Only add playable items to playlist when adding related items - Fix using invalid default end limit with Playlist.GetItems JSONRPC method - Fix conversion of SRT subtitles to WebVTT #1256 - Workaround playback failure of progressive streams - Fix re-sorting live search lists - Disable use of custom thumbnail urls #1245 - Workaround addon service not starting prior to plugin invocation #1298 - Fix unofficial version using localised sort order #1309 - Fix parsing of logged_in query parameter - Fix typo in YouTubePlayerClient error hook - Fix not resolving single playable items when using the uri2addon plugin endpoint #1300 - Correctly check whether access tokens are available to be used for player requests - Fix not correctly resetting client instance - Dont restore container position on forced refresh when playback ends - Better handle urllib3 re-raising low level errors but sometimes not - Ignore unused parameters in item constructors #1282 - Various misc fixes for focus and position loss on refresh - Fix possible unnecessary listing refresh after playlist action - Don't check items added to non music or video playlists - Re-enable setting for displaying saved playlists #1023 - Fix exceptions with using non-existent request response as context manager #1279 - Use different default player client request which provides more captions in response #1250 - Exclude retrying player clients that do not support authentication if authentication is required #1273 - Only request authenticated player request once, if not otherwise required #1273 - Fix not updating breadcrumb after certain context menu actions - Fix setting focus on items in listing when parent item is not shown #1012 - Reduce CPU usage of service runner loop when idle - Simplify window history fallback for search inputs #1070 #1266 - Fix MPD quality selection #1268 - Fix stream feature for disabling HFR at max resolution #539 - Don't re-raise BrokenPipeError in RequestHandler.handle_one_request #1259 - Fix including details in label2 mask when video details in listings is disabled #1265 - Fix incorrect modification of custom thumbnails #1245 - Refresh stale cached entries if new player data is available #1259 - Disable use of captions from clients that are sometimes aggressively rate limited #1250 - Switch browse client for recommended videos #1254 - Ignore failing player requests that require signing in but won't accept OAuth2 authentication #1254 - Improve querying of GUI info to work with widgets and custom windows #1243 - Fix using locale specific abbreviations for weekday and month in If-Modified-Since header #1246 - Workaround various Kodi 18 and Python 2 issues #1246 - Fix inconsistencies between item IDs used as params that could result in exceptions - Fix generated page token not working for first page in listing - Don't replace non-standard JPEG thumbnails with WebP thumbnails #1245 - Fix not parsing infolabels used in plugin url path #1239 #1243 - Fix not parsing infolabels used as plugin url query params #1239 - Fix unnecessarily processing window properties #1238 - Workaround for distributions that patch Kodi to disable System.InternetState #1224 - Workaround issue with search not returning items if no search query is used - Misc updates to try and prevent some GVS requests from failing #1222 - Fix not correctly updating channel details of subscriptions #1226 - Redact IP address in stream urls when not using InputStream.Adaptive - Fix implementation of logging module debugging property - Python 2 compatibility fix to automatically handle timezones when determining timestamps - Fix not skipping invalid items in plugin list response - Fix not showing Create bookmark item if bookmarks list is empty - Python 2 compatibility fixes for pretty print logging and lack of datetime.datetime.timestamp - Fix typo resulting in spatial audio streams not being correctly enabled/disabled - Ensure DELETE API requests are properly authorised #1226 - Update XbmcContext.localize to handle string interpolation #1225 - Attempt to mitigate possible memory leaks associated with use of Python Requests - Ensure plugin folders in channel listings are not processed as YouTube items - Fix not refreshing cached data when not logged in #1224 - Fix potentially misidentifying vp9.2 video streams #1222 - Fix not fully redacting logged stream data - Fix clip start and end time parsing - Fix possible exception when fetching subtitles after http server fails to wakeup - Improve concurrent JSON file IO operations #1218 - Change pruning of sqlite databases to avoid potential deadlocks #1161 - Avoid potential deadlock in v3._process_list_response #1161 - Improve listing pre and post fill methods #1161 - Fix repeating previous V1 browse/next requests when no continuation is available #1161 - Fix typo in allowable search parameters - Ensure best available quality is used for thumbnails as fanart #1212 - Fix double forward slash in channel url in description - Fix toggling watched status on non-forced refresh - Ensure logged in status is properly (re)set when client is reset #1210 - Don't rely on dict insertion order for client groups #1185 - Ensure authenticated requests are used only when necessary #1210 #1196 - Workaround playlistNotFound error in Related Videos #1210 #1196 - Fix stream quality checks incorrectly identifying 480p streams as 360p - Add workarounds for various Kodi/ISA subtitle incompatibilities and formatting issues #489 #1147 - Identify API requests requiring authentication - Fix incorrect page number used when post filling listings - Prevent unnecessary API requests when refreshing listing that uses channel filters - Improve loading of malformed/partial access_manager.json #1173 ### Changed - Improve robustness of fetching recommended and related videos - Improve workarounds for SQLite concurrency issues - Remove possibly invalid access token if an authentication error occurs - Better organise and use standard labels for http server address and port settings - Try to make http server IP address selection even more obvious when running Setup Wizard #1320 - Improve logging of errors caused by localised strings that have been incorrectly translated - Improve offline access to cached data - Updates to SQLite database lock handling - Ignore player request failures that may incorrectly indicate a need to sign-in #1312 - Include playlist_id listitem property for items from virtual playlists - Don't list users own playlists in listing of saved playlists - Allow sign-in when partially logged in without needing to sign-out - Identify if user is only partially logged in - Use persistent visitor data where possible except when incognito - Allow additional query parameters to be inherited from parent listing #1282 - Improve process for initial player request if remote history not enabled #1273 - Disable unusable player clients #1273 - Disable multiple busy dialog crash workarounds in Kodi 22 - Include visitorData in subtitle request headers along with referer #1250 - Revert use of WEBP thumbnails #1245 - Improve notification of player request errors #1254 #1262 - Add notification if reCaptcha check is required - Improve workarounds for failing authorised player requests #1254 - Allow plugin url query parameters to hide folders in search and channel playlist listing #1251 - Use WebP thumbnails instead of JPEG thumbnails - Update Setup Wizard for the various new Stream Features that have been added - Don't cache playback associated requests - Bypass requests cache when a listing is refreshed - Update order and wording of prompts used when adding custom bookmark - Allow bookmarking channel of videos within Bookmarks list - Return empty listing on failure to parse YouTube url - Update known itag details - Do not show notification when automatically removing played video from Watch Later list - Add visitor ID to stream headers #1222 - Improve logging of adaptive streams from player requests #1222 - Identify and de-prioritise DRC audio streams - Specifically use elapsed time for plugin profiling if available - Use new BookmarkItem class for custom bookmarks to allow updating details like normal bookmarks - Default to list as path command if not given when navigating to various internal listings - Re-enable http server idle shutdown for all platforms - Update default cache size to 50 MiB - Enable caching of YouTube virtual lists #1220 - Improve fetching of cached playlist items #1220 - Allow for use of last known good value if JSON file read IPC timeout occurs #1220 - Limit JSON-RPC usage when interacting with Kodi playlist #1220 - Improve syncing local history with Kodi play count - api_keys.json not backwards compatible with older addon versions - Set default live stream type to adaptive HLS - Allow saving of play count and last played date for live streams - Disable script.trakt scrobbling when playing YouTube videos - Allow failure of unauthorised player requests to be ignored #1211 - Try to prevent misuse of strm files #1208 - Update thumbnails size settings and selection logic #1204 - Only show folders in channel playlists listing on first page and if not hidden - Improve cache performance and reliability - Improve management of user data stored as JSON files ### New - Add refresh to context menu of playlists - Allow watch urls from music.youtube.com to be directly handled by the addon - Allow urls from www.youtubekids.com to be directly handled by the addon - Add support for listing members only content of channels - Add selections to hide various folders from listings #1282 - Add support for additional OAuth2 client to allow playback of age restricted videos #1273 - Add dubbed audio preferences to stream features #1036 #1228 #1232 - Add support for directly adding YouTube URL as custom bookmark - Add support for 3D/VR video and spatial audio in stream selections - Add Setup Wizard steps to change custom Watch History and Watch Later playlists to internal YouTube lists #1210 - Add support for viewing YouTube history list (HL) - Add support for podcasts in related videos #1161 - Add notification on successfully adding item to local Watch Later list #1210 - Add support for saving/removing playlists to/from YouTube library (Saved Playlists) #1023 - Add support for removing liked videos from YouTube Liked videos list - Add support for auto removing videos from YouTube Watch Later list after playback #1210 - Add support for removing videos from YouTube Watch Later list #1210 - Add support for adding videos to YouTube Watch Later list #1210 - Initial support for viewing Saved Playlists #1023 - Initial support for viewing YouTube Watch Later list (WL) #1210 - Implement request cache - Add ability to create custom bookmarks #1208 - Add subtitle type selection to stream features - Add plugin execution timeout to forcibly terminate execution after set time limit #1161 - Improve addon logging using customised Python logging module ## v7.3.0+beta.10 ### Fixed - Prune invalid entries from DB when closing connection #1331 - Fix regressions with SQLite db operations #1331 ## v7.3.0+beta.9 ### Fixed - Disable label masks being used in Kodi 18 #1327 - Python 2 compatibility workaround for lack of timeout when trying to acquire an RLock #1327 - More expansive handling of inconsistent urllib3 exception re-raising ### Changed - Improve robustness of fetching recommended and related videos - Improve workarounds for SQLite concurrency issues - Remove possibly invalid access token if an authentication error occurs - Better organise and use standard labels for http server address and port settings - Try to make http server IP address selection even more obvious when running Setup Wizard #1320 - Improve logging of errors caused by localised strings that have been incorrectly translated ## v7.3.0+beta.8 ### Fixed - Fix regression in handling audio only setting after d154325c5b672dccc6a17413063cfdeb32256ffd - Fix comments not using correct sort methods - Fix incorrectly using playlist cache entries that have been invalidated by playlist modification - Fix some context menu actions failing for video item bookmarks - Ensure listings and items added by the addon have correct sort order - Fix resetting client region when playing media with subtitles enabled ### Changed - Improve offline access to cached data - Updates to SQLite database lock handling ## v7.3.0+beta.7 ### Fixed - Only add playable items to playlist when adding related items - Fix using invalid default end limit with Playlist.GetItems JSONRPC method - Fix conversion of SRT subtitles to WebVTT #1256 - Workaround playback failure of progressive streams - Fix re-sorting live search lists - Disable use of custom thumbnail urls #1245 - Workaround addon service not starting prior to plugin invocation #1298 - Fix unofficial version using localised sort order #1309 - Fix parsing of logged_in query parameter ### Changed - Ignore player request failures that may incorrectly indicate a need to sign-in #1312 - Include playlist_id listitem property for items from virtual playlists ### New - Add refresh to context menu of playlists - Allow watch urls from music.youtube.com to be directly handled by the addon - Allow urls from www.youtubekids.com to be directly handled by the addon ## v7.3.0+beta.6 ### Fixed - Fix typo in YouTubePlayerClient error hook ## v7.3.0+beta.5 ### Fixed - Fix not resolving single playable items when using the uri2addon plugin endpoint #1300 - Correctly check whether access tokens are available to be used for player requests - Fix not correctly resetting client instance - Dont restore container position on forced refresh when playback ends - Better handle urllib3 re-raising low level errors but sometimes not - Ignore unused parameters in item constructors #1282 ### Changed - Don't list users own playlists in listing of saved playlists - Allow sign-in when partially logged in without needing to sign-out - Identify if user is only partially logged in - Use persistent visitor data where possible except when incognito ## v7.3.0+beta.4 ### Fixed - Various misc fixes for focus and position loss on refresh - Fix possible unnecessary listing refresh after playlist action - Don't check items added to non music or video playlists - Re-enable setting for displaying saved playlists #1023 - Fix exceptions with using non-existent request response as context manager #1279 - Use different default player client request which provides more captions in response #1250 - Exclude retrying player clients that do not support authentication if authentication is required #1273 - Only request authenticated player request once, if not otherwise required #1273 - Fix not updating breadcrumb after certain context menu actions - Fix setting focus on items in listing when parent item is not shown #1012 - Reduce CPU usage of service runner loop when idle - Simplify window history fallback for search inputs #1070 #1266 - Fix MPD quality selection #1268 - Fix stream feature for disabling HFR at max resolution #539 - Don't re-raise BrokenPipeError in RequestHandler.handle_one_request #1259 - Fix including details in label2 mask when video details in listings is disabled #1265 - Fix incorrect modification of custom thumbnails #1245 - Refresh stale cached entries if new player data is available #1259 - Disable use of captions from clients that are sometimes aggressively rate limited #1250 ### Changed - Allow additional query parameters to be inherited from parent listing #1282 - Improve process for initial player request if remote history not enabled #1273 - Disable unusable player clients #1273 - Disable multiple busy dialog crash workarounds in Kodi 22 - Include visitorData in subtitle request headers along with referer #1250 - Revert use of WEBP thumbnails #1245 - Improve notification of player request errors #1254 #1262 - Add notification if reCaptcha check is required - Improve workarounds for failing authorised player requests #1254 ### New - Add support for listing members only content of channels - Add selections to hide various folders from listings #1282 - Add support for additional OAuth2 client to allow playback of age restricted videos #1273 ## v7.3.0+beta.3 ### Fixed - Switch browse client for recommended videos #1254 - Ignore failing player requests that require signing in but won't accept OAuth2 authentication #1254 - Improve querying of GUI info to work with widgets and custom windows #1243 - Fix using locale specific abbreviations for weekday and month in If-Modified-Since header #1246 - Workaround various Kodi 18 and Python 2 issues #1246 - Fix inconsistencies between item IDs used as params that could result in exceptions - Fix generated page token not working for first page in listing - Don't replace non-standard JPEG thumbnails with WebP thumbnails #1245 - Fix not parsing infolabels used in plugin url path #1239 #1243 ### Changed - Allow plugin url query parameters to hide folders in search and channel playlist listing #1251 ## v7.3.0+beta.2 ### Fixed - Fix not parsing infolabels used as plugin url query params #1239 - Fix unnecessarily processing window properties #1238 ## v7.3.0+beta.1 ### Fixed - Workaround for distributions that patch Kodi to disable System.InternetState #1224 - Workaround issue with search not returning items if no search query is used - Misc updates to try and prevent some GVS requests from failing #1222 ### Changed - Use WebP thumbnails instead of JPEG thumbnails - Update Setup Wizard for the various new Stream Features that have been added - Don't cache playback associated requests - Bypass requests cache when a listing is refreshed - Update order and wording of prompts used when adding custom bookmark ### New - Add dubbed audio preferences to stream features #1036 #1228 #1232 ## v7.3.0+alpha.5 ### Fixed - Fix not correctly updating channel details of subscriptions #1226 - Redact IP address in stream urls when not using InputStream.Adaptive - Fix implementation of logging module debugging property - Python 2 compatibility fix to automatically handle timezones when determining timestamps - Fix not skipping invalid items in plugin list response ## v7.3.0+alpha.4 ### Fixed - Fix not showing Create bookmark item if bookmarks list is empty - Python 2 compatibility fixes for pretty print logging and lack of datetime.datetime.timestamp - Fix typo resulting in spatial audio streams not being correctly enabled/disabled - Ensure DELETE API requests are properly authorised #1226 - Update XbmcContext.localize to handle string interpolation #1225 - Attempt to mitigate possible memory leaks associated with use of Python Requests ### Changed - Allow bookmarking channel of videos within Bookmarks list - Return empty listing on failure to parse YouTube url - Update known itag details ### New - Add support for directly adding YouTube URL as custom bookmark ## v7.3.0+alpha.3 ### Fixed - Ensure plugin folders in channel listings are not processed as YouTube items - Fix not refreshing cached data when not logged in #1224 - Fix potentially misidentifying vp9.2 video streams #1222 - Fix not fully redacting logged stream data ### Changed - Do not show notification when automatically removing played video from Watch Later list - Add visitor ID to stream headers #1222 - Improve logging of adaptive streams from player requests #1222 - Identify and de-prioritise DRC audio streams - Specifically use elapsed time for plugin profiling if available - Use new BookmarkItem class for custom bookmarks to allow updating details like normal bookmarks - Default to list as path command if not given when navigating to various internal listings ### New - Add support for 3D/VR video and spatial audio in stream selections ## v7.3.0+alpha.2 ### Fixed - Fix clip start and end time parsing - Fix possible exception when fetching subtitles after http server fails to wakeup ### Changed - Re-enable http server idle shutdown for all platforms - Update default cache size to 50 MiB - Enable caching of YouTube virtual lists #1220 - Improve fetching of cached playlist items #1220 - Allow for use of last known good value if JSON file read IPC timeout occurs #1220 - Limit JSON-RPC usage when interacting with Kodi playlist #1220 ### New - Add Setup Wizard steps to change custom Watch History and Watch Later playlists to internal YouTube lists #1210 ## v7.3.0+alpha.1 ### Fixed - Improve concurrent JSON file IO operations #1218 - Change pruning of sqlite databases to avoid potential deadlocks #1161 - Avoid potential deadlock in v3._process_list_response #1161 - Improve listing pre and post fill methods #1161 - Fix repeating previous V1 browse/next requests when no continuation is available #1161 - Fix typo in allowable search parameters - Ensure best available quality is used for thumbnails as fanart #1212 - Fix double forward slash in channel url in description - Fix toggling watched status on non-forced refresh - Ensure logged in status is properly (re)set when client is reset #1210 - Don't rely on dict insertion order for client groups #1185 - Ensure authenticated requests are used only when necessary #1210 #1196 - Workaround playlistNotFound error in Related Videos #1210 #1196 - Fix stream quality checks incorrectly identifying 480p streams as 360p - Add workarounds for various Kodi/ISA subtitle incompatibilities and formatting issues #489 #1147 - Identify API requests requiring authentication - Fix incorrect page number used when post filling listings - Prevent unnecessary API requests when refreshing listing that uses channel filters - Improve loading of malformed/partial access_manager.json #1173 ### Changed - Improve syncing local history with Kodi play count - api_keys.json not backwards compatible with older addon versions - Set default live stream type to adaptive HLS - Allow saving of play count and last played date for live streams - Disable script.trakt scrobbling when playing YouTube videos - Allow failure of unauthorised player requests to be ignored #1211 - Try to prevent misuse of strm files #1208 - Update thumbnails size settings and selection logic #1204 - Only show folders in channel playlists listing on first page and if not hidden - Improve cache performance and reliability - Improve management of user data stored as JSON files ### New - Add support for viewing YouTube history list (HL) - Add support for podcasts in related videos #1161 - Add notification on successfully adding item to local Watch Later list #1210 - Add support for saving/removing playlists to/from YouTube library (Saved Playlists) #1023 - Add support for removing liked videos from YouTube Liked videos list - Add support for auto removing videos from YouTube Watch Later list after playback #1210 - Add support for removing videos from YouTube Watch Later list #1210 - Add support for adding videos to YouTube Watch Later list #1210 - Initial support for viewing Saved Playlists #1023 - Initial support for viewing YouTube Watch Later list (WL) #1210 - Implement request cache - Add ability to create custom bookmarks #1208 - Add subtitle type selection to stream features - Add plugin execution timeout to forcibly terminate execution after set time limit #1161 - Improve addon logging using customised Python logging module ## v7.2.0.3 ### Fixed - Fix performance regression with channel filters - Fix regression preventing video playback from Kodi Info dialog #1184 - Fix exception in youtube.helper.v3.response_to_items when using Kodi 18 (Python 2) #1188 - Fix exception in YouTubeRequestClient.json_traverse when using Kodi 18 (Python 2) #1187 - Fix handling of custom Watch Later playlist in add to playlist dialog - Fix Liked video playlist not loading #1175 - Fix typo preventing some video only searches from working - Fix incorrect deletion of provider parameter in 10c3758 #1160 - Fix possible hangs in multiple busy dialog workaround - Fix misidentifying channels in channel filter #1159 - Attempt to avoid race condition where user input occurs prior to window rerouting #1021 - Fix incorrectly referencing channels as playlist in My Subscriptions after db44928 - Improve handling of invalid playlists in My Subscriptions after db44928 - Update YouTube.get_related_videos and YouTube.get_related_for_home #1161 - Fix error with listing comments if number of replies is 1000+ - Fix regression in opening playlists of logged in user #1154 - Fix regressions in checking channel filters - Clear old function cache values on initial run after install #1150 - Fix My Subscriptions not loading old or previously accessed content #1123 - Manually redirect video server requests if required #1127 #1135 - Improve logging of client ID #1117 - Fix possible exception that may occur if video thumbnails fail to update - Fix unsubscribing from My Subscriptions #1137 - Fix folders for channel shorts and live streams not being routed correctly #988 #1060 - Update YouTube.get_recommended_for_home #1107 - Improve url resolver error handling - Fix showing Uploads playlist if all videos are private #988 #1060 - Fix updating progress of background progress dialogs #1032 - Fix showing duplicate channel progress dialogs in My Subscriptions #1032 - Ensure correct playlist_type_hint is used with audio only playback - Workaround various issues with Kodi window opening and history navigation when accepting search inputs #1070 - Fix various Python2 unicode encoding errors - Disable refresh parameter on Kodi forced refresh #1072 - Improve handling of playlists feeds in My Subscriptions - Reprioritise clients and avoid re-authenticating requests if authentication already provided #1076 - Reduce CPU usage while waiting for HTTP server input/output to be ready #1103 - Fix repeated subtitle queries/prompts #1056 - Fix always using video playlist even for audio items - Improve error handling and http server shutdown/restart #1056 - Fix possible exception in creating request clients if client_data is not provided - Only force playback if plugin invocation was triggered through UI - Ensure that any set UI playback properties are cleared if playback does not start - Fix episode and season getter/setter not being available for AudioItem - Fix full playlist listings not being able to be redirected - Fix audio langauge fallback selection #989 #1036 - Also correctly distinguish between original vs default audio streams - Respect Kodi Prefer default audio streams setting - Applies to both default audio and original audio - Fix search context menu items for Next Page and New Search items - Fix lock acquire/release logic in My Subscriptions #1032 - Avoid potential player request loop - Revert using configured language settings for player requests - Fix missing message argument for InvalidGrant #1038 - Fix incorrectly trying to refresh access tokens when no refresh tokens exist #1038 - Fix issues with handling duplicated and unavailable items in lists - Fix issues with processing channel handles - Fix processing of "q" and "channelId" search query params - Fix using incorrect client headers with cURL when ISA is not used - Fix incorrect use of str.lstrip - Ensure language and region are passed to StreamInfo instances #989 - Fix not updating cache for empty feeds in My Subscriptions - Make parsing and serialising of list type parameters a reversible operation - Fix logic used to filter out various type of streams - Was previously checking any inclusion filters - Now any exclusion filter that matches will filter stream out - Fix plugin URI redirect from search - Fix incorrect path handling during migration of old sqlite databases in Setup Wizard - Fix errors with progress dialogs in Kodi 18 #1000 - Fix remote watch history not updating #1008 - Fix error when all subtitles are requested - Fix Python2 syntax error #1000 - Fix interaction between certain plugin URI query parameters when used in STRM files - Fix playing clips in a playlist #1007 - Fix not identifying own playlists in personal channel - Fix API requests when not signed in #1013 - Fix potential leak of sensitive data via HTTPServer logging #1016 - Fix adding/removing subscriptions to/from filter list - Fix playback not working when no API key is provided #1018 - Fix using provided keys for requests that can't use them #1018 - Fix window redirect on video playback failure #1018 ### Changed - Update client details #1185 - Properly identify custom History playlist in add to playlist dialog - Use channel handle by default when adding/removing/matching channels - Channel filters may need to be updated to use handles instead of channel name - e.g. "@channel_1_handle,@channel_2_handle" instead of "channel 1 name, channel 2 name" - Channels can be added/removed from the filter through the Subscriptions or Bookmarks context menu - Use channel handle as artist and in channel info for visibility - Reduce number of GET requests when using v3 Data API - Improve listing filler handling #1035 - Migrate My Subscriptions, Recommendations, Related, Trending and channel listings to use new filler methods - Show comment statistics before text in listings - Respect hide_folders plugin url query parameter in My Subscriptions - Also respect value of hide_videos (new), hide_shorts, and hide_live params - Improve handling of using filtered playlists in channels #988 #1060 - Base64 encode/decode header query param to obfuscate in debug logs - Update client details - Automatically handle different types of identifiers as channel_id parameter - Improve pagination of filtered listings #984 #1035 - Split My Subscriptions into Long Form, Shorts and Live folders #988 - Various improvements to thread handling and cache usage in My Subscriptions #1072 - Delay progress dialog creation if other dialogs are open #1072 - Minor optimisation and improve reliability of stream proxy - Update client details and include player response visitorData - Improve handling of invalid filter attributes #1102 #984 - Disable http server idle shutdown on Linux systems #1056 - Fetch last updated subscription feeds first and fetch playlists feeds in My Subscriptions - Hide empty/unavailable standard playlists in channels #1060 - Store date added to playlist for playlist items #1059 - Add indication to Next page item if listing has been filtered #1035 - Proxy stream requests using HTTPServer #527 #1040 - Correct primary video server url #1040 - Allow skipping adaptive formats for clients that may need PO tokens #1040 - Add option to redirect streams using stream proxy #1040 - As headers are not matched this can lead to detection of Kodi being used as a client - Use default http server listen address of 127.0.0.1 - Allow playback parameters to be applied for entire listings - Further improvements to fallback window handling to minimise crashes and loss of window history - Enable intercepting and redirecting PlayMedia calls - Improve handling of search keyboard input when navigating through window history - Also allow bookmarks/favourites to be created for Quick Search - Remove need to store search query in data cache - Improve handling of searching for YouTube urls - Store modified date from player requests as publishedAt for local history #991 - Update player request client details - Reorganise video item context menu - Re-enable player request clients that require specific OAuth tokens - Re-enable OAuth authorisation for YouTube TV - Update itags for 30fps HLS VP9.2 streams - Update player client details and selections - Add some ultra low quality itags - Optimise wakeup to ensure http server is only started when required - Improve check for Kodi subtitle language - Improve handling of audio language selection #989 - Replace preferred language subtitle option with preferred language + fallback + no ASR option #992 - Allow for caching of subscriptions API requests in My Subscriptions - Only use OAuth tokens if necessary #994 #996 - Set default live stream type to MPEG-DASH for Kodi 21+ #1004 - Skip asking or re-ordering playlists if there is only 1 item in the list - Prevent caching in incognito mode - Improve caching and updating of playlist details #1024 - Improve listen address config in Setup Wizard #1016 - Also make 127.0.0.1 the default listen address - Fallback to 0.0.0.0 if no other local address works ### New - Add hide_progress plugin url query parameter - Show broadcasting streams at the top of channel live streams folder listings #1092 - Send JSON-RPC event notification when video playback fails - Add additional debug logging of complete API response content #1107 - Add "Play recently added" context menu item to playlists #1059 - Will play all videos added to the playlist in the last day - Allow channels and playlists to be played from Info dialog - Add IPv6 support for http server #1039 - Show total number of uploads, shorts and live videos in channel playlists - Add support for more channel url formats - Update display of comments to be match other listings - Make comment details follow "Show video details in video lists" setting - Allow various sorting options - Truncate comment to 140 characters in listing, full comment available in info dialog - Show user thumbnail in listing - Show user with thumbnail in info dialog - Show video/comment details in navigation breadcrumb bar - Overhaul update of fanart and other channel info for listings - Add additional channel info to all items in listings in one pass - channel name thumbnail in info dialog - channel name in context menu items - channel fanart if enabled - Reduce network requests - Improve cache usage - Reduce thread usage - Add custom Shorts duration #984 - Allow use of HLS streams in external players - Also allows for playing in Kodi without InputStream.Adaptive - Add ability to create arbitrary filter criteria to My Subscriptions #984 - "{ATTR_1}{OPERATOR_1}{VALUE_1}[{ATTR_X}{OPERATOR_X}{VALUE_X}...]" - where ATTR_X can be any valid item getter or property e.g. - "duration", "title", "artists"/"artists_string", "plot", "date", etc. or - ".live", ".upcoming", ".completed" etc. Note the "." prefix - where OPERATOR_X can be - ">", ">=" (default), "<", "<=", "=", "==", "!=" typically for a int/float/bool type VALUE or - "contains", "startswith", "endswith", "search" for a string type VALUE - where VALUE_X is the desired criteria value. - String type values are wrapped in double quote marks eg. "example" - "," must be encoded as "%2C" eg. "example,test" becomes "example%2Ctest" - "}" must be encoded as "%7D" eg. "example}test" becomes "example%7Dtest" - any number of criteria rules can be used together - rules seperated by a comma are OR rules - rules contained within a comma group are AND rules - Add filler parameter to v3.response_to_items - Allows listings to be recursively filled after post request filtering - Also show progress dialog for all listings - Add support for sequentially filling Recommendations listing - Add support for sequentially filling Trending listing - Add new advanced list filter setting - Works in the same manner as the My Subscriptions filter, but for all listings - Can also be set using the item_filter plugin URI query parameter - Add option to prefer lower resolution streams for unselected codecs - Populate My Subscription listings using feed details - Store video details from player requests for local history #991 - Add separate Shorts sub-folder in Channel folders #988 - Implementation by @mhomak - Allow adding/removing bookmarks to/from filter list - Add direct playback of temporary playlists from YouTube or plugin urls in the form - plugin://plugin.video.youtube/play?video_ids=xxxxxxxx,xxxxxxxx ## v7.2.0+beta.9 ### Fixed - Fix incorrect deletion of provider parameter in 10c3758 #1160 - Fix possible hangs in multiple busy dialog workaround - Fix misidentifying channels in channel filter #1159 - Attempt to avoid race condition where user input occurs prior to window rerouting #1021 - Fix incorrectly referencing channels as playlist in My Subscriptions after db44928 - Improve handling of invalid playlists in My Subscriptions after db44928 - Update YouTube.get_related_videos and YouTube.get_related_for_home #1161 - Fix error with listing comments if number of replies is 1000+ ### Changed - Use channel handle by default when adding/removing/matching channels - Channel filters may need to be updated to use handles instead of channel name - e.g. "@channel_1_handle,@channel_2_handle" instead of "channel 1 name, channel 2 name" - Channels can be added/removed from the filter through the Subscriptions or Bookmarks context menu - Use channel handle as artist and in channel info for visibility - Reduce number of GET requests when using v3 Data API - Improve listing filler handling #1035 - Migrate My Subscriptions, Recommendations, Related, Trending and channel listings to use new filler methods - Show comment statistics before text in listings - Respect hide_folders plugin url query parameter in My Subscriptions - Also respect value of hide_videos (new), hide_shorts, and hide_live params ### New - Add hide_progress plugin url query parameter ## v7.2.0+beta.8 ### Fixed - Fix regression in opening playlists of logged in user #1154 - Fix regressions in checking channel filters ## v7.2.0+beta.7 ### Fixed - Clear old function cache values on initial run after install #1150 ## v7.2.0+beta.6 ### Fixed - Fix My Subscriptions not loading old or previously accessed content #1123 - Manually redirect video server requests if required #1127 #1135 - Improve logging of client ID #1117 - Fix possible exception that may occur if video thumbnails fail to update - Fix unsubscribing from My Subscriptions #1137 - Fix folders for channel shorts and live streams not being routed correctly #988 #1060 - Update YouTube.get_recommended_for_home #1107 ### Changed - Improve handling of using filtered playlists in channels #988 #1060 - Base64 encode/decode header query param to obfuscate in debug logs - Update client details - Automatically handle different types of identifiers as channel_id parameter - Improve pagination of filtered listings #984 #1035 - Split My Subscriptions into Long Form, Shorts and Live folders #988 ### New - Show broadcasting streams at the top of channel live streams folder listings #1092 ## v7.2.0+beta.5 ### Fixed - Improve url resolver error handling - Fix showing Uploads playlist if all videos are private #988 #1060 - Fix updating progress of background progress dialogs #1032 - Fix showing duplicate channel progress dialogs in My Subscriptions #1032 - Ensure correct playlist_type_hint is used with audio only playback - Workaround various issues with Kodi window opening and history navigation when accepting search inputs #1070 - Fix various Python2 unicode encoding errors - Disable refresh parameter on Kodi forced refresh #1072 - Improve handling of playlists feeds in My Subscriptions - Reprioritise clients and avoid re-authenticating requests if authentication already provided #1076 - Reduce CPU usage while waiting for HTTP server input/output to be ready #1103 ### Changed - Various improvements to thread handling and cache usage in My Subscriptions #1072 - Delay progress dialog creation if other dialogs are open #1072 - Minor optimisation and improve reliability of stream proxy - Update client details and include player response visitorData - Improve handling of invalid filter attributes #1102 #984 ### New - Send JSON-RPC event notification when video playback fails - Add additional debug logging of complete API response content #1107 ## v7.2.0+beta.4 ### Fixed - Fix repeated subtitle queries/prompts #1056 - Fix always using video playlist even for audio items - Improve error handling and http server shutdown/restart #1056 ### Changed - Disable http server idle shutdown on Linux systems #1056 - Fetch last updated subscription feeds first and fetch playlists feeds in My Subscriptions - Hide empty/unavailable standard playlists in channels #1060 - Store date added to playlist for playlist items #1059 - Add indication to Next page item if listing has been filtered #1035 ### New - Add "Play recently added" context menu item to playlists #1059 - Will play all videos added to the playlist in the last day ## v7.2.0+beta.3 ### Fixed - Fix possible exception in creating request clients if client_data is not provided - Only force playback if plugin invocation was triggered through UI - Ensure that any set UI playback properties are cleared if playback does not start - Fix episode and season getter/setter not being available for AudioItem - Fix full playlist listings not being able to be redirected ### Changed - Proxy stream requests using HTTPServer #527 #1040 - Correct primary video server url #1040 - Allow skipping adaptive formats for clients that may need PO tokens #1040 - Add option to redirect streams using stream proxy #1040 - As headers are not matched this can lead to detection of Kodi being used as a client - Use default http server listen address of 127.0.0.1 - Allow playback parameters to be applied for entire listings ## v7.2.0+beta.2 ### Fixed - Fix audio langauge fallback selection #989 #1036 - Also correctly distinguish between original vs default audio streams - Respect Kodi Prefer default audio streams setting - Applies to both default audio and original audio - Fix search context menu items for Next Page and New Search items - Fix lock acquire/release logic in My Subscriptions #1032 - Avoid potential player request loop - Revert using configured language settings for player requests - Fix missing message argument for InvalidGrant #1038 - Fix incorrectly trying to refresh access tokens when no refresh tokens exist #1038 - Fix issues with handling duplicated and unavailable items in lists - Fix issues with processing channel handles ### Changed - Further improvements to fallback window handling to minimise crashes and loss of window history - Enable intercepting and redirecting PlayMedia calls - Improve handling of search keyboard input when navigating through window history - Also allow bookmarks/favourites to be created for Quick Search - Remove need to store search query in data cache - Improve handling of searching for YouTube urls - Store modified date from player requests as publishedAt for local history #991 - Update player request client details - Reorganise video item context menu ### New - Allow channels and playlists to be played from Info dialog - Add IPv6 support for http server #1039 - Show total number of uploads, shorts and live videos in channel playlists - Add support for more channel url formats ## v7.2.0+beta.1 ### Fixed - Fix processing of "q" and "channelId" search query params - Fix using incorrect client headers with cURL when ISA is not used - Fix incorrect use of str.lstrip - Ensure language and region are passed to StreamInfo instances #989 - Fix not updating cache for empty feeds in My Subscriptions - Make parsing and serialising of list type parameters a reversible operation - Fix logic used to filter out various type of streams - Was previously checking any inclusion filters - Now any exclusion filter that matches will filter stream out - Fix plugin URI redirect from search - Fix incorrect path handling during migration of old sqlite databases in Setup Wizard - Fix errors with progress dialogs in Kodi 18 #1000 - Fix remote watch history not updating #1008 - Fix error when all subtitles are requested - Fix Python2 syntax error #1000 - Fix interaction between certain plugin URI query parameters when used in STRM files - Fix playing clips in a playlist #1007 - Fix not identifying own playlists in personal channel - Fix API requests when not signed in #1013 - Fix potential leak of sensitive data via HTTPServer logging #1016 - Fix adding/removing subscriptions to/from filter list - Fix playback not working when no API key is provided #1018 - Fix using provided keys for requests that can't use them #1018 - Fix window redirect on video playback failure #1018 ### Changed - Re-enable player request clients that require specific OAuth tokens - Re-enable OAuth authorisation for YouTube TV - Update itags for 30fps HLS VP9.2 streams - Update player client details and selections - Add some ultra low quality itags - Optimise wakeup to ensure http server is only started when required - Improve check for Kodi subtitle language - Improve handling of audio language selection #989 - Replace preferred language subtitle option with preferred language + fallback + no ASR option #992 - Allow for caching of subscriptions API requests in My Subscriptions - Only use OAuth tokens if necessary #994 #996 - Set default live stream type to MPEG-DASH for Kodi 21+ #1004 - Skip asking or re-ordering playlists if there is only 1 item in the list - Prevent caching in incognito mode - Improve caching and updating of playlist details #1024 - Improve listen address config in Setup Wizard #1016 - Also make 127.0.0.1 the default listen address - Fallback to 0.0.0.0 if no other local address works ### New - Update display of comments to be match other listings - Make comment details follow "Show video details in video lists" setting - Allow various sorting options - Truncate comment to 140 characters in listing, full comment available in info dialog - Show user thumbnail in listing - Show user with thumbnail in info dialog - Show video/comment details in navigation breadcrumb bar - Overhaul update of fanart and other channel info for listings - Add additional channel info to all items in listings in one pass - channel name thumbnail in info dialog - channel name in context menu items - channel fanart if enabled - Reduce network requests - Improve cache usage - Reduce thread usage - Add custom Shorts duration #984 - Allow use of HLS streams in external players - Also allows for playing in Kodi without InputStream.Adaptive - Add ability to create arbitrary filter criteria to My Subscriptions #984 - "{ATTR_1}{OPERATOR_1}{VALUE_1}[{ATTR_X}{OPERATOR_X}{VALUE_X}...]" - where ATTR_X can be any valid item getter or property e.g. - "duration", "title", "artists"/"artists_string", "plot", "date", etc. or - ".live", ".upcoming", ".completed" etc. Note the "." prefix - where OPERATOR_X can be - ">", ">=" (default), "<", "<=", "=", "==", "!=" typically for a int/float/bool type VALUE or - "contains", "startswith", "endswith", "search" for a string type VALUE - where VALUE_X is the desired criteria value. - String type values are wrapped in double quote marks eg. "example" - "," must be encoded as "%2C" eg. "example,test" becomes "example%2Ctest" - "}" must be encoded as "%7D" eg. "example}test" becomes "example%7Dtest" - any number of criteria rules can be used together - rules seperated by a comma are OR rules - rules contained within a comma group are AND rules - Add filler parameter to v3.response_to_items - Allows listings to be recursively filled after post request filtering - Also show progress dialog for all listings - Add support for sequentially filling Recommendations listing - Add support for sequentially filling Trending listing - Add new advanced list filter setting - Works in the same manner as the My Subscriptions filter, but for all listings - Can also be set using the item_filter plugin URI query parameter - Add option to prefer lower resolution streams for unselected codecs - Populate My Subscription listings using feed details - Store video details from player requests for local history #991 - Add separate Shorts sub-folder in Channel folders #988 - Implementation by @mhomak - Allow adding/removing bookmarks to/from filter list - Add direct playback of temporary playlists from YouTube or plugin urls in the form - plugin://plugin.video.youtube/play?video_ids=xxxxxxxx,xxxxxxxx ## v7.1.1.6 ### Fixed - Fix http server not listening on any interface if listen IP is 0.0.0.0 #927 - Standardise return type of LoginClient.refresh_token #932 - Fix curl headers not being used when set on path of setResolvedUrl listitem - Fix HEAD requests to MPD manifests - Fix various Python2 incompatible changes - Properly distinguish between VP9 and VP9.2 with HDR info - Fix http server not running when script shows client IP - Fix not listing full stream details in selection dialog - Fix translated subtitles not being available for some videos #945 - Fix labelling for auto dubbed audio tracks - Fix regressions in handling VP9.2 video streams - Fix error handling items without headers #946 - Fix incorrectly determining Kodi release name - Fix search window history navigation when using direct links - Fix Python2/Android incompatibilty when checking CPU count #958 - Fix method used to determine address of local network interface #938 - Fix potential infinite loop with corrupted access_manager.json - Various improvements to multiple busy dialog crash workarounds #938 - Fallback to search listing when search query is empty - Fix debug log string formatting error #938 - Fix duplicated separators in context menu - Fix Kodi builtin using wrong playlist type #938 - Ensure http server is started prior to creating MPD for playback #961 - Fix shuffle play of playlists not working - Fix plugin category label not being applied if content type not set - Fix Kodi navigating to root path of Video window if plugin listing fails - Fix loading of Watch Later playlist #971 - Also fix other incorrect/missing parameter names - Fix possible exception if plugin navigation fails #976 - Fix sign in when one or more access token requests fail #979 - Attempt to fix possible deadlock on http server shutdown - Fix potential infinite loop with old data from access_manager.json #980 - Reduce unnecessary window navigation fallback attempts - Fix incorrect duration display in Kodi 18 and Kodi 19 #999 - Fix possible error with getting names of bookmarks that have not been updated with info - Fix missing "Live" label in Kodi 18 - Fix uncaught exception when sign-in does not succeed #985 - Fix missing "Ask" translation string - Fix incorrect parameter name breaking auto-remove from Watch Later #993 - Fix processing of "q" and "channelId" search query params #1004 - Fix errors with progress dialogs in Kodi 18 #1000 - Fix remote watch history not updating #1008 - Fix API requests when not signed in #1013 - Fix playback not working when no API key is provided #1018 ### Changed - Improve display and update of bookmarks - Explicitly set http server protocol version to HTTP/1.1 - Improve logging - Use alternative streams to improve compatibility with external players - Improve https server sleep and wakeup #810 #951 - Update Setup Wizard to disable all alternative player settings if not required #938 - Improve support for optional search API parameters #689 - Ensure changing sort order of search replaces existing search - Use redirect in multiple busy dialog crash workaround #938 - Disable unusable alternate players #966 - Standardise plugin URIs for routing - path parameters used for folders and sub-folders - query parameters used for changing display modes, filtering, sorting and inputs - Don't retry server wakeup on error unless settings change - Allow ISA and MPD in 720p performance preset in Setup Wizard - Only use OAuth tokens if necessary #994 #996 ### New - Explicitly enable TCP keep alive #913 - Add localised title and description for videos, channels and playlists - Update display of playlists to show the following details: - item count - date - channel name - description - web url - podcast status - Update display of channels to show the following details: - view count - subscriber count - video count - date - description - channel name in description - web url - Add View all and Shuffle context menu items for playlists - New setting to enable debug logging for addon - Setting > Advanced > Logging > Enable debug logging - Improvements to searching - Add context menu items for changing sort order of saved searches #172 - Allow search parameters to be stored per search #172 #689 - Allow additional optional search parameters to be used #689 - Improve parsing of date offset when searching for completed live events - Add additional search type links to search results #689 - Add ability to replace window when rerouting using window_replace query parameter - Add search sort context menu items to search results #172 - Add prompts and notifications for deleting items and clearing lists - Add Quick Search and search management context menu items to Search folders - Add context menu items to Clear and Play All/Shuffle in Bookmarks/Watch Later/Watch History folders - Add progress dialog to My Subscription loading ## v7.1.1+beta.7 ### Fixed - Fix loading of Watch Later playlist #971 - Also fix other incorrect/missing parameter names ### Changed - Don't retry server wakeup on error unless settings change ## v7.1.1+beta.6 ### Fixed - Ensure http server is started prior to creating MPD for playback #961 - Fix shuffle play of playlists not working - Fix plugin category label not being applied if content type not set - Fix Kodi navigating to root path of Video window if plugin listing fails ### Changed - Use redirect in multiple busy dialog crash workaround #938 - Disable unusable alternate players #966 - Standardise plugin URIs for routing - path parameters used for folders and sub-folders - query parameters used for changing display modes, filtering, sorting and inputs ### New - Add Quick Search and search management context menu items to Search folders - Add context menu items to Clear and Play All/Shuffle in Bookmarks/Watch Later/Watch History folders - Add progress dialog to My Subscription loading ## v7.1.1+beta.5 ### Fixed - Fix Python2/Android incompatibilty when checking CPU count #958 - Fix method used to determine address of local network interface #938 - Fix potential infinite loop with corrupted access_manager.json - Various improvements to multiple busy dialog crash workarounds #938 - Fallback to search listing when search query is empty - Fix debug log string formatting error #938 - Fix duplicated separators in context menu - Fix Kodi builtin using wrong playlist type #938 ### Changed - Improve support for optional search API parameters #689 - Ensure changing sort order of search replaces existing search ### New - Add additional search type links to search results #689 - Add ability to replace window when rerouting using window_replace query parameter - Add search sort context menu items to search results #172 - Add prompts and notifications for deleting items and clearing lists ## v7.1.1+beta.4 ### Fixed - Fix incorrectly determining Kodi release name - Fix search window history navigation when using direct links ### Changed - Improve https server sleep and wakeup #810 #951 - Update Setup Wizard to disable all alternative player settings if not required #938 ### New - Improvements to searching - Add context menu items for changing sort order of saved searches #172 - Allow search parameters to be stored per search #172 #689 - Allow additional optional search parameters to be used #689 - Improve parsing of date offset when searching for completed live events ## v7.1.1+beta.3 ### Fixed - Fix not listing full stream details in selection dialog - Fix translated subtitles not being available for some videos #945 - Fix labelling for auto dubbed audio tracks - Fix regressions in handling VP9.2 video streams - Fix error handling items without headers #946 ### Changed - Use alternative streams to improve compatibility with external players ## v7.1.1+beta.2 ### Fixed - Standardise return type of LoginClient.refresh_token #932 - Fix curl headers not being used when set on path of setResolvedUrl listitem - Fix HEAD requests to MPD manifests - Fix various Python2 incompatible changes - Properly distinguish between VP9 and VP9.2 with HDR info - Fix http server not running when script shows client IP ### Changed - Improve display and update of bookmarks - Explicitly set http server protocol version to HTTP/1.1 - Improve logging ### New - Add View all and Shuffle context menu items for playlists - New setting to enable debug logging for addon - Setting > Advanced > Logging > Enable debug logging ## v7.1.1+beta.1 ### Fixed - Fix http server not listening on any interface if listen IP is 0.0.0.0 #927 ### New - Explicitly enable TCP keep alive #913 - Add localised title and description for videos, channels and playlists - Update display of playlists to show the following details: - item count - date - channel name - description - web url - podcast status - Update display of channels to show the following details: - view count - subscriber count - video count - date - description - channel name in description - web url ## v7.1.0.1 ### Fixed - Fix logging/retry of sqlite3.OperationalError - Fix trying to use ISA for progressive live streams - Retain list position when refreshing listings - Add workarounds for trying to play videos using RunPlugin rather PlayMedia - Fix possible regression causing 6s delay on first play - Fix regression in building client details causing wrong referer to be used - Only reroute to new window if container was not filled by the plugin #896 - Only reroute to new window if modal dialog is not open #896 - Fix various timing and sync issues with script, service, plugin and Kodi settings - Fix playback history related context menu items not being shown #904 - Fix new resume details not being saved in plugin local playback history #904 - Fix default thumbnails not being updated if available - Fix login to personal project only #910 - Fix regression with not using content type when routing after f239764 #922 - Partially revert eb0f81c to avoid merge error in unofficial version #924 - Only attempt to import InputStream Helper if necessary #923 ### Changed - Update multiple busy dialog crash workaround #891 - Use all playable codecs but deprioritise if not selected in stream features - Change default live stream type to suit ISA and Youtube stream availability - Use a CommandItem that opens the Info dialog for comments to avoid log spam - Revert old workaround for Kodi treating a non-folder listitem as playable - Improve parsing of plugin url query parameters to allow empty values - Move IP location lookup to script and add to settings dialog - Move language and region selection to script and add to settings dialog - Allow default thumbnail selection fallbacks for all results - Simplify handling of local history - Incognito will no longer prevent existing local history from being shown - Incognito will continue to prevent any update to local history - Remove revoked API credentials #905 - Improve handling of "forbidden - The caller does not have permission" errors #905 - Allow retries on POST requests #913 ### New - Allow ask for quality from context menu to override audio only setting - Add items_per_page query parameter to allow number of items in widgets to be customised #896 - Add item_filter query parameter to override "Hide videos from listings" setting #896 - Comma seperated string of item types to be filtered out of listing - "?item_filter=shorts" will remove shorts from listing - "?item_filter=shorts,live" will remove shorts and live streams from listing - "?item_filter" will show all item types - Allowable item types: - shorts - upcoming - upcoming_live - live - premieres - completed - vod - Add hide_next_page query parameter to hide plugin Next page item #896 - Add new input_prompt command for search endpoint to bypass Kodi window caching - plugin://plugin.video.youtube/kodion/search/input_prompt - Add support for proxy settings #884 - Preliminary support for /watch_videos YouTube urls - Player client updates ## v7.1.0+beta.5 ### Fixed - Fix default thumbnails not being updated if available ### Changed - Remove revoked API credentials #905 - Improve handling of "forbidden - The caller does not have permission" errors #905 ### New - Preliminary support for /watch_videos YouTube urls - Player client updates ## v7.1.0+beta.4 ### Fixed - Fix playback history related context menu items not being shown #904 - Fix new resume details not being saved in plugin local playback history #904 ### Changed - Allow default thumbnail selection fallbacks for all results - Simplify handling of local history - Incognito will no longer prevent existing local history from being shown - Incognito will continue to prevent any update to local history ### New - Add support for proxy settings #884 ## v7.1.0+beta.3 ### Fixed - Fix various timing and sync issues with script, service, plugin and Kodi settings ### Changed - Move IP location lookup to script and add to settings dialog - Move language and region selection to script and add to settings dialog ### New - Add hide_next_page query parameter to hide plugin Next page item #896 - Add new input_prompt command for search endpoint to bypass Kodi window caching - plugin://plugin.video.youtube/kodion/search/input_prompt ## v7.1.0+beta.2 ### Fixed - Fix possible regression causing 6s delay on first play - Fix regression in building client details causing wrong referer to be used - Only reroute to new window if container was not filled by the plugin #896 - Only reroute to new window if modal dialog is not open #896 ### Changed - Use a CommandItem that opens the Info dialog for comments to avoid log spam - Revert old workaround for Kodi treating a non-folder listitem as playable - Improve parsing of plugin url query parameters to allow empty values ### New - Add items_per_page query parameter to allow number of items in widgets to be customised #896 - Add item_filter query parameter to override "Hide videos from listings" setting #896 - Comma seperated string of item types to be filtered out of listing - "?item_filter=shorts" will remove shorts from listing - "?item_filter=shorts,live" will remove shorts and live streams from listing - "?item_filter" will show all item types - Allowable item types: - shorts - upcoming - upcoming_live - live - premieres - completed - vod ## v7.1.0+beta.1 ### Fixed - Fix logging/retry of sqlite3.OperationalError - Fix trying to use ISA for progressive live streams - Retain list position when refreshing listings - Add workarounds for trying to play videos using RunPlugin rather PlayMedia ### Changed - Update multiple busy dialog crash workaround #891 - Use all playable codecs but deprioritise if not selected in stream features - Change default live stream type to suit ISA and Youtube stream availability ### New - Allow ask for quality from context menu to override audio only setting ## v7.0.9.2 ### Fixed - Fix various Kodi 18 listitem setInfo compatibility issues - Additional fixes and compatibility shims for playing AudioItems #873 - Fix early thread loop termination in My Subscriptions #888 ## v7.0.9.1 ### Fixed - Add playlist_type_hint property to workaround issues with CPlayListPlayer::Play #873 - Fix comments not displaying for recommended videos #878 - Fix not correctly loading bookmarks for My Subscriptions - Fix invalid escape sequence in non-raw string #885 - Attempt to fix various threading issues with My Subscriptions #882 ### New - Add refresh settings to Setup Wizard ## v7.0.9 ### Fixed - Fix renaming playlists - Improve http server wakeup #746 #801 - Fix ask for video quality setting being inconsistently applied - Fix http server not sleeping after initial start of service #746 #801 - Fix not reloading WL playlist if open after playback of video in WL - Fix navigating to search page after playback and prompt re-opening - Fix issues with next page and jump to page in related video listings - Attempt to workaround issue with getting system idle time on Xbox #839 - Better handle unknown errors in player request responses #845 - Fix double playback due to busy dialog crash workaround - Fix disabling certification verification #841 - Fix not using player request fallbacks #845 - Fix incorrectly identifying VP9 streams #833 - Fix videos not able to be re-opened from Kodi playlist #810 - Fix http server not working in Kodi 18 - Fix issues with http server wakeup and sleep on initial start/restart - Fix API requests failing if not logged in - Fix multi-audio streams failing to play - Fix not properly defining default audio role #861 - Don't retry player requests for offline live streams - Fix incorrectly updating playing live stream details - Fix typo causing http server to restart when checking status ### Changed - Make live query parameter optional when playing channel live stream - Allow for removal of custom watch later and history playlists from settings #818 - Use default value of "HL" for history or "WL" for watch later as reset value - This will then clear the setting and clear value from access_manager.json - Old values will be stored as a backup, just in case - Update cached data when playlists are modified (removed/renamed) - Changed bandwidth attribute of subtitles in MPEG-DASH manifest to 0 - Rename My Subscriptions plugin url - From: - plugin://plugin.video.youtube/special/new_uploaded_videos_tv - plugin://plugin.video.youtube/special/new_uploaded_videos_tv_filtered - To: - plugin://plugin.video.youtube/special/my_subscriptions - plugin://plugin.video.youtube/special/my_subscriptions_filtered - Old url retained for backwards compatibility, to be removed with Kodi v22 - Disable OPUS audio again by default #537 - Respect disable certificate verification setting with cURL in ISA #841 - Update bookmarks when listing rather than only using item snapshot - Player requests no longer use configured plugin language - Alternate client selections removed ### New - Add notifications for creating/removing/clearing bookmarks #720 - Add support for channel handles - Enable loop to first page on last page of manually paginated listings (My Subscriptions) - Improve use of progressive streams - Improve stream selection for HLS stream in InputStream.Adaptive - Add script action to refresh settings - Settings > Maintenance > Refresh settings.xml - Will remove unused settings from settings.xml to stop log spam - Add context menu item to play live stream from start #320 ## v7.0.9+beta.10 ### Fixed - Don't retry player requests for offline live streams - Fix incorrectly updating playing live stream details ### New - Add context menu item to play live stream from start #320 ## v7.0.9+beta.9 ### Fixed - Fix not properly defining default audio role #861 ## v7.0.9+beta.8 ### Fixed - Fix API requests failing if not logged in - Fix multi-audio streams failing to play ### New - Add script action to refresh settings - Settings > Maintenance > Refresh settings.xml - Will remove unused settings from settings.xml to stop log spam ## v7.0.9+beta.7 ### New - Improve use of progressive streams - Improve stream selection for HLS stream in InputStream.Adaptive ## v7.0.9+beta.6 ### Fixed - Fix http server not working in Kodi 18 - Fix issues with http server wakeup and sleep on initial start/restart ### Changed - Player requests no longer use configured plugin language - Alternate client selections removed ## v7.0.9+beta.5 ### Fixed - Fix disabling certification verification #841 - Fix not using player request fallbacks #845 - Fix incorrectly identifying VP9 streams #833 - Fix videos not able to be re-opened from Kodi playlist #810 ## v7.0.9+beta.4 ### Fixed - Fix issues with next page and jump to page in related video listings - Attempt to workaround issue with getting system idle time on Xbox #839 - Better handle unknown errors in player request responses #845 - Fix double playback due to busy dialog crash workaround ### Changed - Respect disable certificate verification setting with cURL in ISA #841 - Update bookmarks when listing rather than only using item snapshot ### New - Enable loop to first page on last page of manually paginated listings (My Subscriptions) ## v7.0.9+beta.3 ### Fixed - Fix navigating to search page after playback and prompt re-opening ### Changed - Disable OPUS audio again by default #537 ### New - Add support for channel handles ## v7.0.9+beta.2 ### Fixed - Fix ask for video quality setting being inconsistently applied - Fix http server not sleeping after initial start of service #746 #801 - Fix not reloading WL playlist if open after playback of video in WL ### Changed - Rename My Subscriptions plugin url - From: - plugin://plugin.video.youtube/special/new_uploaded_videos_tv - plugin://plugin.video.youtube/special/new_uploaded_videos_tv_filtered - To: - plugin://plugin.video.youtube/special/my_subscriptions - plugin://plugin.video.youtube/special/my_subscriptions_filtered - Old url retained for backwards compatibility, to be removed with Kodi v22 ### New - Add notifications for creating/removing/clearing bookmarks #720 ## v7.0.9+beta.1 ### Fixed - Fix renaming playlists - Improve http server wakeup #746 #801 ### Changed - Make live query parameter optional when playing channel live stream - Allow for removal of custom watch later and history playlists from settings #818 - Use default value of "HL" for history or "WL" for watch later as reset value - This will then clear the setting and clear value from access_manager.json - Old values will be stored as a backup, just in case - Update cached data when playlists are modified (removed/renamed) - Changed bandwidth attribute of subtitles in MPEG-DASH manifest to 0 ## v7.0.8 ### Fixed - Update selection and sorting of streams to fix missing live streams - Fix using cached settings for XbmcContext.use_inputstream_adaptive - Wakeup http server on playback start if required #746 - Improve handling of context menu play items - Use consistent return values for function cache to avoid caching errors #782 - Attempt to fix PlaylistPlayer race condition error #704 - Fix not reloading access manager when performing user actions #780 - Fix page jump when page_token is not used - Ensure container is always refreshed when required and available - Fix incorrect comparison after cd45122 - Fix various caching issues #786 #797 - Fix including un-redacted IP address in debug logs - Additional fixes for redacting IP addresses in debug logs #801 - Various minor fixes for external player use - Fix trying to access playlists for account that has no Youtube channel #803 - Poll for http server restart when required for playback #746 #808 - Fix unsubscribe from My Subscriptions #809 - Fix Python2 UnicodeDecodeError when removing/renaming searches #815 - Fix not catching socket.error in Python2 when force shutting down socket - Fix deleting window property with multiple threads causing hang on exit #813 ### Changed - Update icons - Only enable recommendations when logged in - Improve sync with internal Kodi watched state #709 - Align default value for watched percentage with Kodi default #746 - Limit need to check window property for sleep and wakeup - Only show Next Page listitem linking to first page when in the GUI #787 - Use youtu.be urls with external players to work with different types of videos - Test not starting/checking for http server until required for playback #746 - Invalidate portion of playlist cache if item added to playlist #797 - Update 720p preset in Setup Wizard #807 - Update itags found in HLS playlists and exclude them in quality selection #806 ### New - Cache and update My Subscriptions content per channel feed #785 #786 - Use separate database for My Subscription feed history #785 - Enable action parameter in play playlist route - Use placeholder in empty listings to provide info and allow refreshing #797 - Enable subtitles for alternative client 2 #806 ## v7.0.8+beta.5 ### Fixed - Fix Python2 UnicodeDecodeError when removing/renaming searches #815 - Fix not catching socket.error in Python2 when force shutting down socket - Fix deleting window property with multiple threads causing hang on exit #813 ### Changed - Update 720p preset in Setup Wizard #807 - Update itags found in HLS playlists and exclude them in quality selection #806 ### New - Enable subtitles for alternative client 2 #806 ## v7.0.8+beta.4 ### Fixed - Poll for http server restart when required for playback #746 #808 - Fix unsubscribe from My Subscriptions #809 ## v7.0.8+beta.3 ### Fixed - Additional fixes for redacting IP addresses in debug logs #801 - Various minor fixes for external player use - Fix trying to access playlists for account that has no Youtube channel #803 ## v7.0.8+beta.2 ### Fixed - Fix various caching issues #786 #797 - Fix including un-redacted IP address in debug logs ### Changed - Test not starting/checking for http server until required for playback #746 - Invalidate portion of playlist cache if item added to playlist #797 ### New - Use placeholder in empty listings to provide info and allow refreshing #797 ## v7.0.8+beta.1 ### Fixed - Update selection and sorting of streams to fix missing live streams - Fix using cached settings for XbmcContext.use_inputstream_adaptive - Wakeup http server on playback start if required #746 - Improve handling of context menu play items - Use consistent return values for function cache to avoid caching errors #782 - Attempt to fix PlaylistPlayer race condition error #704 - Fix not reloading access manager when performing user actions #780 - Fix page jump when page_token is not used - Ensure container is always refreshed when required and available - Fix incorrect comparison after cd45122 ### Changed - Update icons - Only enable recommendations when logged in - Improve sync with internal Kodi watched state #709 - Align default value for watched percentage with Kodi default #746 - Limit need to check window property for sleep and wakeup - Only show Next Page listitem linking to first page when opening listings from the GUI #787 - Use shortened YouTube url with external players for better compatibility with different types of videos ### New - Cache and update My Subscriptions content per channel feed #785 #786 - Use separate database for My Subscription feed history #785 - Enable action parameter in play playlist route ## v7.0.7 ### Fixed - Fixed not being able to re-refresh a directory listing that has already been refreshed - Fixed various window and history nagivation issues - Fixed http server idle shutdown not restarting if plugin is run but GUI is still idle - Additional improvements to busy dialog crash workaround - Workaround for new settings interface not updated correctly - Fix bookmarks icon background colour - Fix adding channel items directly to bookmarks - Fixes for player monitoring preventing item being marked as watched #746 - Fix invalid pageToken error by removing jump from unsupported listings #715 - Fix issues with post play refresh possibly causing loss of window history - Fix bug that could lead to plugin continuously reloading #608 - Attempted fix for socket error 98 on Linux #746 - For error 10013 on Windows try either of the following: - Start-Process powershell -Verb runAs -ArgumentList "net stop winnat; net start winnat" - Start-Process powershell -Verb runAs -ArgumentList "net stop hns; net start hns" - Fix changing fanart type on My Subscriptions #751 - Fix not using thumbnail fanart for channels/subscriptions/playlists when enabled #751 - Fix My Subscriptions threading issues #529 - Fix failing to login #759 - Improve resource usage - Fix adding video to playlist #764 - Fix plugin settings raising exception in Kodi 19-20 #769 ### Changed - Removed Settings > Advanced > Views > Show channel fanart - Now included as option in Settings > Advanced > Views > Show fanart - MPEG-DASH for live streams only enabled by default in Kodi v21 - Make better use of reuselanguageinvoker and various memory usage improvements - Use internal Kodi resume enable/disable for all playback #693 - For playback where Kodi does not prompt to resume, the plugin will also no longer resume - For playback where Kodi does prompt to resume, the plugin will follow whatever is selected - Cached data for My Subscriptions and Related Videos will be replaced due to changes in cached data - Use channel fanart as backup to thumbnail fanart for channel items without thumbnails #751 ### New - Improvements to plugin page navigation #715 - Refresh added to context menu of Next page item - Jump to page added to context menu of Next page item - Can also be used in plugin url: plugin://plugin.video.youtube/goto_page// #317 - Home added to context menu of Next page item - Quick search added to context menu of Next page item - Next page item added to last page of directory list to go back to first page - Add option to use channel name as studio and/or cast #717 - Settings > Advanced > Views > Use channel name as - Add option to use best available thumbnail quality - Settings > Advanced > Views > Thumbnail size - Added option to use video thumbnail as fanart in Settings > Advanced > Views > Show fanart #716 - Also added plugin url query parameter fanart_type to override settings - Can be used to set fanart for specific widgets only: plugin://plugin.video.youtube/?fanart_type=<0/1/2/3> - Allowable values are the same as the setting: - 0: No fanart - 1: Default - 2: Channel - 3: Thumbnail - Enable syncing of plugin watched state with Kodi watched state when using Kodi mark as (un)watched #709 - Add website link to video descriptions #721 - Update video filtering for live streams #755 - Add options to filter/hide the following types of videos - shorts - upcoming videos (either live streams or premieres) - upcoming live streams - currently live streams - upcoming premieres - completed videos (previously either live or premieres) - No currently live streams will be shown in searches, only in the Live subfolder - No currently live or upcoming live streams will be shown in channels, only in the Live subfolder - Should also be much faster - Completed stream will continue to be shown in listings unless filtered out - Live subfolders will not be filtered by default - Filter selection dialog has option to also filter the Live subfolder - Most other listings will be filtered using whatever options have been set ## v7.0.7+beta.3 ### Fixed - Fix plugin settings raising exception in Kodi 19-20 #769 ## v7.0.7+beta.2 ### Fixed - Fix invalid pageToken error by removing jump from unsupported listings #715 - Fix issues with post play refresh possibly causing loss of window history - Fix bug that could lead to plugin continuously reloading #608 - Attempted fix for socket error 98 on Linux #746 - For error 10013 on Windows try either of the following: - Start-Process powershell -Verb runAs -ArgumentList "net stop winnat; net start winnat" - Start-Process powershell -Verb runAs -ArgumentList "net stop hns; net start hns" - Fix changing fanart type on My Subscriptions #751 - Fix not using thumbnail fanart for channels/subscriptions/playlists when enabled #751 - Fix My Subscriptions threading issues #529 - Fix failing to login #759 - Improve resource usage - Fix adding video to playlist #764 ### Changed - Use internal Kodi resume enable/disable for all playback #693 - For playback where Kodi does not prompt to resume, the plugin will also no longer resume - For playback where Kodi does prompt to resume, the plugin will follow whatever is selected - Cached data for My Subscriptions and Related Videos will be replaced due to changes in cached data - Use channel fanart as backup to thumbnail fanart for channel items without thumbnails #751 ### New - Enable syncing of plugin watched state with Kodi watched state when using Kodi mark as (un)watched #709 - Add website link to video descriptions #721 - Update video filtering for live streams #755 - Add options to filter/hide the following types of videos - shorts - upcoming videos (either live streams or premieres) - upcoming live streams - currently live streams - upcoming premieres - completed videos (previously either live or premieres) - No currently live streams will be shown in searches, only in the Live subfolder - No currently live or upcoming live streams will be shown in channels, only in the Live subfolder - Should also be much faster - Completed stream will continue to be shown in listings unless filtered out - Live subfolders will not be filtered by default - Filter selection dialog has option to also filter the Live subfolder - Most other listings will be filtered using whatever options have been set ## v7.0.7+beta.1 ### Fixed - Fixed not being able to re-refresh a directory listing that has already been refreshed - Fixed various window and history nagivation issues - Fixed http server idle shutdown not restarting if plugin is run but GUI is still idle - Additional improvements to busy dialog crash workaround - Workaround for new settings interface not updated correctly - Fix bookmarks icon background colour - Fix adding channel items directly to bookmarks - Fixes for player monitoring preventing item being marked as watched #746 ### Changed - Removed Settings > Advanced > Views > Show channel fanart - Now included as option in Settings > Advanced > Views > Show fanart - MPEG-DASH for live streams only enabled by default in Kodi v21 - Make better use of reuselanguageinvoker and various memory usage improvements ### New - Improvements to plugin page navigation #715 - Refresh added to context menu of Next page item - Jump to page added to context menu of Next page item - Can also be used in plugin url: plugin://plugin.video.youtube/goto_page// #317 - Home added to context menu of Next page item - Quick search added to context menu of Next page item - Next page item added to last page of directory list to go back to first page - Add option to use channel name as studio and/or cast #717 - Settings > Advanced > Views > Use channel name as - Add option to use best available thumbnail quality - Settings > Advanced > Views > Thumbnail size - Added option to use video thumbnail as fanart in Settings > Advanced > Views > Show fanart #716 - Also added plugin url query parameter fanart_type to override settings - Can be used to set fanart for specific widgets only: plugin://plugin.video.youtube/?fanart_type=<0/1/2/3> - Allowable values are the same as the setting: - 0: No fanart - 1: Default - 2: Channel - 3: Thumbnail ## v7.0.6.3 ### Fixed - Improve updating containers and (re)loading windows #681 - Fix refreshing video listing also forcing next pages to refresh when loaded - Fix overflow error resulting from parsing hashtags as episode numbers - Fix 6s delay on video playback start - Further fixes for multiple busy dialog crash workaround - Possibly fix issues reported in comments of #704 - Update error checks to avoid unnecessary retries of player requests - Fix adding and viewing items to internal bookmarks and watchlater list #720 - Fix error checks to prevent prematurely stopping retries of player requests #730 - Disable using android client player request by default #737 ### Changed - Setup Wizard default settings now disable pre-downloading subtitles if MPEG-DASH is enabled - Ask for quality, Play with subtitles, Play audio only context menu items only displayed if associated setting is not already enabled - Only make extra request for subtitles for Android client when all subtitle languages are enabled - Overhaul alternative player support due to Kodi changes and also improve external player support - Make "Support alternative player" and "Use YouTube website urls with default player" mutually exclusive options #692 - Enable OPUS audio by default #537 - Enable MPEG-DASH for live streams by default #680 - Setup Wizard will prompt to run when plugin first opens after updating, in order to update default settings - http server will shutdown on idle timeout #699 - Update client details used for player requests ### New - Add recommended settings in Setup Wizard for Raspberry Pi 1/2 class devices #688 - Added Bookmarks - Save videos, channels, playlists to Bookmarks - Bookmarked channels will be checked for updates in My Subscriptions - Data is stored locally, without needing to be logged in ## v7.0.6+beta.3 ### Fixed - Fix adding and viewing items to internal bookmarks and watchlater list #720 ## v7.0.6+beta.2 ### Fixed - Further fixes for multiple busy dialog crash workaround - Possibly fix issues reported in comments of #704 - Update error checks to avoid unnecessary retries of player requests ### Changed - Make "Support alternative player" and "Use YouTube website urls with default player" mutually exclusive options #692 - Enable OPUS audio by default #537 - Enable MPEG-DASH for live streams by default #680 - Setup Wizard will prompt to run when plugin first opens after updating, in order to update default settings - http server will shutdown on idle timeout #699 ## v7.0.6+beta.1 ### Fixed - Improve updating containers and (re)loading windows #681 - Fix refreshing video listing also forcing next pages to refresh when loaded - Fix overflow error resulting from parsing hashtags as episode numbers - Fix 6s delay on video playback start ### Changed - Setup Wizard default settings now disable pre-downloading subtitles if MPEG-DASH is enabled - Ask for quality, Play with subtitles, Play audio only context menu items only displayed if associated setting is not already enabled - Only make extra request for subtitles for Android client when all subtitle languages are enabled - Overhaul alternative player support due to Kodi changes and also improve external player support ### New - Add recommended settings in Setup Wizard for Raspberry Pi 1/2 class devices #688 - Added Bookmarks - Save videos, channels, playlists to Bookmarks - Bookmarked channels will be checked for updates in My Subscriptions - Data is stored locally, without needing to be logged in ## v7.0.5 ### Fixed - Fix typo causing no fractional frame rate hinting to fail #679 - Fix typo that caused android player requests to fail - Fix error message when rating video #666 - Fix various issues with Kodi 18 and Python 2 #668 - Fix issues with video playback #654, #659, #663 - Fix typos #661 - Fix typo that prevented videos from being listed in Kodi versions prior to v20 #662 - Try to prevent Kodi freezing when settings are updated and container is reloaded - Fix lockups when using xbmc.executebuiltin #647, #653 - Fix searching for preferred language subtitles not using non-region specific subtitles - Fix not being able to set custom watch later history playlist per user #646 - Update workarounds for multiple busy dialog crashes #640, #649 - Fix playing incorrect video when player request is blocked #654 ### Changed - Update language used for maintenance action prompts that clear data - Display search history as list rather than videos - Update Setup Wizard - Add settings for Raspberry Pi 3 class devices (1080p30, VP9 enabled) - Update settings for Raspberry Pi 4 class devices (1080p60, VP9 enabled) - Move option to disable list details to last step in wizard - Shared playlist play using default order without prompting - Removed dependency on script.module.infotagger #479 - Removed Nexus specific releases - Matrix releases will now work in Kodi v19+ - Leia releases will work, but are unsupported, for Kodi v18 only - Updated client versions used for player requests - Use iOS client as fallback for default client selection ### New - Add new client that may provide 1080p non-adaptive formats - Can be accessed as Alternate #2 - Allow channel name to be displayed/sorted in listing depending on sort order #644 ## v7.0.5+beta.5 ### Fixed - Fix typo causing no fractional frame rate hinting to fail #679 ## v7.0.5+beta.4 ### Fixed - Fix typo that caused android player requests to fail ## v7.0.5+beta.3 ### Fixed - Fix error message when rating video #666 - Fix various issues with Kodi 18 and Python 2 #668 - Fix issues with video playback #654, #659, #663 ## v7.0.5+beta.2 ### Fixed - Fix typos #661 - Fix typo that prevented videos from being listed in Kodi versions prior to v20 #662 ### Changed - Update language used for maintenance action prompts that clear data ### New - Add new client that may provide 1080p non-adaptive formats - Can be accessed as Alternate #2 - Allow channel name to be displayed/sorted in listing depending on sort order #644 ## v7.0.5+beta.1 ### Fixed - Try to prevent Kodi freezing when settings are updated and container is reloaded - Fix lockups when using xbmc.executebuiltin #647, #653 - Fix searching for preferred language subtitles not using non-region specific subtitles - Fix not being able to set custom watch later history playlist per user #646 - Update workarounds for multiple busy dialog crashes #640, #649 - Fix playing incorrect video when player request is blocked #654 ### Changed - Display search history as list rather than videos - Update Setup Wizard - Add settings for Raspberry Pi 3 class devices (1080p30, VP9 enabled) - Update settings for Raspberry Pi 4 class devices (1080p60, VP9 enabled) - Move option to disable list details to last step in wizard - Shared playlist play using default order without prompting - Removed dependency on script.module.infotagger #479 - Removed Nexus specific releases - Matrix releases will now work in Kodi v19+ - Leia releases will work, but are unsupported, for Kodi v18 only - Updated client versions used for player requests - Use iOS client as fallback for default client selection ## v7.0.4 ### Fixed - Fix issues with Profiler running without timer when debug logging was enabled - Fix additional Python 2 unicode handling issues when accessing My Subscription #639 ### Changed - Only set combined cache size to 20 MB in Setup Wizard if value is not already larger - Cached playlist items will be forced to reload when deleting item from playlist rather than waiting 5 minutes ### New - Make colours used for extra details in video listings customisable in Kodi 20+ ## v7.0.4+beta.2 ### Fixed - Overhaul of http server settings to try and fix #633 - Fix unicode handling error when accessing My Subscriptions in Kodi 18 #636 - Update url resolver - remove redundant resolving attempt - attempt to bypass cookie consent redirect #631 ### Changed - Live stream sorting changed - Upcoming sorted by date - Live sorted by most viewed - Completed by most viewed in last 3 days - Update setup wizard performance tier settings - Disable MPEG-DASH for old devices - Enable VP9 for low powered devices ### New - Kodi 18 (Leia) release available - These releases are unsupported and may not be completely functional - If something works, then that is good - If something doesn't work, it will not be addressed unless it applies to Kodi 19+ - Known issues: - accessing script actions through settings does not work (e.g. maintenance and user actions) - Setup wizard will disable use of website urls if no playercorefactory.xml is found #632 ## v7.0.4+beta.1 ### Fixed - Workarounds for buggy language and region details in Kodi - Incorrect language fallbacks for subtitles - Trying to use InputStream.Adaptive to load downloaded subtitles #624 - Duplicated/overridden subtitles with same language but different type - Missing order parameter used when loading playlists #607 ### Changed - Setup Wizard replaces Settings in main menu - Settings available as seperate item - Settings have been re-organised to group similar settings together - Less commonly changed settings have all been moved to Advanced settings tab - Updated client versions used for API, login, and player requests - Improve language display for subtitles loaded through InputStream.Adaptive - Updated translatons to reflect API config page moving to http://:/youtube/api #618 - Update script.module.requests min version required #610 ### New - Setup Wizard now provides ability to set recommended setting values - Old search history and playback history will be imported when Setup Wizard is run #619 - Respect Kodi preferred subtitle language setting when attempting to load subtitles - Include original video language as a default fallback language for subtitles - Enable profiler when Kodi debug logging is enabled ## v7.0.3.2 ### Fixed - Fix settings not being saved and setup wizard repeatedly activating in Kodi 20 and lower #604 - Fix plugin refresh on settings change ## v7.0.3.1 ### Fixed - Restore support for old format plugin urls used for trailers #598 - Restore support for plugin search urls #599 ## v7.0.3 ### Fixed - Fix incorrect labelling of subtitle language in Kodi subtitle selection dialog #595 - Fix failure to play videos when MPEG-DASH and subtitles were enabled in Kodi 20 and lower #595 - Fix Python 2 compatibility ## v7.0.3+beta.5 ### Fixed - Properly fix infotagger error with Kodi v19 - Disable non-functioning saved playlists menu item #569 - Fix forced logout on upgrade from v7.0.2.2 or below - Fix Youtube progress tracking #581 ## v7.0.3+beta.4 ### Fixed - Fix handling of isPostLiveDrv streams #579 - Fix infotagger error with Kodi v19 - Fix errors with creating and deleting temporary folders - Fix listing more than 50 items in local history list - Fix context menus in local history and local watch later list - Fix not using user API key when not logged in #585, #587 - Fix unofficial version not using correct content type for videos #586, #589 ### New - Add setting to disable label details #559 - Allow searching by Youtube url to access unlisted videos that can't be searched for - New option to list all subtitles in Kodi subtitle dialog when MPEG-DASH is enabled #121, #201, #247, #305, #489 ## v7.0.3+beta.3 ### Fixed - Fix invalid error when removing subscriptions #568 - Fix removing item from playlist #570 - Fix related videos and respect pagination limits #572 - Fix not correctly including visitor data in continuation requests - Fix for possible database locks during setup - Fix incorrect timezone details for premiered time #574 ### Changed - Don't show subscribe context menu item in My Subscriptions #568 ### New - Add ability to unsubscribe from My Subscriptions #240, #568 - Make MPEG-DASH frame rate details configurable #336 ## v7.0.3+beta.2 ### Changed - Function and data cache are now created per user - Video channel no longer used as studio infolabel - Since v7.0.3+beta.1 setting values are logged to the debug log - Now sensitive details (location, API key, etc.) are masked - Deprecated plugin actions removed - Changed caching of playlists - First page of playlists are only cached for 5 minutes - Following pages are cached for 1 hour ### Fixed - Fix error when opening My Subscriptions after login #555 - Fix directory items being treated as short videos #556 - Fix error with Setup Wizard not loading #557 - Refresh context menu item will now actually refresh listings #558 ## v7.0.3+beta.1 ### New - Add display of extra video information (premieres, views, comments, likes) #18, #464, #503 - Add support for Clips #450 - Add ability to combine playlists #480 - Add support for timestamps in links #502 - Add initial support for higher bitrate streams #505 - Add ability to limit video FPS at max resolution #539 - Add local Watch Later and History for use when not logged in or custom playlist not set - Update main menu items: - New Recommended videos (similar to YouTube home page, will use login if available) - Old Recommended videos renamed to Related videos (requires local/remote history enabled) - Popular right now renamed to Trending ### Changed - Local history made optional and enabled by default - Existing user data will be lost due to changes in data format: - Search, local history, and local watch later is stored per user - Function and data cache will be wiped (will also become per user in future) - Disable OPUS audio by default #537 ### Fixed - Fix sharing links #115, #250, #538 - Fix date and sorting issues #411, #425, #434 - Fix issues with randomising playlists #485 - Fix Recommendations, Related Videos, and Auto-play next #508 - Fix issue with switching between H264/AV1 streams #532 - Fix issues with live streams #530, #540 - Fix prompt for subtitles #534 - Fix issues with corrupt user data #536 - Fix issues with loading large playlists #545 - Fix queuing from current playlist #549 - Workaround for crashes #113, #540 ## v7.0.2.2 [fix] Fix Matrix compatibility [fix] Update unofficial patch ## v7.0.2.1 [fix] fix Matrix InputStream.Adaptive dependency version ## v7.0.2 [new] quality and stream feature selection [new] enable HLS live streams [new] stream and language labelling [chg] separately enable local/remote history [chg] restore unsupported compatibility for Kodi v19 (Matrix) [fix] fix various playback issues |contrib: various| [fix] Limit host connections getting subscription feeds |contrib: cas--| [fix] fix handling of connection failures [upd] Translations updated from Kodi Weblate ## v7.0.1 [fix] video duration not showing in lists [upd] Translations updated from Kodi Weblate ## v7.0.0 [rem] removed support for versions of Kodi pre-Nexus v20 [rem] removed support for python 2 [rem] removed dependency on six [upd] Translations updated from Kodi Weblate ## v6.8.25 [fix] Nexus compatibility with InfoTagVideo |contrib: jurialmunkey| [chg] make httpd /api url case insensitive due to skin choice of uppercase settings text [chg] use listitem property for Inputstream Adaptive headers instead of url piped on Nexus+ [upd] Translations updated from Kodi Weblate ## v6.8.24 [fixup] resolve playback history not being updated [add] add opus audio support [upd] use more descript reasons for failed playback [upd] Translations updated from Kodi Weblate ## v6.8.23 [revert] subscription groups/tags - causing breaking issues ## v6.8.21 [chg] Icons and Fanart updated |contrib: papercore-dev| [add] Add setting General - Hide short videos (1 minute or less) [add] Add support for /shorts/video_id format links |contrib: jmbreuer| [add] Add Fanart to Subscriptions [add] Access to Saved Playlists [fix] Display of channel fanart [fix] Misc missing fanart [lang] translation updates from Weblate ## v6.8.20 [fix] Fix to_str |contrib: RNavega| [fix] Fix playback buffering |contrib: RNavega| [fix] Subtitle language names [lang] translation updates from Weblate ## v6.8.19 [fix] /uri2addon/ endpoint for playback of youtube.com urls [fix] Don't assume addon is installed in home directory |contrib: jfly| [lang] translation updates from Weblate ## v6.8.18 [fix] Fix to_str |contrib: RNavega| [fix] Fix playback buffering |contrib: RNavega| [lang] translation updates from Weblate ## v6.8.17 [fix] Fix comments on Kodi 19+ |contrib: ramateur| [fix] Fix ratebypass [upd] Update icon and fanart |contrib: papercore-dev| [lang] translation updates from Weblate ## v6.8.16 [fix] Fix playback of some content (ie. Music videos) [fix] Calcuate n parameter to enable ratebypass ## v6.8.15 [fixup] No streams found, consent cookies |contrib: jaylinski| [fixup] Age gate detection, show age gate error instead of 'No streams found' [fixup] encoding of some titles/authors - ie. russian [lang] translation updates from Weblate ## v6.8.14 [fixup] playback of some streams due to encoding issues [fixup] default player response type ## v6.8.13 [fix] player config and client discovery [fix] No Streams Found |contrib: 14mRh4X0r| [fix] capability map to contain unversioned capabilities |contrib: jmbreuer| [lang] zh_tw strings |contrib: JuenTingShie| ## v6.8.11 [fix] mktime overflow when loading My Subscriptions [fix] encoding issues in search history |contrib: dreznichuk| ## v6.8.10 [fix] fix javascript player retrieval and playback of some videos for affected users |contrib: thomazz-nl| - Invalid URL 'http://': No host supplied ## v6.8.9 [fix] my subscriptions section using YouTube RSS |contrib: PureHemp| [fix] items per page settings on Kodi 19 [chg] recommendations only available for users with custom history playlist id configured [chg] no longer show watch later unless custom watch later playlist is configured [rem] remove usage of discontinued api and dual login (no longer required) ## v6.8.8 [fixup] encoding of subtitle track names ## v6.8.7 [fixup] encoding of titles and authors during playback ## v6.8.6 [fix] some videos failing to play with an Invalid URL exception [fix] searching in some instances with encoding issues |contrib: tsaklidis| [fix] support python 3.9 html.unescape |contrib: asavah| ## v6.8.5 [fix] playback of purchased movies |contrib: MisterD81| [fix] notifications for some languages on Kodi 19 [fix] searching for some languages [fix] loading on some versions of python 3 [fix] some videos failing to play with an Invalid URL exception [upd] use xbmcvfs.translatePath if available, clean up for Kodi 19 ## v6.8.4 [fix] next page now ignores sorting, remains at the end of the directory [fix] searching, no longer require remote safe search [fix] notifications for some languages [chg] only log http server ping failures [lang] zh_cn strings |contrib: yureng, xiaojun| ## v6.8.3 [fix] playback of some videos [fix] notifications for some languages |contrib: Mutronics| [fix] fix rating videos causing and error even though it succeeded [upd] cache javascript player url for4 hours, reduces http requests per play by 1 [upd] use new settings format on Kodi 19 [lang] el_gr strings |contrib: twilight0| [lang] hu_hu strings |contrib: thelacesz| ## v6.8.2 [fixup] recommendations with > 50 channels ## v6.8.1 [fix] playback failing [fix] viewing comments when logged in [fix] intermittent issue with Subscriptions [fix] encoding of video unavailable messages [upd] updates to recommendations [upd] update logging for Kodi 19 [lang] fr_fr strings |contrib: alan7000| [lang] pl_pl strings |contrib: drrak| [lang] nl_nl strings |contrib: Markman-B| ## v6.8.0 [add] support for video comments, Comments in the More... dialog |contrib: doko-desuka| [add] simulate deprecated recommended home API |contrib: hedleyroos| [fix] error caused by timestamp formatting [fix] fix Premiere's exiting after 5 seconds |contrib: jpfox156| [fix] playlists over json-rpc |contrib: JasperE84| [lang] de_de strings |contrib: tweimer| [lang] el_gr strings |contrib: twilight0| [lang] es_es strings |contrib: roliverosc| [lang] pt_pt strings |contrib: daniel3x| ## v6.7.0 [add] send PlaybackInit, PlaybackStarted, PlaybackStopped notifications containing video id, channel id, and the status of the playing video [fix] allow playback regardless of API status - fixes playback for strm, playlists, other add-ons, and sharing videos from devices [fix] finding player config, allow playback to continue when not found if possible [fix] fix possible loop due to invalid keys and login information [fix] fix playback of mpeg-dash streams if HTTP Server - Listen on IP is blank [upd] use a dialog to notify users of API key requirements with link to wiki - https://ytaddon.page.link/keys [rem] remove provided api keys [lang] de_de strings |contrib: tweimer| [lang] el_gr strings |contrib: twilight0| [lang] hu_hu strings |contrib: thelacesz| [lang] pl_pl strings |contrib: drrak| ## v6.6.0 [add] 'Play (Ask for quality)' context menu [add] search by channel or playlist id [add] hide_folders, hide_playlists, hide_search, and hide_live to /channel// end-point - ie. plugin://plugin.video.youtube/channel/UC4PooiX37Pld1T8J5SYT-SQ/?hide_folders=true will hide all folders(Playlists, Search, and Live) in the channel listing [fix] playback for some videos (ie. music videos) [fix] playback of some videos with no adaptive video streams [fix] don't update watch history when incognito/screensaver/live |contrib: regseb| [fix] search prompting for input after video playback or refresh [lang] el_gr strings |contrib: twilight0| [lang] es_es strings |contrib: roliverosc| [lang] pt_br strings |contrib: MediaBrasil| [lang] cs_cz strings |contrib: llzn.cz| [lang] it_it strings |contrib: SebastianoPistore| [lang] de_de strings |contrib: tweimer| ## v6.5.2 [fix] playback (No streams found) [fix] missing metadata [fix] ended live streams not using mpeg-dash when enabled [fix] subscriptions not showing latest videos [upd] simplify youtube_resolver regex |contrib: Twilight0| [lang] de_de strings |contrib: TehTux| [lang] pl_pl strings |contrib: drrak| [lang] nl_nl strings |contrib: Markman-B| ## v6.5.1 [add] get_live to youtube_requests module to retrieve live stream info for a channel [add] Adaptive (MP4) and Adaptive (WEBM) to MPEG-DASH - Video quality [fix] live stream playback [fix] unable to seek when using mpeg-dash [fix] mpeg-dash video quality selection [fix] sqlite requests breaking when another add-on/module uses sqlite3.register_converter(..) [fix] signal endofdirectory in case of a provider navigation exception |contrib: enen92| ## v6.5.0 [add] Video quality selection to Settings - MPEG-DASH [add] Limit to 30fps to Settings - MPEG-DASH [add] Uploads playlist to channel playlists [chg] Use search for channel videos instead of the Uploads playlist [fix] Signature cipher, some videos unplayable (ie. music videos) [fix] Playback monitoring using Python 3 [fix] unescape html entities in title and plot [fix] handling of invalid grant when refreshing access token [fix] adding suggested videos when played from some widgets [fix] http server /client_ip using Python 3 |contrib: t6| [upd] refactor youtube_resolver.resolve [lang] el_gr strings |contrib: twilight0| [lang] es_es strings |contrib: roliverosc| [lang] ko_kr strings |contrib: parkmino| ## v6.4.1 [upd] Use the activation url provided by the authentication request [add] add Settings - MPEG-DASH - Default to WEBM adaptation set - required for 4k stream automatic selection [add] add Settings - MPEG-DASH - Include VP9.2 - includes HDR content in the manifest [add] add support for &hide_folders=true parameter in search query urls - when added to the url it will hide the Playlists, Channels, and Live folders [add] &seek= to play urls [fix] fix playback of Purchases [fix] fixed saved playlists that don't belong to a channel [fix] mpeg-dash frame rate representation [fix] datetime parsing if no datetime string is available [chg] handle playback monitoring in threads [lang] nl_nl strings |contrib: MB1968| [lang] el_gr strings |contrib: twilight0| ## v6.4.0 [add] 4K videos with InputStream Adaptive >= v2.3.14 - Thanks to @peak3d [fix] some videos not playing when logged in [fix] reset function cache at restart/update to resolve issues persisting due to cached results [fix] service potentially not shutting down http server [fix] added to playlist/subscriptions notifications [fix] only generate mpeg-dash file if adaptive formats are available [fix] map frame rates to more common representation to lessen the chance of double refresh rate changes (only applies to generated mpeg-dash files) [fix] currently playing file check when playing file is a plugin:// url [chg] Settings - General - Autoplay suggested videos - limit playlist size to 1000 videos - request less relevant videos at one time - old behavior: add 50 most relevant videos for each video played, repeats allowed - result: a lot of barely relevant videos in groups of 50 - new behavior: add single most relevant video, no repeats - result: next video is always the most relevant video to the last video played [upd] player javascript retrieval ## v6.3.1 [fix] ensure playback monitoring is monitoring the correct item [fix] check for abortRequested while processing purchased collections [upd] Use setArt instead of iconImage, thumbnailImage and setProperty('fanart_image') ## v6.3.0 [add] support for keymapping of some endpoints, wiki: https://kodi.wiki/view/Add-on:YouTube#Keymaps [add] 'Rate videos in playlists' setting to 'Settings - General - Rate after watching' [add] Support for purchased collections |contrib: MisterD81| [fix] Playback of some videos (e.g. music videos) [fix] Live stream playback [fix] post play add to watch history [fix] fix add-ons playback history not saving [fix] playback monitoring/post play events triggering for the wrong videos in some cases [fix] call setResolvedUrl(False) if get_video_streams fails [upd] code cosmetics and resolve inspections [upd] improve watch history tracking, actively report watch times and state during playback [upd] sign in/out, switch user, and settings ListItems to isFolder=False and isPlayable=False [upd] improve watch later playlist id retrieval and feedback [upd] Use SPDX license identifier [lang] de_de strings |contrib: tobhor| [lang] el_gr strings |contrib: twilight0| [lang] es_es strings |contrib: roliverosc| [lang] ko_kr strings |contrib: parkmino| [lang] nl_nl strings |contrib: Markman-B| ## v6.2.3 [add] Next Page to 'More...' -> 'Add to...' context menu [add] icon and description to playlists in 'More...' -> 'Add to...' context menu on Kodi 17+ [add] 'Play audio only' context menu item [fix] generated dash with no supported video streams(audio only) being played when Audio only not enabled [fix] potential RuntimeError when retrieving total time of playing content if player is stopped immediately [lang] nl_nl strings |contrib: Markman-B| [lang] pl_pl strings |contrib: xulek| [lang] pl_pl strings |contrib: drrak| [lang] sk_sk strings |contrib: jose1711| [lang] el_gr strings |contrib: twilight0| [lang] es_es strings |contrib: roliverosc| ## v6.2.2 [fix] signature function not found on some videos ## v6.2.1 [fix] some streams reporting as Unavailable [fix] utf-8 file paths [fix] settings, and switch user causing perpetual busy dialog on Kodi 18 ## v6.2.0 [add] Context menu -> 'Play with subtitles' |contrib: solarus| [add] Option to download subtitles before playback in Settings -> General -> Configure subtitles [add] Refresh context menu to all videos/live streams [add] &strm=true parameter for strm files in Kodi 18 |contrib: vlmaksime| - use description from library and set watched status [add] 'Settings -> Advanced -> Use YouTube website urls' for external/alternative players eg. Player: MPC-BE, URL: https://www.youtube.com/watch?v=C0NyvxTJGcQ eg. playercorefactory.xml C:\Program Files\MPC-BE x64\mpc-be64.exe "{1}" /fullscreen /close true true none [fix] Reported background progress dialog percentage [fix] Playlist items, use video_items instead of playback_items [fix] search history size [fix] remove Spanish (Latin America)|es-419 from the setup wizard, causing invalidLanguage and invalidRelevanceLanguage errors [upd] Improve speed of playback starting and resolver before: min: 1.5s max: 2.6s median: 1.7s after: min: 0.9s max: 2.6s median: 1.2s [chg] refactor logging and system version [chg] Localize confirmation [lang] el_gr strings |contrib: twilight0| [lang] es_es strings |contrib: roliverosc| [lang] es_mx strings |contrib: Intel11| [lang] it_it strings |contrib: SebastianoPistore| [lang] nl_nl strings |contrib: Markman-B| [lang] ru_ru strings |contrib: vlmaksime| ## v6.1.4 [fix] Signature function not found ## v6.1.3 [fix] timedelta.total_seconds python 2.6 compat. ## v6.1.2 [fix] dash settings check and defaults [fix] addon-check raised warning for services complex entry point [fix] codacy raised issue in http server (https://app.codacy.com/app/Kodi/repo-plugins/pullRequest?prid=2080401) [chg] move seek to onPlayBackStarted, onAVStarted only in K18 [chg] geolocation provider changed from ipstack to ip-api [del] frodo listitem art compatibility [lang] ru_ru strings |contrib: Burgaduk| [lang] zh_tw strings |contrib: Zankio| ## v6.1.1 [fix] http proxy using incorrect setting id causing 403 errors ## v6.1.0 [add] Multi-user support - Switch User folder (default: on) Settings -> Folders - User management (Add, Remove, Rename, Switch) Settings - Users - Signed in users are green, Current user has an * [add/upd] add data cache and optimize caching - add Settings -> Maintenance -> Clear data cache/Delete data cache - increase allowed cache size - database accesses per 50 videos: before: 70~100 after: 4~6 - load time of 50 videos w/ no cached videos: before: ~11.6 secs, after: ~3 secs - load time of 50 videos w/ all cached videos: before: ~0.8 secs, after: ~0.7 secs - cached size per 50 videos: before ~1MB, after ~550KB [add] Refresh after watching (default: off) Settings -> General [add] Completed Live folder (default: on) Settings -> Folders [add] Upcoming Live folder (default: on) Settings -> Folders [add] My Location folder (default: on) Settings -> Advanced -> Enable setup-wizard [add] Play count minimum percent (default: 85%) Settings -> General -> Play count minimum percent [add] Playback history (default: off) Settings -> Advanced -> Use playback history [add] Time since published for videos as item properties Property(PublishedSince), Property(PublishedLocal) |contrib: pannal| [add] Check My IP, Settings -> HTTP Server [add] Developer authentication, allowing add-ons to use their own access tokens - see youtube_authentication.py, youtube_registration.py, youtube_requests.py, and youtube_resolver.py [upd] YouTube UTC datetimes to local timezone |contrib: pannal| [upd] Localize API key errors, provide a more descriptive notification [fix] Add to YouTube watch history [fix] My Channel videos (Error 403) [fix] allow fallback to dash, when using Audio only [fix] Signature function not found error for some users [fix] Context Menu -> More -> Related Videos w/ Kodi 18 [fix] Sign In/Sign Out causing crash with Kodi 18 nightlies [fix] Channel 'mine' caching [fix] Time changing when playing generated dash [lang] es_es strings |contrib: roliverosc| [lang] el_gr strings |contrib: twilight0| [lang] nl_nl strings |contrib: Markman-B| ## v6.0.2 [fix] incorrectly raised 'Proxy is not running' error ## v6.0.1 [fix] notification encoding ## v6.0.0 [add] Python 3 compat. [add] Settings -> Maintenance -> Delete temporary files [add] Settings -> General -> Rate video after watching [add] Settings -> API -> Enable API configuration page - when enabled, visit http://:/api to configure API keys from a web browser - port is configured in Settings - HTTP Server - Port [chg] Storing personal api keys in api_keys.json [chg] Storing login tokens in access_manager.json [add] youtube_registration module, register developer keys and use them by appending an addon_id= parameter to youtube add-on plugin urls [add] screensaver=true parameter to /play route - no suggested videos, no post play events, don't ask for quality [add] play route for channel live streams - plugin://plugin.video.youtube/play/?channel_id=UCLA_DiR1FfKNvjuUpBHmylQ&live=1 [add] Purchases - requires Kodi 18 - requires inputstream.adaptive >= 2.2.12 - if a purchase fails after 10 seconds - provide a debug log - set InputStream Adaptive -> Settings -> Stream selection -> manual - change video stream during playback to preferred working resolution - huge thanks to peak3d [add] relevanceLanguage to search requests [add] Refresh to My Subscriptions (Filtered) [fix] mpeg-dash proxy with multi-profiles [fix] search input, now works with Yatse [fix] Signature deciphering [fix] context menu after playback [fix] alternative player, do not append headers [fix] My Subscriptions (Filtered) channel matching [fix] Audio only, failover to video if no audio only streams available [fix] My Subscriptions missing page 3 [fix/upd] function cache, update max rows and resolve hang on some requests [fix/upd] post play events happen post play [fix/upd] set title from metadata on play [chg] only automatically remove temp folder at start-up [upd] Dutch strings [MB1968] [upd] French strings [bubuleur] [upd] Greek strings [twilight0] [upd] Spanish strings [roliverosc] ## v5.5.0 [add] Saved Playlists [add] allow developers to use their own api key - xbmcgui.Window(10000).setProperty('plugin.video.youtube-configs', json.dumps({"origin": ADDON_ID, "main": {"system": SYSTEM_NAME, "key": API_KEY[, "id": CLIENT_ID, "secret": CLIENT_SECRET]}})) [add] Audio only: Settings -> General [add] Age gate enforcement: Settings -> General [add] Quick search and Quick search (Incognito) - Settings -> Folders - incognito doesn't add to search history or run post play events (add to watch history) [add] Quick search to channels (no history) [add] Live folder to channels [fix] My Channel videos incl. private [fix] mpeg-dash vods, proxy required - Settings - MPEG-DASH - Thanks to Schtek for generating the needed mpd file [fix/upd] use select dialog for subtitle settings - [add] Configure subtitles: Settings -> General - [add] Current language with No auto-generated subtitles option [upd] language/translation paths * Isengard (15.x)+ required [upd] youtube_resolver: allow resolve by url [fix/upd] do not use distutils.version.LooseVersion for version compare [stefansaraev] [fix/upd] add check to api key stripping [fix/upd] subtitles default to non asr track when possible [fix/upd] login client logging and endpoints [fix/upd] Watch Later - Clear: Settings - Folders - Custom Watch Later playlist id - Settings - Folders - Retrieve Watch Later playlist id [fix/upd] History - cannot add to history from add-on - Clear: Settings - Folders - Custom History playlist id [fix] /api/update route logging [rem] SPMC mpeg-dash support [upd] Hebrew strings [Eng2Heb] [upd] Polish strings [Etharr] [upd] Italian strings [DjDiabolik] [upd] Hungarian strings [lacesz-sh] ## v5.4.5 [fix] tighten regex for routing, resolving incorrect routing ## v5.4.4 [fix] overlapping regex causing no playlist videos ## v5.4.3 [add] mpeg-dash support for live content (requires inputstream.adaptive >= 2.0.12) [add] add route to update api keys plugin://plugin.video.youtube/api/update/?enable=true&client_id=&client_secret=&api_key= [fix/upd] refactor subtitles ** subtitles setting will be reset [fix/upd] add My Subscriptions (Filtered) to dual login requirements [fix/upd] only show Browse Channels when logged in [upd] Greek strings [Twilight0] [upd] Polish strings [Etharr] ## v5.4.2 [fix/upd] My Subscriptions ## v5.4.1 [fix/upd] dash working for vevo/etc [upd] rework of auto subtitles [fix] leia nightly login issues [fix] 403 error on 'My Channel'/uploaded videos ## v5.4.0 [upd] Greek strings [Twilight0] [upd] Polish strings [Etharr] [upd] Finnish strings [teemue] [upd] Spanish strings [roliverosc] [fix/upd] resolve "Error Contents: 'q'" error [horstepipe] [fix/upd] resolve Play All/Play from here not starting playback [fix/upd] resolve playlists starting on second item [fix/upd] allow dash in quality choices [fix/upd] set content to files for menus, resolves mouse/scrolling [fix/upd] fix cipher [fix/upd] increase search history limit to 200 [fix/upd] storage db [add] Safe Search to Settings -> General [add] Thumbnail size to Settings -> General [add] Auto-play suggested [mehdilauters] [add] Automatic subtitles [Uukrull] [add] My Subscriptions (Filtered) - whitelist/blacklist version of My Subscriptions [chhe] [add] module extension point: add-ons can now add plugin.video.youtube dependency and resolve youtube video id's or make v3 api requests using the youtube plugin, """ """ """ import youtube_resolver streams = youtube_resolver.resolve() import youtube_requests videos = youtube_requests.get_videos([, , ]) """ ## v5.3.11 [fix/upd] replace custom simple_requests with script.module.requests to resolve ssl and cross-platform issues [add] 'Reset access manager' added to Maintenance section, sign out process(available when logged out) to clean up tokens in settings.xml [upd] set default for SSL certificate verification to 'true' ## v5.3.10 [fix/upd] resolve 'No video streams found' for age-gated content and other minor. [fix/upd] unescaping HTML entities in subtitles [mdmdmdmdmd] [upd] Polish strings [Etharr] ## v5.3.6-9 [fix/upd] resolve 'No video streams found' [fix/upd] SPMC dash support guidosarducci [upd] Italian strings [iz8mbw] [upd] Spanish strings [roliverosc] [upd] Dutch strings [Sjord] [fix/upd] Frodo backwards compat. setArt [lulol] ## v5.3.5 [add] MPEG-DASH support for Kodi 17 w/ inputstream.adaptive Add-on [add] optional History and Watch Later custom playlist to Settings -> Folders, or (My)Playlists context menu to set/remove [add] Maintenance section to Settings [add] 'Subtitle language(s) to download' selection to Settings -> General [add] 'Force SSL Certificate verification' to Settings -> Advanced [upd] API key set switching from Settings -> API (this will log you out) [upd] Dual login only required if My Subscriptions folder is enabled at sign-in [upd] setting content type from episodes, now videos [del] override view options [upd] Norwegian strings [torstehu] [upd] Greek strings [twilight0] [upd] Portuguese strings [Wanilton] [upd] Dutch strings [flemlion] [fix/upd] API tweaking and various other updates ## v5.2.2 (2016-05-28) [upd] Insert old API-Keys from Bromix because of Quota-Exceed-Error [add] Dutch strings (thanks to Guilouz) [upd] French strings (thanks to royreinders) [upd] Greek strings (thanks to Twilight0) ## v5.2.1 (2016-05-12) [add] Additional "Recommend for You" section (thanks to anxdpanic) ## v5.2.0 (2016-05-11) [upd] APi-Changer - First login delete old Credentials - New Login Required! Sorry :) ## v5.1.20.7 (2016-05-03) Workaround for the Quota Exceed-Error. [add] API-Changer for a Pool of 6 API-Keys [add] Auto-Reauthenticate with Pool-Key on "Quota Exceed" error [add] "Use own API"-Button [hint] The Message "Invalid Credentials" after Update could be fixed with deleting the Userdata-Settings.xml [add] add Recommendations to main listing when logged in [anxdpanic] ## v5.1.20.6 (2016-04-03) [add] Greek Translation from twilight0 [upd] Fixed italian translation from DjDiabolik ## v5.1.20.5 (2016-03-20) [upd] Ignore if '.apps.googleusercontent.com' entered in API Id string in add-on settings ## v5.1.20.4 (2016-03-05) [add] API Key in add-on settings [upd] All string.po for new API Key functionality. New entries in language string.po files not translated from English. ## v5.1.20.3 (2016-03-04) [fix] All Key changed with YouTube TV ## v5.1.20.2 (2016-03-04) [fix] Live streams itag 91 patch [add] Kodi 17 Krypton support. Patch by Uukrul ## v5.1.20 (2016-02-25) [fix] Final fix for APIs ## v5.1.16 (2015-12-24) [fix] reverted search order by date ## v5.1.15 (2015-12-22) [fix] signature calculation ## v5.1.14 (2015-12-22) [upd] default search order by date (newest first) [fix] VEVO signature calculation ## v5.1.13 (2015-12-20) [fix] frodo...DIE FRODO DIE !!! [fix] some cleanup for Jarvis ## v5.1.12 (2015-11-29) [fix] sort issues with Jarvis (thx 2 guidosarducci) ## v5.1.11 (2015-11-24) [fix] signature calculation (e.g. VEVO) ## v5.1.10 (2015-11-13) [fix] signature calculation (e.g. VEVO) ## v5.1.9 (2015-09-21) [add] Hebrew (thx 2 smoky-jr) [upd] don't set default season and episodes (1x1) [upd] another try to optimize the quota problem. Move all searches to the individual keys instead of one global [fix] playback issues (skip discontinued video/format by YouTube) ## v5.1.8 (2015-08-23) [add] Bulgarian (thx 2 NEOhidra) [upd] new quota shaping [fix] personal playlists (Watch Later, Liked Video, ...) should work again [fix] playback of VEVO videos - some videos still using discontinued ITAG13 [fix] show login, when an endpoint is called, which requires permissions. ## v5.1.7 (2015-07-15) ADD: quota optimization via separate key for none-token depended API calls UPD: new login semantic to sign out if someone upgrades to a newer version of KODI FIX: 'Next Page (X)' item was added to the current playlist for playback ## v5.1.6 (2015-06-14) ADD: Chinese (Traditional) (thx 2 beddfaf916) ADD: Czech (thx 2 tomaswcz) ADD: Romanian (thx 2 Danny3) UPD: test some new pagination for 'My Subscriptions' UPD: Polish (thx 2 Etharr) FIX: show notification again for unsupported rtmpe streams FIX: unicode/utf-8 trouble in kodion ## v5.1.5 (2015-05-29) UPD: remove deprecation warning for Isengard FIX: Issue 7163 (Missing pagination for subscriptions - YouTube APIv3 bug) ## v5.1.4 (2015-05-26) ADD: Frodo support (only if you install via zip or bromix repo) UPD: new API-KEY - thanks to the guy for hijacking the key for trailer searches UPD: Russian (thx 2 BytEvil) FIX: cache wasn't working correctly without login ## v5.1.3 (2015-05-16) UPD: code cleaning FIX: minor fixes ## v5.1.2 (2015-05-15) ADD: ask for video quality (optional) UPD: code cleaning UPD: Russian (thx 2 BytEvil) UPD: kodion FIX: add 'Play all' for playlist (again) ## v5.1.1 (2015-05-10) ADD: 'More...' in context menu to provide more items ADD: show deprecation warning of old plugin calls starting with Isengard ADD: EndPoint: 'plugin://plugin.video.youtube/search/?q=[URL_ENC_TEXT]' ADD: API Key for each major version of KODI UPD: Ukrainian (thx 2 Dukobpa3) UPD: Russian (thx 2 BytEvil) UPD: new second fanart UPD: reorganized context menu UPD: improved logging (debug only) UPD: Improved error handling FIX: refresh after rating a video (own playlist only) FIX: add 'refresh' again for 'My subscriptions' DEL: removed old v2 API ## v5.1.0 (2015-04-22) ADD: Double login to support 'My subscriptions' via YouTube TV API ADD: 'More Links from the description' - extracts further links from the description ADD: Korean (thx 2 piodio) UPD: removed old implementation of 'My Subscriptions' UPD: new fanart and icon UPD: changed credentials UPD: minimal quota-optimization UPD: French (thx 2 eauland) UPD: YouTube relevant description links - improved extraction and resolving of video/playlist urls UPD: YouTube relevant description links - improved extraction and resolving of user/channel urls UPD: YouTube relevant description links - improved performance resolving urls with caching UPD: regex optimizations for season and expisode extraction FIX: support fanart of channel in new implementation of 'My Subscriptions' FIX: YouTube relevant description links - script error while some server return garbage for a location FIX: script error while resolving url fails FIX: script error while adding video to a playlist FIX: show seconds (runtime) in Gotham ## v5.0.9 (2015-03-14) ADD: 'duration' optimized for KODI 15.X (Isengard) ADD: EndPoint for listing the videos of a playlist: "plugin://plugin.video.youtube/playlist//" UPD: optimized client-/server transfer (use gzip) ## v5.0.8 (2015-03-05) UPD: Polish (thx 2 Etharr) UPD: Russian (thx 2 BytEvil) FIX: improved playback ## v5.0.7 (2015-02-27) ADD: 'Refresh' in 'My Subscriptions' and all my playlists ADD: rename search history item UPD: French (thx 2 Trilip) UPD: Ukrainian (thx 2 posledov) UPD: Spanish (thx 2 PatOso) FIX: possible crash on not well formed language ids FIX: optimized logging FIX: unicode trouble ## v5.0.6 (2015-02-17) ADD: setting for hiding the channel name in the description ADD: Ukrainian (thx 2 posledov) UPD: show 'Watch History' (default) UPD: Russian (thx 2 BytEvil) UPD: improved support for live streams UPD: improved stream selection based on container FIX: 'What to watch' => 'Popular right now' FIX: don't crash while trying to play rtmpe FIX: corrected ITAG 18 in 360p instead of 260p ## v5.0.5 (2015-02-01) ADD: clear search history items UPD: replace context menu not everywhere UPD: dropped dependency of 'requests'-module because of performance issues FIX: Add playing video to the 'Watch History' FIX: maybe a fix for a problem (again!) on unix systems while using python 2.7.9 + certificate verification FIX: removed pagination for "Related Videos" - the fix before produced some nasty side-effects FIX: Vevo signature ## v5.0.4 (2015-01-15) ADD: 'Live' in search ADD: 'Play with...' for supporting external/alternative player ADD: live events (needed some tests and feedback) ADD: support for user names instead of channel ids UPD: set XBMC/KODI to at least Gotham 13.2 UPD: Setup-Wizard views based on content type (KODION update) FIX: Playlist should work again FIX: Pagination in APIv2 FIX: settings for hiding 'Live' menu DEL: support for Frodo ## v5.0.3 (2015-01-08) ADD: 'Disliked Videos' ADD: 240p, 360p and 480p UPD: adjustment in KODION classes (maybe causing problems on MAC OS X 10.10.X + Python 2.6) UPD: Russian (thx 2 BytEvil) UPD: Spanish (thx 2 PatOso) UPD: Polish (thx 2 D.K.) FIX: German translation FIX: some Frodo updates ## v5.0.2 (2015-01-01) ADD: Support for shared playlists via Yatse ADD: 'Play from here' for playlists ADD: 'Queue Video' FIX: German translation FIX: Portuguese (Brazil) (thx 2 ASH_Macedo) ## v5.0.1 (2014-12-31) ADD: 'Play all' (default, reverse, shuffle) ADD: Italian (thx 2 peppe_sr) ADD: Portuguese (Brazil) (thx 2 ASH_Macedo) ADD: Hungarian (thx 2 gyeben) ADD: Portuguese (thx 2 enen92) ADD: Polish (thx 2 D.K.) ADD: Russian (thx 2 BytEvil) ADD: Spanish (thx 2 PatOso) ADD: French (thx 2 roondar) UPD: support for '1080XF' and 'Xperience1080' FIX: some live streams should work FIX: update meta data for video played via ext. url FIX: remove video from 'Watch Later' playlist REV: reverted to requests ## v5.0.0 (2014-12-27) DEL: removed beta ADD: new rating system - like/dislike/remove ADD: show confirmation before remove a video or deleting a playlist ADD: rename your playlists ADD: setup default view modes (default and videos) ADD: setup correct language and region for YouTube ADD: support for old YouTube url calls (plugin://plugin.video.youtube/?action=play_video&videoid=[ID]) UPD: new icons UPD: reorganized context menu UPD: some minor tests UPD: moved 'Watch Later' up in context menu FIX: rename playlist FIX: show newest videos first (uploads of channel) FIX: show fanarts in 'Watch Later' and 'Liked Videos' ## v1.0.0~alpha29 (2014-12-14) UPD: new login mechanism (removed the old one) ADD: translation fr-FR (thanks to roondar) ADD: manage playlists - create, remove and add videos to a selected playlists FIX: support cyrillic letters ## v1.0.0~alpha28 (2014-12-07) ADD: subscribe to channel (from videos and playlist) UPD: rework of handling context menu FIX: remove next page for related videos (because APIv3 is broken) ## v1.0.0~alpha27 (2014-12-01) UPD: performance improved for auto-removing videos from 'Watch Later' list FIX: error while navigating to the next page ## v1.0.0~alpha26 (2014-11-30) ADD: hide all entries (except search) via settings in the root menu ADD: missing pagination for 'My Subscriptions' FIX: next page is working again (Watch Later) UPD: disabled language (for now) Kodi isn't providing reliable language IDs ## v1.0.0~alpha25 (2014-11-29) UPD: requests with language/region UPD: new icons ADD: Auto-Remove from 'Watch Later' list ADD: 'Related Videos' UPD: show channel name in the description FIX: disable verification warnings ## v1.0.0~alpha24 (2014-11-27) ADD: 'Browse Channels' FIX: support for skins calling '.*/extrafanart/' ## v1.0.0~alpha23 (2014-11-26) ADD: 'What to watch' FIX: 'My subscriptions' switched to version APIv2.1 (Google) DAMN YOU!!! ## v1.0.0~alpha22 (2014-11-25) ADD: sorting FIX: crash when calling 'My subscriptions' FIX: signature calculation ## v1.0.0~alpha21 (2014-11-24) CHG: method for playing a video changed to a more query like uri FIX: crash under android systems. Regular Expressions work a little different :) ## v1.0.0~alpha20 (2014-11-23) FIX: Git merge with master ## v1.0.0~alpha19 (2014-11-23) UPD: complete rewrite UPD: switch to kodion ## v1.0.0~alpha18 (2014-08-31) - ADD: Support for ETag - could improve performance - ADD: remove item of search history - FIX: #22 calculation of duration - FIX: #28 display 'general' instead of 'like' in settings ## v1.0.0~alpha17 (2014-08-10) - ADD: 'Go to CHANNEL' of a selected video - ADD: Support for 'Subscribe' and 'Unsubscribe' of channels - ADD: Full support for 'Like' - ADD: Remove own playlist via context menu - ADD: Show/Hide 'Browse Channels' via settings - FIX: Using only thumbnails from API v3 - 'My Subscriptions' is using v2 and returning different thumbnails - FIX: Displaying false channel in video description - FIX: Don't update search history before showing the search result ## v1.0.0~alpha16 (2014-08-08) - FIX: provide 'Next Page' under 'My Subscriptions' if there are more results - ADD: Hide and show menu items via settings - ADD: Search history (set the size via settings from 0-50 items) ## v1.0.0~alpha15 (2014-08-04) - FIX: moved (only) for the subscribtions to V2 to see new uploaded videos ## v1.0.0~alpha14 (2014-08-03) - ADD: 'Remove' via context menu for playlists - ADD: 'Watch Later' via context menu to add a video to the 'Watch Later' playlist - ADD: Automatic remove from the 'Watch Later' playlists (optional via settings - default = true) - ADD: Support for history - after playback the video should be added to the history. Not working correct. - ADD: Fanart for channels. Only if you select a channel directly. - optimized some of the addon code ## v1.0.0~alpha13 (2014-08-02) - FIX: improved token and login validation ## v1.0.0~alpha12 (2014-08-01) - ADD: Show 'Published on' and 'Channel' in the description of a video (can be disabled via setting) - ADD: support for 3D videos (can be disabled via setting) - Accelerated resolving of video URLs (almost 2x as fast) ## v1.0.0~alpha11 (2014-07-30) - FIX: added a fallback for videos that require a login (works very fast?!?!) - FIX: if username or password is missing reset the whole token logic ## v1.0.0~alpha10 (2014-07-29) - FIX: improved performance on decoding signatures for some videos - ADD: support for custom-created playlists - FIX: sort own subscriptions - ADD: enable/disable video, channel and/or playlist search ## v1.0.0~alpha9 (2014-07-28) - FIX: removed debug ## v1.0.0~alpha8 (2014-07-28) - ADD: login tests ## v1.0.0~alpha7 (2014-07-27) - FIX: added support from freemake.com to decode signatures of some videos ## v1.0.0~alpha6 (2014-07-27) - added support of playlists of a channel (first page only) - optimized some major routines for easier support of all youtube's content ## v1.0.0~alpha5 (2014-07-27) - version bump for tests ## v1.0.0~alpha4 (2014-07-26) - added runtime for each video (crazy hack) - disabled debug ## v1.0.0~alpha3 (2014-07-26) - little fixes regarding youtube channels ## v1.0.0~alpha2 (2014-07-26) - added youtube channels and search - added playback ## v1.0.0~alpha (2014-07-26) - initial version for tests