Application modulaire complète pour naviguer, écouter et télécharger vos projets Suno.
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
- Python 3.8+ requis
- TΓ©lΓ©charger sur https://python.org
cd suno_app
pip install -r requirements.txt- Va sur https://suno.com (connectΓ©)
- 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!')})();- Clique sur le bookmarklet β tΓ©lΓ©charge
suno_cookies.json - Place-le dans le dossier
suno_app/
CrΓ©e suno_cookies.json :
{
"jwt_token": "TON_TOKEN_JWT_ICI",
"device_id": "TON_DEVICE_ID_ICI",
"exported_at": "2026-02-01T12:00:00Z"
}python main.pyββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π΅ 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) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
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
- Double-clic sur clip β Overlay paroles
- Clic sur checkbox β Cocher/dΓ©cocher
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'outilsprojects_panel.py: TreeView projetsclips_panel.py: TreeView clips + checkboxes
widgets/ β Composants rΓ©utilisables
player.py: Player audio overlaylyrics_overlay.py: Popup paroleslog_viewer.py: Zone de logs
utils/ β Fonctions utilitaires
formatters.py: format_date(), format_duration(), etc.threading_helper.py: run_in_thread() pour GUI-safe
β
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
β Token expirΓ© (durΓ©e : 1h)
β Solution : Clique sur π ou exporte de nouveaux cookies
β Le fichier doit Γͺtre dans le dossier suno_app/
β Le nom doit Γͺtre exactement suno_cookies.json
β Lance depuis le dossier suno_app/ : python main.py
β Pas python suno_app/main.py
- 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
Projet personnel - Utilisez Γ vos risques et pΓ©rils
Créé avec β€οΈ pour Denis