Skip to content

Release 3.0.0

Latest
Compare
Choose a tag to compare
@Sv443 Sv443 released this 21 May 16:12
· 5 commits to main since this release
  • Added features:
    • 🎵 Automatically scroll to the active song in the queue on page load or video change
    • 🎵 Make the player container use all available space on /watch
    • New configurable hotkeys:
      • 🎵 Skip forwards/backwards by a frame (. / ,)
      • Like/dislike video/song (ShiftL / ShiftD)
      • 🎵 Open lyrics of current song (O)
      • Skip to last remembered video/song time (AltR)
      • Reconfigurable skip to beginning & previous/next video/song (ShiftN / ShiftP, disabled by default)
      • Reconfigurable play/pause (Pause, disabled by default)
  • Changes and improvements:
    • Song/video volume will now be restored after BYTM reloads the tab by using the new common reloadTab() function
    • Added an adornment icon to identify which features work only on YTM, versus on both sites
    • 🎵 Thumbnail overlay improvements:
      • Overlay now prefers to use a high res album artwork from Apple Music if the current song is in an album
      • Fixed image not being updated while in fullscreen
    • 🎵 Made above-queue button container's sticky positioning toggleable with a feature
    • Made the resolution of the browser-preferred locale more reliable
    • Implemented a more powerful translation system
    • Removed the thumbnail overlay fitting option in favor of automatically switching based on the media type
  • Fixes:
    • Sped up installation time by loading all resources except stylesheets via regular fetch() and the external CDN instead of using @resource directives
    • Bumped z-index of dialog elements to display them correctly after a recent page update
    • Fixed white font color for BYTM config option on YT in light theme
    • 🎵 Fixed volume label not being fully hidden along with the slider
    • Config menu will now be correctly set as inert when a BytmDialog is opened over top
    • 🎵 Fixed "remove from queue" button sometimes deleting playlist entries instead of queue items
Click to expand internal and plugin changes
  • Plugin Changes:
    • See contributing guide for full documentation
    • API changes:
      • ⚠️ BREAKING: Renamed createRipple()'s speed prop values:
        • From faster to fastest
        • From slower to slowest
      • ⚠️ BREAKING: Made hasKey() and hasKeyFor() return a Promise to load the given locale if it's not found
      • ⚠️ 🎵 BREAKING: Removed sideBarMini observer instance
      • Made getCurrentMediaType() return "video" on YT instead of throwing an error
      • Added property additionalProps to the RippleProps argument in createRipple(), to assign extra props to the created or passed ripple element
    • New API functions:
      • Added reloadTab() as a better way to reload the page by keeping the same video time and volume and disabling BYTM features like initial tab volume
      • Added getVideoElement() to get the video element (if available) on the current page, on both YT and YTM
      • Added getVideoSelector() to get the CSS selector for the video element on the current page, on both YT and YTM
      • Added getDefaultFeatures() (callable without registering the plugin) to return the default / fallback feature configuration object
      • Added getLikeDislikeBtns() to return the like and dislike buttons on both domains, including the like/dislike state
      • Added isIgnoredInputElement() to check if the given or currently focused element is an input element, upon which all other keypress event listeners should be ignored
      • Added fetchITunesAlbumInfo() to fetch album info objects from the Apple Music / iTunes API, given an artist and album name
    • New API constants:
      • Added initialParams (URLSearchParams), the search params at the initial point of loading BYTM
      • Added sessionStorageAvailable (boolean), whether the browser supports sessionStorage
  • Internal Changes:
    • Improved asset caching by using JSDelivr instead of GitHub as a CDN
    • Fixed problems with the translation system by implementing UserUtils v9's new system
    • Added JSON schemas for all JSON files in assets

See pull request for more info