# 🔍 Debugging Environment - START HERE ## Ce que nous savons ✅ **Python fonctionne** - Le script `test_qobuz.py` rĂ©ussit Ă  appeler `track_getFileUrl()` ❌ **Rust Ă©choue** - Erreur "Invalid Request Signature parameter (request_sig)" **Conclusion:** Le problĂšme est spĂ©cifique Ă  notre implĂ©mentation Rust. ## Prochaine Ă©tape: Comparer les requĂȘtes Nous allons comparer exactement ce que Python envoie vs ce que Rust envoie. ### Option 1: Guide dĂ©taillĂ© (recommandĂ©) Lisez [COMPARISON_GUIDE.md](COMPARISON_GUIDE.md) pour un guide Ă©tape par Ă©tape. ### Option 2: Script rapide Terminal 1: ```bash cd pmoqobuz/test_python_qobuz python3 fake_qobuz_server.py ``` Terminal 2: ```bash cd pmoqobuz/test_python_qobuz ./quick_compare.sh ``` ## Fichiers disponibles ### Scripts de test: - `test_qobuz.py` - Test complet contre l'API rĂ©elle (dĂ©jĂ  validĂ© ✅) - `test_getfileurl.py` - Test simplifiĂ© pour comparaison avec fake server - `fake_qobuz_server.py` - Serveur fake qui log toutes les requĂȘtes - `patch_for_fake.py` - Utilitaire pour rediriger vers fake server ### Guides: - `COMPARISON_GUIDE.md` - Guide dĂ©taillĂ© de comparaison - `INSTRUCTIONS.md` - Instructions gĂ©nĂ©rales - `README.md` - Documentation ### Scripts utilitaires: - `quick_compare.sh` - Script automatique de comparaison - `run_comparison.sh` - Alternative ## Ce qu'on cherche En comparant les requĂȘtes Python vs Rust pour `/track/getFileUrl`, on cherche: 1. **Format du timestamp** - Nombre de dĂ©cimales? 2. **Ordre des paramĂštres** - Affecte-t-il la signature? 3. **Headers** - Content-Type manquant? 4. **Encoding** - ProblĂšme d'encodage du form data? ## RĂ©sultat attendu AprĂšs comparaison, vous devriez identifier LA diffĂ©rence exacte qui cause l'Ă©chec de validation de signature cĂŽtĂ© Qobuz. Exemple de diffĂ©rence possible: ``` Python: request_ts=1734170123.456789 (6 dĂ©cimales) Rust: request_ts=1734170123.45678 (5 dĂ©cimales) ``` Cette petite diffĂ©rence suffirait Ă  invalider la signature MD5!