ExportifyX is a fully local, cross-platform Python tool that exports Spotify playlists to TXT, CSV, Markdown, or JSON — through a clean Web-based dashboard or command-line interface.
- 🎧 No installation
- 🔒 Fully offline (except Spotify API access)
- 💾 Runs from USB or any folder
- 💻 Works on Linux, macOS, Windows, and Android (via Termux)
- Web-Based Interface: Local Flask WebGUI — dark-themed, mobile-safe, runs at
http://127.0.0.1:5050 - CLI Mode with Flags: Power users can use
--cli,--format,--batch, and--bind(with--allow-external) - Multiple Export Formats:
- Markdown (
.md) - Plain Text (
.txt) - CSV (
.csv) - JSON (
.json)
- Markdown (
- Batch Mode: Export multiple playlists at once from a text file (CLI & Web GUI)
- Progress Bar: Beautiful
tqdmCLI progress bar during batch exports - Fully Offline & Self-Contained: All data stays on your machine
-
Spotify API Credentials
- Go to the Spotify Developer Dashboard
- Create an app and copy your Client ID and Client Secret
-
Python 3.13.3 (recommended)
ExportifyX is developed and tested on Python 3.13.3.
Python 3.10+ is likely fine, but the latest version is recommended.
-
Clone the project
git clone https://github.com/your-username/exportifyx.git cd exportifyx -
Install dependencies
pip install -r requirements.txt
-
Edit
config.toml[spotify] client_id = "YOUR_CLIENT_ID_HERE" client_secret = "YOUR_CLIENT_SECRET_HERE" [output] output_dir = "playlists" [webgui] port = 5050
python3 -m exportifyx- Automatically opens
http://127.0.0.1:5050 - Paste a Spotify playlist URL
- Select export format
- Click Export
✅ All exports saved to the
playlists/folder
python3 -m exportifyx --cli --playlist-url "https://open.spotify.com/playlist/..." --format csvpython3 -m exportifyx --bind 0.0.0.0 --allow-externalExternal hosting is not officially supported and may expose your machine to potential threats.
python3 -m exportifyx --cli --batch path/to/file.txt --format jsonWhere file.txt contains one playlist URL per line.
Example progress output:
Exporting playlists: 75%|███████████████████████████▌ | 3/4 [00:08<00:02, 2.31s/playlist]
[
{
"track_name": "Ride",
"artist_names": ["Twenty One Pilots"],
"album_name": "Blurryface"
}
]exportifyx/
├── __main__.py
├── cli.py
├── config.py
├── exportifyx.py
├── webgui.py
├── templates/
│ ├── base.html
│ ├── index.html
│ └── result.html
├── playlists/
requirements.txt
config.toml
- Playlist URLs must be valid and public/private Spotify playlists
- Rate-limiting may occur for very large batch exports (Spotify API limitation)
- Web GUI now supports batch playlist export (new in v3.3.0)
- External hosting (
--bind) is experimental; use--allow-externaland understand the risks.
PRs welcome!
Fork and submit your improvements.
- Spotify Web API
- Spotipy
- Flask
- tqdm — for CLI progress bars
Export your playlists your way.
🎶 Markdown. JSON. Plain Text. CSV.
💻 Web or CLI. Your data, your control.