ClipSaver for Spotify
Adds a download button to the Spotify player and track lists that opens an
Overview
ClipSaver for Spotify is a userscript that adds a download button to the Spotify web player and to tracks in track lists. Clicking a button opens an external audio download service for that track in a new tab. An optional companion panel page can toggle the buttons and trigger a download for the current track.
On the Spotify web player there is no convenient way to jump from the track you are viewing to an audio download service. This script adds a one-click button on the player and on each track row so you do not have to copy the track link and paste it into another site manually.
Spotify web player users who frequently want to fetch an audio file for the track they are playing or browsing and prefer a single-click shortcut over manually copying links.
Key features
- Injects a download button into the Spotify web player next to the existing player controls.
- Adds a matching download button to each row in track lists.
- Clicking a button opens an external audio download service for that specific track in a new tab.
- Detects the track automatically from the page or the clicked row, so no manual link copy is needed.
- Companion panel page can enable or disable the injected buttons and set the track list icon size.
- Panel page can also trigger a download for the current track and shows running/done/failed status.
- Re-scans the page automatically so buttons appear on dynamically loaded content.
- Remembers the connection state so the panel is not reopened on every page load.
Supported sites
- open.spotify.com
Permissions
This script requests the following userscript-manager permissions. Review them before installing.
GM_openInTabGM.openInTabGM_addStyleGM_setValueGM_getValue
How to install & use
- Install a userscript manager such as Tampermonkey or Violentmonkey for your browser.
- Click the "Download / install" button to open the script source on GitHub and install it with your userscript manager.
- Open the target site and use the script as documented.
How to use
- Install the userscript in a userscript manager and open https://open.spotify.com in your browser.
- Start playing or browsing a track; a download button appears in the player controls.
- Click the player button to open the audio download service for the current track in a new tab.
- For a specific track in a list, click the download button on that track row.
- Open the companion panel page (shown once on first run) to adjust settings.
- In the panel, toggle 'Enable injected track buttons' or change the track list icon size as needed.
- Use the panel actions to download the current track or open the download service directly.
Limitations
- Only runs on open.spotify.com; other Spotify pages or apps are not supported.
- It relies on the Spotify web player's page structure, which can change and may temporarily break button injection.
- The script only opens an external download service page; it does not download, decrypt, or store audio files itself.
- Available audio formats and quality depend entirely on the external service, not on this script.
- The panel is opened automatically only on the first run; afterwards it must be opened again through the script's own mechanism.
- Very long or unusual track lists may take a moment to receive buttons while the page is rescanned.
FAQ
Does the script download the audio file itself?
No. It only opens an external download service page for the track you selected; the actual download is handled by that service.
Why don't I see the download button?
The button is injected based on the web player's current layout. If Spotify changes its interface, or the player controls are not visible yet, the button may not appear until the page updates again.
Can I turn the buttons off?
Yes. The companion panel page has an 'Enable injected track buttons' switch that disables the injected buttons.
Which pages are supported?
Only the Spotify web player at open.spotify.com.
How is my track selected?
For the player button the script reads the currently displayed track; for track lists it reads the track from the row whose button you clicked.
Safety & privacy
The script requests only the permissions it needs: opening a new tab (GM_openInTab), storing a small amount of settings data (GM_setValue/GM_getValue), and nothing else beyond the normal page context. It stores only a flag marking that the panel was already connected and the user's panel settings; no account credentials or personal data are collected or transmitted. Runtime logs are kept in an in-memory ring buffer only, are cleared on page reload, and are never persisted. When you click a download button, the track's public URL is sent to the external audio download service that opens in a new tab, so review that service's own privacy practices before using it.