Spotify Web Queue Exporter
Free to download on every platform. Comes pre-installed on BotFone, BotPad and BotFlip — with extra free apps included.
About this app
WHAT IT DOES
This script exports your Spotify Web Player queue to a structured file format. When you're using Spotify Web Player, the script extracts all tracks from your queue—including the current track, upcoming tracks, and any songs you've added to the queue. It displays the queue as a list in the settings panel showing track title, artist, and duration. You can export the queue as CSV (for spreadsheets), JSON (for developers), or plain text. A "Copy to clipboard" button lets you copy the queue data without downloading a file. A "Clear queue" button helps you manage your queue by removing all tracks. The queue updates dynamically as you add or remove tracks.
WHERE IT RUNS
The script runs on the Spotify Web Player (open.spotify.com). It works on both desktop and mobile views.
HOW TO USE
After installation, the settings panel appears on the left side of the screen with the gear emoji (⚙️). Open the panel to configure the script:
- The "Enable queue exporter" toggle enables or disables the script.
- The "Queue" section shows all tracks currently in your queue.
- Choose the export format from the dropdown: CSV, JSON, or Plain Text.
- Toggle "Include currently playing track" to include or exclude the current track in exports.
- Click "Export" to download the queue as a file.
- Click "Copy to clipboard" to copy the queue data to your clipboard.
- Click "Refresh queue" to manually update the queue list.
- Click "Clear queue" to remove all tracks from the queue.
The script works automatically—just open your Spotify Web Player and the queue will appear in the panel.
TECHNICAL SECTION — REAL MECHANISM
The script detects Spotify Web Player pages by checking the URL for open.spotify.com. It extracts queue data by scanning the DOM for queue items using selectors like .queue-playlist .tracklist-row, .queue-tracks .tracklist-row, and .tracklist .tracklist-row. For each track item, it extracts the title from [data-testid="track-title"] or .track-title, the artist from [data-testid="track-artist"] or .track-artist, the duration from .tracklist-col-duration or .duration, and the album from .tracklist-col-album or .album. The current track is extracted separately from the now-playing bar using [data-testid="track-title"] and [data-testid="track-artist"]. The queue data is stored as an array of objects and displayed in the panel. Export functions format the data as CSV (with proper quoting), JSON, or plain text. The download function creates a Blob and uses a temporary anchor element to trigger the download. The script uses a MutationObserver to detect DOM changes and update the queue list dynamically.
THE PANEL
The settings panel is built with BotGentz's BGPanel component. It is draggable via its header, allowing you to reposition it anywhere on the screen. The panel snaps to the left edge by default but can be moved freely. Click the gear emoji to collapse the panel into a small bubble, and click the bubble to expand it again. The panel remembers its position per page session. Press the Escape key to quickly close or minimize the panel. The panel includes a status flash bar that provides visual feedback when settings are changed or actions are performed. All settings save automatically via GM_setValue.
PLEASE NOTE
This script requires the free BotGentz browser extension to run. It does not function as a standalone Chrome extension and does not use chrome.* APIs. Spotify frequently updates its Web Player interface, which may affect the selectors used to find queue items and track information. If the script stops working, please check for updates. The "Clear queue" button attempts to click Spotify's clear queue button—if the button is not found, the action will fail. The script stores only your preferences via GM_setValue. No data is sent externally—all data is stored locally in your browser. The script never reads or writes password fields, hidden inputs, or file inputs. All DOM operations use safe methods (style properties, textContent, appendChild) and never use innerHTML.