Skip to content

amourification/Suno-Backup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


β™ͺ  S U N O   B A C K U P

Never lose a song again.

Your Suno library, downloaded locally. Every format. Every track. One click.


Python 3.9+ Platform License Suno Pro

Buy Me A Coffee

Suno Backup - One-click backup for your entire Suno music library. | Product Hunt



✨ The Ultimate Suno Archiver

The only tool on the internet that does it all in one click: πŸ”₯ Triggers and downloads native WAV masters (Pro) 🎨 Creates high-quality MP3s with embedded cover art πŸ—‚οΈ Organizes everything into a perfect folder structure with a complete CSV library logbook.

✨ Why This Exists

You've spent hours β€” maybe hundreds of hours β€” creating music on Suno. Prompts perfected, styles refined, hidden gems buried three pages deep in your library.

Suno doesn't have a bulk export button. You do now.

Suno Backup scans your entire library using Suno's own private API, extracts every song ID it can find, and downloads everything to your local machine β€” organized, labeled, and ready for any DAW, streaming service, or personal archive.


🎡 What Gets Downloaded

Format Details
🎡 MP3 Full-quality stream audio
🎼 WAV Lossless master β€” triggers Suno's server-side conversion automatically (Pro)
🎬 WEBM Music video with visualizer (Pro)
πŸ–ΌοΈ Cover Art High-res JPEG thumbnail
πŸ“„ Metadata JSON Full API response β€” prompts, tags, model, stats
πŸ“Š CSV Index Your entire library in a spreadsheet, with every CDN URL pre-computed

πŸš€ Quick Start

No terminal experience needed. Just double-click and log in.

There are two launchers per OS: one for the terminal (CLI) backup flow, one for the desktop GUI. Use whichever you prefer.

You want… Windows macOS / Linux
Terminal β€” run in a console, type Y to download START_WINDOWS.bat bash START_MAC_LINUX.sh
GUI β€” window with Scan / Backup buttons START_GUI_WINDOWS.bat bash START_GUI_MAC_LINUX.sh

Windows

Double-click  β†’  START_WINDOWS.bat        (CLI)
             β†’  START_GUI_WINDOWS.bat     (GUI)

macOS / Linux

bash START_MAC_LINUX.sh        # CLI
bash START_GUI_MAC_LINUX.sh    # GUI

That's genuinely it. On first run, the tool will:

  1. πŸ“¦ Create a self-contained Python virtual environment
  2. πŸ“₯ Install all dependencies automatically
  3. 🌐 Install a Playwright Chromium browser
  4. πŸ” Open a browser window β€” log in to Suno as normal
  5. πŸ” Scan your entire library (three-phase: API + DOM + batch enrichment)
  6. πŸ“Š Export a full CSV index of every song
  7. ⬇️ Download everything, skipping files already on disk

πŸ“¦ Creating Standalone Executables

If you'd rather run the app without touching Python files or launchers at all, you can build a native .exe or executable for your platform.

Simply run the included build scripts (ensure you have Python installed first):

  • Windows: Run build_windows.bat
  • macOS / Linux: Run bash build_mac_linux.sh

This uses PyInstaller to bundle the app. Once finished, check the dist/ folder for your standalone Suno Backup application!


πŸ–₯️ GUI Preview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β™ͺ SUNO  BACKUP  β€” archive your music library    v2.0  ●    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  OUTPUT FOLDER       β”‚  Songs: 312 / 847            64%     β”‚
β”‚  ~/suno_library  […] β”‚  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘        β”‚
β”‚                      β”‚                                       β”‚
β”‚  DOWNLOAD            β”‚  🎡 MP3   🎼 WAV   🎬 WEBM   πŸ–Ό ART  β”‚
β”‚  βœ“ MP3 audio         β”‚   312     298      241        312     β”‚
β”‚  βœ“ WAV audio   PRO   β”‚                                       β”‚
β”‚  βœ“ WEBM video  PRO   β”‚  Activity Log                         β”‚
β”‚  βœ“ Cover art         β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  βœ“ Metadata JSON     β”‚  β”‚ β™ͺ Midnight Frequency           β”‚   β”‚
β”‚                      β”‚  β”‚   β†’ WAV (convert + download)  β”‚   β”‚
β”‚  WAV DELAY           β”‚  β”‚   βœ“ Cover art (JPEG)          β”‚   β”‚
β”‚  min 4  –  max 8     β”‚  β”‚   β†’ MP3...                    β”‚   β”‚
β”‚                      β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚  β‘  Scan Library      β”‚                                       β”‚
β”‚  β‘‘ Start Backup      β”‚                                       β”‚
β”‚  ⏹  Stop             β”‚                                       β”‚
β”‚  βœ•  Clear Vault      β”‚                                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  RUNNING    Downloading song 312 of 847              v2.0   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ—‚οΈ Output Structure

Your library lands organized and clean:

suno_library/
β”œβ”€β”€ suno_library.csv          ← your full library in a spreadsheet
β”œβ”€β”€ song_ids.txt              ← plain list of every discovered ID
β”‚
β”œβ”€β”€ Midnight_Frequency__43b0804d/
β”‚   β”œβ”€β”€ metadata.json         ← prompt, tags, model, stats
β”‚   β”œβ”€β”€ image_43b0804d.jpeg   ← cover art
β”‚   β”œβ”€β”€ Midnight_Frequency.mp3
β”‚   β”œβ”€β”€ Midnight_Frequency.wav
β”‚   └── Midnight_Frequency.webm
β”‚
β”œβ”€β”€ Desert_Radio__8f2a1c9e/
β”‚   └── ...

Every song gets its own folder named Title__UUID β€” human-readable and collision-proof.


πŸ” How the Library Scanner Works

Most tools stop at the public API. This one doesn't.

Phase 1 β€” API feed pagination Walks through /api/feed/v2/ page by page until the list is exhausted. Gets everything Suno officially exposes.

Phase 2 β€” DOM scraping Opens your library in a headless browser and scans the raw HTML for UUID patterns: image_{id}.jpeg, {id}.webm, {id}.mp3, /song/{id} hrefs, and embedded JSON blobs. Catches songs the API misses.

Phase 3 β€” Batch enrichment Any IDs found only in the DOM β€” not in the API feed β€” get sent to /api/get_songs_by_ids in batches of 20 to pull their full metadata.

The result: a CSV with every song you've ever created, including ones buried beyond the API's default pagination.


πŸ”’ Security

Your login tokens never leave your machine.

Tokens are encrypted with Fernet (AES-128-CBC + HMAC-SHA256) and stored in a hidden .suno_vault file. The encryption key is derived from your machine's unique hardware fingerprint β€” hostname, MAC address, machine GUID, and a locally-generated random salt. The vault file is unreadable on any other machine, even if someone copies it.

Tokens auto-refresh before expiry so long backups don't suddenly fail mid-run.

your login  β†’  browser session  β†’  token captured  β†’  AES encrypted  β†’  .suno_vault
                                                          ↑
                                              machine fingerprint + random salt

βš™οΈ Configuration

Everything can be set via the GUI, or edited directly in config.py:

# Toggle what gets downloaded
DOWNLOAD_MP3   = True
DOWNLOAD_WAV   = True     # Pro subscribers
DOWNLOAD_VIDEO = True     # Pro subscribers
DOWNLOAD_ART   = True
DOWNLOAD_JSON  = True

# Human-like request timing (randomised to avoid bot detection)
RATE_LIMIT_WAV_MIN  = 4.0   # seconds between WAV conversions
RATE_LIMIT_WAV_MAX  = 8.0
RATE_LIMIT_PAGE_MIN = 1.5   # seconds between feed pages
RATE_LIMIT_PAGE_MAX = 3.5

πŸ§ͺ Running the Tests

# from the project root (inside venv)
python -m pytest tests/ -v

Covers: sanitize(), _flatten_song(), _extract_ids_from_html(), vault encryption/decryption, CSV export, and ID deduplication.


πŸ› οΈ Troubleshooting

Problem Fix
Python not found Install Python 3.9+ β€” check "Add to PATH" on Windows
Login window doesn't appear Run python setup_and_run.py directly from a terminal
WAV fails for specific songs Some songs aren't WAV-eligible; the tool logs it and continues
Auth error mid-backup Re-run β€” already-downloaded files are automatically skipped
Vault decryption error Delete .suno_vault and .vault_salt, then re-run to re-authenticate
CSV is empty Confirm you're logged into the correct Suno account
Rate limited Increase RATE_LIMIT_*_MIN/MAX values in config.py
GUI doesn't open / window closes right away If the GUI fails to start, the launcher will keep the window open so you can read the error. Run python setup_and_run.py --gui from a terminal to see the full traceback.

πŸ“ Project Layout

suno_backup_v2/
β”œβ”€β”€ setup_and_run.py       one-click launcher & venv bootstrapper
β”œβ”€β”€ suno_backup.py         download orchestrator
β”œβ”€β”€ scanner.py             3-phase library scanner + CSV exporter
β”œβ”€β”€ vault.py               AES-encrypted token storage
β”œβ”€β”€ config.py              all constants β€” single source of truth
β”œβ”€β”€ gui.py                 desktop GUI (tkinter, no extra deps)
β”œβ”€β”€ requirements.txt
β”‚
β”œβ”€β”€ tests/
β”‚   └── test_core.py       unit tests (pytest)
β”‚
β”œβ”€β”€ START_WINDOWS.bat           β†’ CLI mode, Windows
β”œβ”€β”€ START_MAC_LINUX.sh          β†’ CLI mode, macOS/Linux
β”œβ”€β”€ START_GUI_WINDOWS.bat       β†’ GUI mode, Windows
└── START_GUI_MAC_LINUX.sh      β†’ GUI mode, macOS/Linux

πŸ“‹ Requirements

Auto-installed on first run. Nothing to do manually.

playwright >= 1.40    browser automation & token capture
requests   >= 2.31    HTTP downloads
tqdm       >= 4.66    progress bars
cryptography >= 41.0  vault encryption


Enjoying the tool?
Buy Me A Coffee



Made for Suno creators who want to own their music. 🎢

This software is an independent, third-party tool and is not affiliated with, endorsed by, or sponsored by Suno, Inc. "Suno" and all related names, logos, and content are the trademarks and exclusive property of Suno, Inc. Users of this tool are solely responsible for ensuring their use complies with Suno's Terms of Service.

About

The only app you will need to backup your Suno library (including WAV files for PRO subscribers) on your local device.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors