mirror of
https://github.com/DoorBlox/spicetify-enhanced-downloader.git
synced 2026-04-26 14:15:48 +03:00
Advanced Spotify download extension for Spicetify with track-level parallelism and multi-content support
| Extensions | ||
| .gitignore | ||
| config.json | ||
| INSTALL.md | ||
| LICENSE | ||
| package.json | ||
| README.md | ||
| setup.js | ||
🎵 Spicetify Enhanced Downloader
An advanced Spotify download extension for Spicetify with track-level parallelism, support for tracks, albums, playlists, and artists.
✨ Features
🚀 Multi-Content Support
- Individual Tracks → Downloads to root folder
- Albums → Downloads to
Album Name by Artist/folder with parallel track downloads - Playlists → Downloads to
Playlist Name/folder with parallel track downloads - Artists → Downloads top 10 tracks to
Artist Name/folder
⚡ Performance
- Track-level parallelism - Downloads 3 tracks simultaneously within albums/playlists, adjustable
- Smart queueing system - Handles unlimited downloads
- 3x faster than sequential downloads for large collections
🎯 User Experience
- Perfect file naming -
Song Name - Artist.mp3format - Real-time notifications - Progress updates in Spotify
- Automatic retries - Handles failures gracefully
📁 Folder Structure
D:\HISYAM\Music\Spotify Downloads\
├── individual_song.mp3
├── Album Name by Artist/
│ ├── Track 1 - Artist.mp3
│ ├── Track 2 - Artist.mp3
│ └── Track 3 - Artist.mp3
├── Playlist Name/
│ ├── Song 1 - Artist 1.mp3
│ ├── Song 2 - Artist 2.mp3
│ └── Song 3 - Artist 3.mp3
└── Artist Name/
├── Popular Song 1 - Artist.mp3
├── Popular Song 2 - Artist.mp3
└── Popular Song 3 - Artist.mp3
🔧 Requirements
- Spicetify installed and configured
- Node.js (for server management)
- spotdl (and FFmpeg) installed and accessible from PATH
- Windows (PowerShell support)
📦 Installation
-
Clone this repository:
git clone https://github.com/DoorBlox/spicetify-enhanced-downloader cd spicetify-enhanced-downloader -
Copy extension files:
copy Extensions\* "%APPDATA%\spicetify\Extensions\" -
Enable the extension:
spicetify config extensions song-downloader-enhanced-artist.js spicetify apply -
Install spotdl (if not already installed):
pip install spotdl
🎯 Usage
- Open Spotify
- Start the download server by either:
- Double clicking on
start-download-server.bator node server-manager.js --start
- Double clicking on
- Right-click on any:
- Track → Downloads individual song
- Album → Downloads all tracks in parallel
- Playlist → Downloads all tracks in parallel
- Artist → Downloads top 10 tracks
- Select "Download" from context menu
- Watch notifications for progress updates
🛠️ Server Management
The system includes automatic server management:
- Health checks: Automatic server status monitoring
- Manual control: Use batch files for manual start/stop
Manual Server Control:
# Start server
node server-manager.js --start
# Stop server
node server-manager.js --stop
# Check status
node server-manager.js --status
📊 Server Status
Check download queue and active downloads:
# PowerShell
Invoke-RestMethod -Uri "http://localhost:3001/status" -Method Get
# Or visit: http://localhost:3001/status
🔧 Configuration
Change Download Directory:
Edit config.json:
"downloadDirectory": "D:\\Your\\Custom\\Folder",
spicetify apply
Adjust Parallel Downloads:
Edit config.json:
"maxConcurrentDownloads": 5, // Default: 3
spicetify apply
Change API Limits:
Edit download-server.js:
// For playlists/albums
apiUrl = `https://api.spotify.com/v1/albums/${id}/tracks?limit=500`;
Edit config.json:
"apiLimit": 500,
spicetify apply
🎵 How It Works
- Extension Integration: Adds context menu to Spotify via Spicetify
- Metadata Extraction: Fetches track/album/playlist info from Spotify API
- Enhanced Processing: For albums/playlists, fetches individual tracks
- Parallel Downloads: Queues tracks for simultaneous download
- File Organization: Creates appropriate folder structure
🚀 Performance Comparison
| Content Type | Old Method | Enhanced Method | Speed Improvement |
|---|---|---|---|
| Individual Track | 1 track | 1 track | Same |
| 12-track Album | Sequential | 3 parallel | 3x faster |
| 50-track Playlist | Sequential | 3 parallel | 3x faster |
| Artist Top 10 | Not supported | 3 parallel | New feature |
🔍 Troubleshooting
Server Issues:
- Check if Node.js is installed:
node --version - Verify spotdl installation:
spotdl --version - Restart server:
node server-manager.js --stop && node server-manager.js --start
Download Failures:
- Ensure spotdl is in PATH
- Check internet connection
- Verify Spotify access token (auto-refreshed)
Extension Not Loading:
- Restart Spotify after applying extension
- Check Spicetify configuration:
spicetify config - Verify extension files are in correct location
📁 File Structure
spicetify-enhanced-downloader/
├── Extensions/
│ ├── song-downloader-enhanced-artist.js (Main extension)
│ ├── download-server.js (HTTP server)
│ ├── server-manager.js (Server lifecycle)
│ ├── start-download-server.bat (Manual start)
│ └── stop-download-server.bat (Manual stop)
├── config.json
├── README.md
├── INSTALL.md
└── LICENSE
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Spicetify team for the amazing platform
- spotdl developers for the download tool
- Spotify for the comprehensive API
⚠️ Disclaimer
This tool is for educational purposes only. Please respect artists' rights and Spotify's terms of service. Only download content you have the right to access.
Made with ❤️ for the Spotify community