changelog.md 10 KB

2.1.0

  • Features:
    • Auto-like videos and songs of channels where you have enabled this feature
  • Internal Changes:
    • Removed compareVersions() and compareVersionArrays() in favor of including the compare-versions library
    • Added advanced feature to change the startup timeout
  • Plugin Changes:
    • Added new component createLongBtn() to create a button with an icon and text (works either as normal or as a toggle button)
      The design matches that of the subscribe button on YTM's channel pages, but the consistent class names make it easy to style it differently.
    • Added new SelectorObserver instance browseResponse for pages like /channel/{id}
    • Renamed event bytm:initPlugins to bytm:registerPlugins to be more consistent
    • Added events
    • bytm:featureInitStarted - emitted when the feature initialization process starts
    • bytm:featureInitialized - emitted every time a feature has been initialized and is passed the feature's identifier string
    • bytm:siteEvent:pathChanged - emitted whenever the URL path (location.pathname) changes
    • Event bytm:siteEvent:fullscreenToggled will now only emit once per fullscreen change

## 2.0.0 - **Added features:** - Keep the volume synced between tabs - Set an initial volume level once per tab - Hide the cursor after a set amount of inactivity while hovering over the video - Show a thumbnail overlay over the video element (or open the thumbnail in a new tab) automatically and/or manually, depending on configuration - `?si` parameter is removed in YT's share menu too now - Added an "above-queue" button to clear the currently playing queue / playlist - Fix rendering issues when using HDR - Disable the Dark Reader extension on both pages (because it messes up the layout) - **Changes / Fixes:** - Improved the config menu - Created new toggle input (because checkboxes don't come close to looking as good) - Added an `advanced mode` option that reveals a set of hidden settings, and lots of new settings that were previously not configurable - Improved styling and layout of menu substantially, especially when using different languages - Now an option to open the config menu is shown on YT too - Made a bunch of features not require a page reload anymore - Fixed tooltip that is set on the wrong element - Fixed queue buttons not being shown when navigating with tab key - Tons of accessibility improvements for screenreader users (feedback regarding this is strongly welcome!) - **Internal Changes:** - Improved script performance - Implemented new [SelectorObserver](https://github.com/Sv443-Network/UserUtils#selectorobserver) instances to improve overall performance by quite a lot - Implemented rising-edge debounce for SelectorObserver instances to massively improve responsiveness - Added a cache to save lyrics in. Up to 1000 of the most listened to songs are saved throughout sessions for 30 days to save time and reduce server load. - Implemented new class BytmDialog for less duplicate code, better maintainability, the ability to make more menus easier and for them to have better accessibility - Expanded plugin interface - Added function to register plugins (see [contributing guide](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#registerplugin)) All plugins that are not registered will have restricted access to the BetterYTM API (subject to change in the future). - Plugins are now given access to the classes [`BytmDialog`](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#bytmdialog) and [`NanoEmitter`](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#nanoemitter), and the functions [`onInteraction()`](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#oninteraction), [`getThumbnailUrl()`](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#getthumbnailurl), [`getBestThumbnailUrl()`](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#getbestthumbnailurl) [`createHotkeyInput()`](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#createhotkeyinput), [`createToggleInput()`](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#createtoggleinput) and [`createCircularBtn()`](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#createcircularbtn) - Added an experimental fuzzy filtering algorithm when fetching lyrics to eventually yield more accurate results (hidden behind advanced mode because it's far from perfect) - Resource URL versioning was improved, so all versions from now on will still work in the future when the URLs could change

## 1.1.1 - **Features / Changes:** - A new version notification dialog is now shown with the latest version's changes - Menus are now only created when needed - Moved dependencies to `@require` to reduce script size - Improved UX of the hotkey input in the config menu - **Fixes:** - Fixed fatal error when cookies / session storage was unavailable or disabled - Fixed spacing around thumbnails in search results being inconsistent - Fixed queue button container alignment - Fixed Chinese translations - **Internal Changes:** - Removed React JSX support - Small utility function refactoring

## 1.1.0 - **Features / Changes:** - The userscript is now available in 9 languages! To submit or edit translations, please [view this guide](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#submitting-translations) - Added an interface for user-created plugins ([see contributing guide for more info](https://github.com/Sv443/BetterYTM/blob/main/contributing.md#maining-a-plugin-that-interfaces-with-betterytm)) - Made site switch hotkey customizable - Userscript will now show a welcome page after first install / update - Feature to restore last song's time on page reload - Made interval of arrow key skip configurable - A hint is now sent to Dark Reader to disable itself (see [this](https://github.com/darkreader/darkreader/discussions/6868#discussioncomment-3109841)) - Made volume slider scroll sensitivity configurable - Added details / help dialog to menu feature list - Added queue buttons to all types of song list - Added manual version check (can be disabled in config menu) - **Fixes:** - BetterYTM now uses a more reliable way to skip to a certain time - Fixed resources not loading in Chrome - Fixed album list spacing getting messed up by anchor improvements styling - Fixed "Start at" option in share menu making tracking parameter reappear - Fixed selector for player queue that was changed by a YTM update - **Internal Changes:** - The license of the source code has been changed from MIT to [AGPL-3.0](https://github.com/Sv443/BetterYTM/blob/main/LICENSE.txt) - Migrated to the Rollup bundler - Now multiple versions of the script are compiled for the different hosts (GitHub, GreasyFork, OpenUserJS) with slight compatibility fixes each - Target branch can now be specified while compiling instead of being tied to the bundler mode - Added support for React JSX - Added support for external libraries through `@require`

## 1.0.2 - **Changes:** - Script is now published to OpenUserJS! - Added an OpenUserJS link to the configuration menu

## 1.0.1 - **Changes:** - Script is now published to GreasyFork! - Added a GreasyFork link to the configuration menu

## 1.0.0 - **Added Features:** - Added configuration menu to toggle and configure all features - Added lyrics button to each song in the queue - Added "remove from queue" button to each song in the queue - Use number keys to skip to a specific point in the song - Added feature to make volume slider bigger and volume control finer - Added percentage label next to the volume slider & title on hover - Improvements to link hitboxes & more links in general - Permanent toast notifications can be automatically closed now - Remove tracking parameter `&si` from links in the share menu - Fix spacing issues throughout the site - Added a button to scroll to the currently active song in the queue - Added an easter egg to the watermark and config menu option :) - **Changes & Fixes:** - Now the lyrics button will directly link to the lyrics (using my API [geniURL](https://github.com/Sv443/geniURL)) - Video time is now kept when switching site on regular YT too - Fixed compatibility with the new site design - A loading indicator is shown while the lyrics are loading - Images are now smaller and cached by the userscript extension - Song names with hyphens are now resolved better for lyrics lookup - Site switch with F9 will now keep the video time - Moved lots of utility code to my new library [UserUtils](https://github.com/Sv443-Network/UserUtils)

## 0.2.0 - **Added Features:** - Switch between YouTube and YT Music (with F9 by default) - Search for song lyrics with new button in media controls - Remove "Upgrade to YTM Premium" tab


0.1.0

  • Features:
    • Added support for arrow keys to skip forward or backward (currently only by fixed 10 second interval)