Skip to content

soaresden/SunoPlayerDownloader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎡 Suno Downloader v2.0

image

Application modulaire complète pour naviguer, écouter et télécharger vos projets Suno.

πŸ“ Structure du projet

suno_app/
β”œβ”€β”€ main.py                    # ▢️ Point d'entrΓ©e - Lance l'app
β”œβ”€β”€ config.py                  # βš™οΈ Configuration globale
β”œβ”€β”€ requirements.txt           # πŸ“¦ DΓ©pendances Python
β”œβ”€β”€ suno_cookies.json          # πŸͺ Vos cookies (Γ  crΓ©er)
β”‚
β”œβ”€β”€ api/                       # πŸ”Œ Couche API
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ client.py              # Client API Suno (get_all_projects, etc.)
β”‚   └── auth.py                # Gestion authentification (AuthManager)
β”‚
β”œβ”€β”€ gui/                       # πŸ–ΌοΈ Interface graphique
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ main_window.py         # FenΓͺtre principale (orchestration)
β”‚   β”œβ”€β”€ toolbar.py             # Barre d'outils (boutons principaux)
β”‚   β”œβ”€β”€ projects_panel.py      # Panel gauche (liste projets)
β”‚   └── clips_panel.py         # Panel droit (liste clips + checkboxes)
β”‚
β”œβ”€β”€ widgets/                   # 🧩 Composants rΓ©utilisables
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ player.py              # Player audio (overlay)
β”‚   β”œβ”€β”€ lyrics_overlay.py      # Overlay paroles (double-clic)
β”‚   └── log_viewer.py          # Zone de logs
β”‚
└── utils/                     # πŸ› οΈ Utilitaires
    β”œβ”€β”€ __init__.py
    β”œβ”€β”€ formatters.py          # Formatage (dates, durΓ©es, tailles)
    └── threading_helper.py    # Helpers threading GUI-safe

πŸš€ Installation

1. Installer Python

2. Installer les dΓ©pendances

cd suno_app
pip install -r requirements.txt

3. CrΓ©er suno_cookies.json

Option A : Bookmarklet (recommandΓ©)

  1. Va sur https://suno.com (connectΓ©)
  2. CrΓ©e un bookmarklet avec ce code :
javascript:(function(){const cookies={};document.cookie.split(';').forEach(c=>{const[name,value]=c.trim().split('=');cookies[name]=value});const jwt=cookies['__session']||'';const deviceId=cookies['suno_device_id']||cookies['ajs_anonymous_id']||'8f955be9-40b8-496e-9a05-c12b86abd5f8';const data={jwt_token:jwt,device_id:deviceId,exported_at:new Date().toISOString()};const blob=new Blob([JSON.stringify(data,null,2)],{type:'application/json'});const url=URL.createObjectURL(blob);const a=document.createElement('a');a.href=url;a.download='suno_cookies.json';document.body.appendChild(a);a.click();document.body.removeChild(a);URL.revokeObjectURL(url);alert('βœ… Cookies exportΓ©s!')})();
  1. Clique sur le bookmarklet β†’ tΓ©lΓ©charge suno_cookies.json
  2. Place-le dans le dossier suno_app/

Option B : Manuel

CrΓ©e suno_cookies.json :

{
  "jwt_token": "TON_TOKEN_JWT_ICI",
  "device_id": "TON_DEVICE_ID_ICI",
  "exported_at": "2026-02-01T12:00:00Z"
}

4. Lancer l'application

python main.py

πŸ“– Utilisation

Interface

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ 🎡 SUNO    [πŸ”„] [πŸ“ COOKIES] [▢️ PLAYER]         🟒       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ“ PROJETS (137)         β”‚ 🎡 CLIPS - Mon Projet          β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ [⬇️ TOUT] [⬇️ COCHΓ‰S] [▢️ PLAY]β”‚
β”‚ β”‚Workspace  β”‚#β”‚Créé│MΓ€Jβ”‚β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”β”‚
β”‚ β”‚My Project β”‚5β”‚... β”‚...β”‚β”‚ β”‚Pβ”‚Créé│Titreβ”‚Styleβ”‚β±β”‚πŸŽ΅β”‚β¬‡οΈβ”‚    β”‚β”‚
β”‚ β”‚Outlaws    β”‚30β”‚...β”‚...β”‚β”‚ β”‚πŸ“Œβ”‚...β”‚...  β”‚...  β”‚3:β”‚βœ“β”‚  β”‚    β”‚β”‚
β”‚ β”‚...        β”‚  β”‚   β”‚   β”‚β”‚ β”‚  β”‚   β”‚     β”‚     β”‚42β”‚  β”‚βœ“β”‚    β”‚β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ πŸ“ Logs                                                     β”‚
β”‚ βœ… 137 projets chargΓ©s                                     β”‚
β”‚ πŸ“ Projet sΓ©lectionnΓ©: My Project                          β”‚
β”‚ βœ… 5 clips (2 pinned)                                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Actions principales

Navigation :

  • Clic sur projet β†’ Affiche ses clips
  • Double-clic sur clip β†’ Affiche les paroles
  • Clic sur header β†’ Tri la colonne

Checkboxes :

  • 🎡 : Ajouter Γ  la playlist
  • ⬇️ : Marquer pour tΓ©lΓ©chargement

Boutons :

  • ⬇️ TOUT : TΓ©lΓ©charge tout le projet
  • ⬇️ COCHΓ‰S : TΓ©lΓ©charge les clips cochΓ©s (⬇️)
  • ▢️ PLAYLIST : Joue les clips de la playlist (🎡)
  • ▢️ PLAYER : Ouvre le player audio

Toolbar :

  • πŸ”„ : Recharge les cookies (si token expirΓ©)
  • πŸ“ COOKIES : Charge un nouveau fichier
  • ▢️ PLAYER : Ouvre le player

Raccourcis

  • Double-clic sur clip β†’ Overlay paroles
  • Clic sur checkbox β†’ Cocher/dΓ©cocher

πŸ”§ Architecture

SΓ©paration des responsabilitΓ©s

api/ β†’ Communication avec Suno (aucune GUI)

  • client.py : Appels API (get_all_projects, get_project_clips, download_clip)
  • auth.py : Gestion cookies/tokens (AuthManager)

gui/ β†’ Interface graphique (aucune logique mΓ©tier)

  • main_window.py : Orchestration (charge projets, gΓ¨re sΓ©lections)
  • toolbar.py : Barre d'outils
  • projects_panel.py : TreeView projets
  • clips_panel.py : TreeView clips + checkboxes

widgets/ β†’ Composants rΓ©utilisables

  • player.py : Player audio overlay
  • lyrics_overlay.py : Popup paroles
  • log_viewer.py : Zone de logs

utils/ β†’ Fonctions utilitaires

  • formatters.py : format_date(), format_duration(), etc.
  • threading_helper.py : run_in_thread() pour GUI-safe

Avantages

βœ… Modulaire : Chaque fichier < 250 lignes
βœ… Maintenable : Bugs faciles Γ  localiser
βœ… Testable : Chaque module testable indΓ©pendamment
βœ… Extensible : Facile d'ajouter de nouvelles fonctionnalitΓ©s
βœ… RΓ©utilisable : Les widgets peuvent servir ailleurs

πŸ› DΓ©pannage

Erreur 401 Unauthorized

β†’ Token expirΓ© (durΓ©e : 1h)
β†’ Solution : Clique sur πŸ”„ ou exporte de nouveaux cookies

Fichier cookies introuvable

β†’ Le fichier doit Γͺtre dans le dossier suno_app/
β†’ Le nom doit Γͺtre exactement suno_cookies.json

Module introuvable

β†’ Lance depuis le dossier suno_app/ : python main.py
β†’ Pas python suno_app/main.py

πŸ“ TODO

  • ImplΓ©menter lecture audio (player)
  • ImplΓ©menter tΓ©lΓ©chargement batch
  • Ajouter barre de progression tΓ©lΓ©chargement
  • Export playlist M3U
  • Recherche/filtre dans les clips
  • ThΓ¨mes de couleur

πŸ“„ Licence

Projet personnel - Utilisez Γ  vos risques et pΓ©rils

πŸ‘¨β€πŸ’» Auteur

Créé avec ❀️ pour Denis

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages