Releases: InfiArtt/accessify-play
AccessifyPlay v1.6.0
Changelog
Version 1.6.0
This release introduces major changes to the gesture system, shifting to a Command Layer for a smoother and conflict-free experience. Ideally, this should make using the addon significantly faster and more intuitive.
⚠️ IMPORTANT: Breaking Changes to Gestures
All previous default global gestures (e.g., NVDA+Alt+Shift+P, NVDA+Alt+Shift+V, etc.) have been REMOVED.
- New Workflow: The primary entry point is now
NVDA+g(Command Layer). - Custom Gestures: Manually assigned gestures in NVDA "Input Gestures" will continue to work.
New Features
- Command Layer (
NVDA+g): A powerful mode to control Spotify using single keystrokes (pfor Play,nfor Next,xfor Universal Link, etc.).- F1: Show available commands list.
- F2: Open the Command Layer Editor.
- F4: Quickly open Accessify Play Settings.
- Manage Playlists: You can now add entire Albums to playlists directly.
- Duplicate Prevention: Tracks that already exist in a specific playlist cannot be added again.
- Configurable Volume Step: Customize the percentage step for volume controls in Settings.
- Universal Link: Added a command (shortcut
xin Command Layer) to copy a Song.link/Odesli URL to share music across different platforms. - Sleep Timer: Added a sleep timer feature.
Bug Fixes
- [Critical] Universal Link: Fixed the 'Copy Universal Link' command (
x) which was not registered correctly in v1.6.0-rc.1. - Shuffle/Repeat: Updated announcement messages to accurately reflect the current state.
- Like/Unlike Logic: The
Lkey now correctly toggles the saved status of a track. - Playback Context: Playing a track from the Playlist Management screen now correctly maintains the playlist context.
- New Releases: Fixed an issue where viewing albums from the "New Releases" tab returned incorrect results.
- Playlist Ownership: Adding an album to a playlist will no longer display playlists not owned by the user.
Contributors
- Special thanks to @rexya2017 for the major work on the new Command Layer system.
AccessifyPlay v1.6.0-rc.2
Changelog
Version 1.6.0-rc.2
⚠️ Pre-release NoticeThis version is a pre-release build. Full documentation is not yet available.
If you encounter errors, please open an issue.
This release fixes a critical issue in rc.1 regarding the Universal Link feature, alongside the major changes for v1.6.0.
⚠️ IMPORTANT: Breaking Changes to Gestures
All previous default global gestures (e.g., NVDA+Alt+Shift+P, NVDA+Alt+Shift+V, etc.) have been REMOVED.
- New Workflow: The primary entry point is now
NVDA+g(Command Layer). - Custom Gestures: Manually assigned gestures in NVDA "Input Gestures" will continue to work.
New Features
- Command Layer (
NVDA+g): A powerful mode to control Spotify using single keystrokes (pfor Play,nfor Next,xfor Universal Link, etc.).- F1: Show available commands list.
- F2: Open the Command Layer Editor.
- F4: Quickly open Accessify Play Settings.
Manage Playlists: You can now add entire Albums to playlists directly.
- Duplicate Prevention: Tracks that already exist in a specific playlist cannot be added again.
- Configurable Volume Step: Customize the percentage step for volume controls in Settings.
- Universal Link: Added a command (shortcut
xin Command Layer) to copy a Song.link/Odesli URL to share music across different platforms. - Sleep Timer: Added a sleep timer feature.
Bug Fixes
- [Critical] Universal Link: Fixed the 'Copy Universal Link' command (
x) which was not registered correctly in v1.6.0-rc.1. - Shuffle/Repeat: Updated announcement messages to accurately reflect the current state.
- Like/Unlike Logic: The
Lkey now correctly toggles the saved status of a track. - Playback Context: Playing a track from the Playlist Management screen now correctly maintains the playlist context.
- New Releases: Fixed an issue where viewing albums from the "New Releases" tab returned incorrect results.
- Playlist Ownership: Adding an album to a playlist will no longer display playlists not owned by the user.
Contributors
- Special thanks to @rexya2017 for the major work on the new Command Layer system.
AccessifyPlay v1.6.0-rc.1
Version 1.6.0-rc.1
⚠️ Pre-release NoticeThis version is a pre-release build. Full documentation for this version is not yet available, so feel free to explore everything freely.
If you encounter any errors or notice anything that doesn’t work as expected, please open an issue and we will do our best to resolve it.
This release marks a major paradigm shift in how you interact with Accessify Play. We have introduced a Command Layer to streamline controls and reduce keyboard conflicts, as mentioned in the v1.5.1 changelog.
⚠️ Important: Breaking Changes to Gestures
All previous default global gestures (e.g., NVDA+Alt+Shift+P, NVDA+Alt+Shift+V, etc.) have been REMOVED.
- New Workflow: The primary entry point for the addon is now
NVDA+g. Pressing this activates the Command Layer, where you can press single keys to control Spotify (e.g., presspfor Play/Pause,nfor Next). - Why this change? This approach significantly reduces “gesture clutter,” giving NVDA more room for other addons and preventing conflicts with system shortcuts. Future development will focus primarily on this Command Layer.
- Custom Gestures: If you have manually assigned your own gestures using NVDA’s “Input Gestures” dialog, your custom gestures will NOT be removed and will continue to function. Only the original factory defaults have been removed.
New Features
- Command Layer (
NVDA+g): A new, powerful mode to control Spotify using single keystrokes.- F1: Open the list of available commands in the Command Layer.
- F2: Open the Command Layer Editor menu.
- F4: Quickly open NVDA Settings for Accessify Play.
- Additional keybinds can be learned through the F1 help screen.
- Albums can now be added to playlists.
- Tracks that already exist in a playlist can no longer be added again due to limitations in the Spotify API.
- You can now set the volume step in the Accessify Play Settings, making it easier to increase or decrease the step size as needed.
- Added universal song.link copying to make it easier to share tracks so the link can be opened on platforms other than Spotify.
- Added sleep timer.
Fixed
- Updated the messages for shuffle/repeat, as the previous messages were incorrect.
- The
Lkey now works as intended: it saves a track if it isn’t saved, and unsaves it if it is already saved. - Playing from the playlist management screen will now play the track in the correct context.
- Viewing albums from the New Releases tab no longer returns incorrect results.
- Adding an album to a playlist will no longer display playlists that do not belong to the user. (This bug was discovered during internal testing.)
Contributors
- Special thanks to @rexya2017 for their major work on the new Command Layer system.
AccessifyPlay v1.5.1
Hello Accessify Play users!
We are currently finalizing development on version 1.6.0, which will mark a significant milestone in the maturity and structure of this add-on. Before we release it, we want to inform you of a major structural change so you are not surprised.
The Challenge:
As Accessify Play has grown, we have introduced over 20 global keyboard shortcuts. While these provide quick access, we recognize that occupying so many key combinations by default creates problems:
- It clutters your NVDA environment.
- It significantly increases the risk of conflicts with other add-ons.
- It makes the add-on harder for new users to memorize.
The Solution (Coming in v1.6.0):
To solve this, we have decided to remove (unbind) all default global shortcuts in the next update.
Instead, we will fully transition to the Command Layer system. This allows you to press one trigger key (e.g., NVDA+G) followed by single letters to perform actions, keeping your keyboard free and clean.
What This Means for You:
Features Remain: No features are being removed. Every action will still exist in the NVDA Input Gestures menu.
Total Control: If you rely on specific global shortcuts (like the old Play/Pause shortcut), you can still manually re-assign them in Input Gestures settings. We are simply giving you the choice, rather than forcing 23 shortcuts on you.
The Final Cap: Version 1.6.0 will introduce one final item to the input list, bringing the total to 24 actions. After this, we will freeze the global input list. All future features will be developed exclusively for the Command Layer to ensure the add-on remains lightweight.
This update (v1.5.1) contains no code changes; it serves only as a notification to help you prepare for a cleaner, more stable, and better-structured Accessify Play.
Thank you for your understanding and support!
— The Aegis Team · Infiartt Organization
AccessifyPlay v1.5.0
Changelog
Version 1.5.0
This stable release focuses on improving core reliability, reducing connection issues, and refining overall performance. Several long-standing gaps in functionality have been addressed, and new quality-of-life features have been introduced to make navigation, playback, and library management more consistent and intuitive.
Added
- Implemented playlist track reordering in the Management dialog using
Alt+Up/Downarrow keys. - Added a feature that lets you go to the album or artist from the context menu in most parts of the UI when the selected item is a track (Resolves #34).
- Added a feature that allows users to add, view, and remove albums from the Saved Albums tab in Spotify Management, similar to how Saved Tracks are handled.
- added a feature to manage shows the same way as albums; not sure why this wasn’t available before.
- Added support for following and unfollowing playlists directly from the Search dialog.
- added a feature to control shuffle and repeat with NVDA Alt+Shift+H and R, respectively.
- added a feature to jump to a relative number of seconds or to a specific minute:second position.
- added keep-alive settings so there are no dead connections (hopefully this works well).
- added a playlist ownership identifier, allowing you to distinguish between your playlists and those created by others.
- Added a shortcut
Alt+NVDA+Shift+Fto quickly follow or unfollow the artist of the currently playing track. - Added a version-checking system during Add-on installation. If a newer version of the addon is available, the user will be notified before the installation completes.
Changed
- Improved playback to maintain context from albums, playlists, and shows, ensuring the queue continues correctly (Resolves #29).
- Refactored internal command handling to use decorators, resulting in cleaner, more maintainable code and improved error handling.
Fixed
AccessifyPlay v1.4.1
Version 1.4.1-pre.1 (Pre-release)
This is a focused pre-release aimed at dramatically improving playback consistency and introducing a powerful new feature for playlist management. The core of this update is to make the add-on's behavior more intuitive and reliable in everyday use. A special thanks to @a-singer for meticulously reporting the key issues addressed in this release.
✨ New Features
- Playlist Reordering with Keyboard: You can now reorder tracks within your own playlists directly from the Management dialog. Simply select a track in the playlist view and use
Alt+Up ArroworAlt+Down Arrowto move it. The UI updates instantly for a smooth and responsive experience.
🌟 Major Improvements
- Intelligent Contextual Playback: This is a fundamental fix to how the add-on handles your music queue. When you play a specific track from an album, playlist, or podcast, the queue will now correctly continue with the subsequent items from that context. This makes the
Next TrackandPrevious Trackcommands behave predictably and reliably, just like in the official Spotify app. (Resolves #29) This improvement applies to:- Search Results
- Album Tracks Dialog
- Playlist Tracks Dialog
- Podcast Episodes Dialog
🛠️ Fixes
- Enhanced Connection Stability: Resolved a common issue where the add-on would report "No active device found" after a long period of inactivity due to a stale connection. The connection logic is now more resilient and automatically attempts to re-establish communication with Spotify, I hope. (Resolves #30)
- Artist Discography Navigation Fix: Corrected a bug that caused a crash (
AttributeError) when attempting to open an album's track list from the Artist Discography dialog. (Resolves #31)
AccessifyPlay v1.4.0
Changelog
Version 1.4.0
This is the most polished and feature-rich release so far, introducing smarter workflows, expanded capabilities, and major stability advancements that elevate the entire Spotify experience on NVDA.
✨ New Features
- Switch Playback Devices: You can now open a dialog with
NVDA+Alt+Shift+Dto view all available Spotify devices (computers, phones, smart speakers) and seamlessly transfer playback to any of them. - Contextual 'Add to Playlist': The 'Add to Playlist' feature is now available in the context menu for tracks in nearly every view, including Search Results, Saved Tracks, Top Tracks, Recently Played, Artist Discography, and Album Tracks. (Resolves #22)
- Richer Artist Browsing: The artist discography dialog has been enhanced with new tabs for "Artist Info" and "All Tracks," featuring incremental loading to handle large discographies efficiently.
- Quick Playlist Playback: A "Play Playlist" button has been added next to the playlist selection dropdown in the Management dialog, allowing for immediate playback of the selected playlist.
- Delete Track with Keyboard: In the Management dialog's playlist tab, you can now press the
Deletekey on a selected track to remove it from the playlist (after a confirmation prompt). - Pagination for Large Catalogs: "Load More" functionality has been added to long lists, such as playlist tracks and podcast episodes. This respects the "Search Results Limit" setting and significantly reduces initial load times.
- Proactive Device Wake-Up: The addon now automatically attempts to "wake up" the last used Spotify device if it becomes inactive. This resolves many "No active device found" errors, making playback resumption smoother. (Resolves #25)
🛠️ Fixes & Improvements
- Simplified Playlist Management UI: The playlist management tab has been redesigned, replacing the complex tree view with a more intuitive dropdown menu for selecting playlists and a simple list for their tracks. This makes navigation faster and brings the user experience in line with other dialogs.
- Corrected Duplicate Queue Items: Fixed a bug where the queue dialog would sometimes display the same track multiple times. The list now accurately reflects the true state of your Spotify queue.
- Enhanced Search Activation: Pressing
Enteron artists, albums, podcasts, or playlists in the search results now opens the appropriate detailed view (e.g., discography, track list) instead of immediately starting playback. This creates a more consistent and predictable exploration workflow. (Resolves #19) - Improved Shortcut Implementation: All UI shortcuts now function consistently across the interface, with clearer usage in search, management, and queue.
- Reliable Skip Commands: The next/previous track shortcuts now verify a follow-up track exists before executing and translate Spotify's restriction errors into friendly messages (e.g., "No previous track available."). This prevents playback from stopping unexpectedly. (Resolves #23)
- Accurate Playback Announcements: The scripts for announcing the current track and "next in queue" now respect Spotify’s
is_playingflag and handle empty queues correctly, preventing stale or inaccurate announcements. - Smarter Queue Management: Queueing an album or playlist is now more reliable. The "currently playing" item in the queue dialog is now hidden when playback stops, accurately reflecting the current state.
- Episode Playback Fix: Corrected Spotify URI handling so that individual podcast episodes play reliably without errors.
- Code Reorganization: The addon's codebase has been reorganized into separate files for each dialog/class. This improves maintainability, simplifies error tracking, and makes future development easier.
❌ Removed
- Removed Remove from Queue Feature: This feature has been removed because Spotify does not officially support modifying the playback queue and previous implementations relied on non-ideal workarounds that often caused inconsistent, unpredictable, and unstable behavior. Removing this feature ensures a more reliable and accurate queue experience going forward.
AccessifyPlay v1.3.4
Version 1.3.4
Code Fixes
- Improved Updater Version Parsing: Fixed an issue where the updater could not correctly parse and compare semantic versions that included pre-release tags (e.g.,
1.3.5-pre,1.3.5-beta1,1.3.5-rc4). The version parsing logic has been updated to accurately handle these formats, ensuring that the addon correctly identifies and offers the latest available updates across all release channels. @rexya2017
Accessify Play v1.3.3
Changelog
Version 1.3.3 (Pre-release)
This is a maintenance and code quality release that addresses significant structural issues from previous versions. The primary focus is on refactoring duplicated code, cleaning up logic, and improving the overall stability and long-term maintainability of the addon.
✨ Improvements & Refinements
- Unified Language System: The language management system has been completely unified and centralized. The addon now correctly follows NVDA's default language and provides a seamless fallback to English if a translation is not available. The language selection dropdown in the settings panel is now dynamically populated, ensuring all available languages are always displayed correctly.
- Default Port Change: The default callback port for Spotify authentication has been changed from
8888to8539. This helps prevent potential conflicts with other applications that may use port 8888. New installations will use this port by default.
🛠️ Code Fixes & Housekeeping
- Major Code Refactoring: Removed a large block of duplicated code within the addon's main file (
__init__.py). This resolves the primary source of instability from version 1.3.1/1.3.2 and makes the addon significantly easier to maintain and debug. - Corrected Settings Logic: Fixed a bug in the settings panel (
onSavemethod) where the selected language was not being saved correctly due to an incorrect variable name. - Cleaned Up UI Logic: Resolved a minor error in the settings panel that would occur when clearing credentials, which was caused by referencing a non-existent UI element.
- Removed Redundant Imports: Cleaned up duplicated and unnecessary module imports for a slightly leaner and more organized codebase.
AccessifyPlay v1.3.2
Version 1.3.2 (Required Hotfix)
This is an essential hotfix release to address a critical bug that prevented credential validation in version 1.3.1. This update is solely focused on restoring core functionality.
🛠️ Critical Fix
- Restored Credential Validation: Fixed a critical
AttributeErrorthat occurred when pressing the "Validate Credentials" button in the settings panel. This bug made it impossible for users to authenticate with Spotify. With this fix, the validation process now works as expected, allowing the addon to be used.
📝 Developer Notes
- Code Quality: Please be aware that this release contains known code duplication and other structural issues. The immediate priority was to fix the validation bug.
- Future Cleanup: A follow-up release (version 1.3.3 or newer) is planned to address these underlying code quality problems, refactor duplicated logic, and ensure long-term stability.
Release notes
Full Changelog: v1.3.1...v1.3.2