Commit Graph

  • 6a55de3299 Perf: Optimiser builds backend avec image de base (90-95% plus rapide) main Benoit 2025-12-26 22:04:13 +01:00
  • f3f321511d Feature: Sélection multiple d'instruments dans les filtres Benoit 2025-12-26 20:10:39 +01:00
  • 34fcbe1223 Fix: Résoudre tous les conflits d'authentification Benoit 2025-12-26 19:26:01 +01:00
  • f05958ed36 J'ai : Nettoyé les logs de debug dans backend/src/core/auth.py - supprimé tous les logger.info/warning de la fonction authenticate_user Ajouté les tokens JWT à toutes les requêtes du player : frontend/components/AudioPlayer.tsx : Ajouté Authorization header à loadWaveform() frontend/components/AudioPlayer.tsx : Créé getAuthenticatedStreamUrl() qui ajoute le token en query param pour les <audio> et <a> tags backend/src/api/routes/audio.py : Ajouté support du token en query param pour /stream et /download (compatibilité avec les tags HTML qui ne supportent pas les headers) Le player devrait maintenant fonctionner entièrement avec l'authentification. Benoit 2025-12-26 17:46:39 +01:00
  • aa252487b8 Fix: Ajouter Authorization header aux requêtes fetch du scan Benoit 2025-12-26 17:42:54 +01:00
  • ed7034f55b Fix: Passer les variables d'auth au container backend Benoit 2025-12-26 17:39:44 +01:00
  • 0fbfb6f8ed Debug: Ajouter logs détaillés pour authentification Benoit 2025-12-26 17:20:58 +01:00
  • 16b3fdabed Ajout documentation dépendances + script de vérification Benoit 2025-12-26 13:03:17 +01:00
  • eeee538fcd Fix: Ajouter email-validator pour Pydantic EmailStr Benoit 2025-12-26 13:00:11 +01:00
  • c366ca5ce0 Include Essentia models in repo + optimize CI/CD Benoit 2025-12-26 10:11:03 +01:00
  • 774cb799a2 Ajout authentification JWT complète (app 100% protégée) Benoit 2025-12-26 10:05:36 +01:00
  • 6ae861ff54 Actualiser .gitea/workflows/docker.yml benoit 2025-12-26 00:15:54 +01:00
  • b74c6b0b40 Fix scan infini: exclure dossiers transcoded et waveforms Benoit 2025-12-26 00:08:13 +01:00
  • 4d8fa57ab2 Fix tous les appels API pour utiliser getApiUrl() au lieu de process.env Benoit 2025-12-24 10:54:38 +01:00
  • 36652ea2cc Fix API URL configuration pour production Benoit 2025-12-24 10:12:38 +01:00
  • 3b236d6af4 Merge pull request 'Fix localhost en prod' (#4) from prochains-changements into main benoit 2025-12-23 15:34:34 +01:00
  • 04603cd5e9 Fix localhost en prod prochains-changements Benoit 2025-12-23 15:33:52 +01:00
  • 64ba7f9006 Merge pull request 'Fix CORS' (#3) from prochains-changements into main benoit 2025-12-23 14:34:05 +01:00
  • cc2f1d0051 Fix CORS Benoit 2025-12-23 14:33:25 +01:00
  • 169a759b57 Fix Build backend Gitea Benoit 2025-12-23 13:27:50 +01:00
  • 88db8cc9c8 Fix build backend depuis Gitea Benoit 2025-12-23 13:27:33 +01:00
  • 3e225b158f Fix build et actions Benoit 2025-12-23 13:23:07 +01:00
  • 8ec8b1aa42 Merge branch 'main' of https://git.benoitsz.com/benoit/Audio-Classifier Benoit 2025-12-23 13:10:37 +01:00
  • e3d85f4775 Merge branch 'Backend' Merge Backend Benoit 2025-12-23 13:08:43 +01:00
  • df781fb605 Gros nettoyage Backend Benoit 2025-12-23 13:04:21 +01:00
  • 2a0d022e37 Fix Actions avec qwen Benoit 2025-12-23 12:10:51 +01:00
  • 5fb56a636f Fix Gitea Actions Benoit 2025-12-23 12:03:55 +01:00
  • 721f7b51f7 Ajouter .gitea/workflows/docker.yml benoit 2025-12-23 11:24:24 +01:00
  • 54086236c6 Merge pull request 'Backend' (#1) from Backend into main benoit 2025-12-23 10:58:10 +01:00
  • 1bb13c79d0 Build Docker Complètement Autonome - Terminé ! 🎯 Ce qui a été fait 1. Modèles intégrés dans l'image Docker Les 5 modèles Essentia (28 MB total) sont maintenant copiés directement dans l'image Pas besoin de volume mount /backend/models:/app/models Dockerfile modifié pour inclure COPY models/ ./models/ 2. Volume models supprimé du docker-compose Le docker-compose.yml ne monte plus le dossier models/ Seul le dossier audio est monté (pour accès aux fichiers) 3. Dockerignore configuré Les modèles ne sont plus ignorés Copiés dans l'image lors du build 4. Documentation complète DEPLOYMENT.md - Guide de déploiement complet README.md - Mise à jour avec instructions autonomes Script check-autonomous.sh - Vérification automatique 📦 Contenu de l'image Modèles Essentia inclus (28 MB) : Benoit 2025-12-23 10:34:32 +01:00
  • c91cf634b7 Fix scan qui échoue Benoit 2025-12-23 10:18:14 +01:00
  • 76d014bda2 Transcodage systématique MP3 128kbps J'ai implémenté une solution complète pour optimiser ton système audio : 1. Backend - Transcodage & Waveforms Nouveau module de transcodage (transcoder.py): Transcodage automatique en MP3 128kbps via FFmpeg Stockage dans dossier transcoded/ Compression ~70-90% selon format source Waveforms pré-calculées (waveform_generator.py): Génération lors du scan (800 points) Stockage JSON dans dossier waveforms/ Chargement instantané Schema BDD mis à jour (schema.py): filepath : fichier original (download) stream_filepath : MP3 128kbps (streaming) waveform_filepath : JSON pré-calculé Scanner amélioré (scanner.py): Transcode automatiquement chaque fichier Pré-calcule la waveform Stocke les 3 chemins en BDD 2. API - Endpoints Endpoint /api/library/scan (library.py): POST pour lancer un scan Tâche en arrière-plan Statut consultable via GET /api/library/scan/status Streaming optimisé (audio.py): Utilise stream_filepath (MP3 128kbps) en priorité Fallback sur fichier original si absent Waveform chargée depuis JSON pré-calculé 3. Frontend - Interface Bouton Rescan (page.tsx): Dans le header à droite Icône qui tourne pendant le scan Affichage progression en temps réel Reload automatique après scan 4. Base de données Migration appliquée (20251223_003_add_stream_waveform_paths.py): Benoit 2025-12-23 10:08:16 +01:00
  • 7ce2b70a8c Refacto UX Benoit 2025-12-23 09:40:14 +01:00
  • e567a2c5ab Player full fonctionnel ! Benoit 2025-12-23 09:27:01 +01:00
  • 051d0431ce WIP Player waveform ok, autoplay, download Benoit 2025-12-23 09:04:27 +01:00
  • 359c8ccccc WIP Player Benoit 2025-12-23 08:46:33 +01:00
  • 6c47f0760e Frontend : filtres Benoit 2025-12-22 15:53:26 +01:00
  • b0ba1e886c Amélioration affichage genre : 'Pop---Rock' -> 'Pop' ; 'Rock' Benoit 2025-12-22 15:12:14 +01:00
  • d67d5ecadd Remplacement modèle classification par genre Benoit 2025-12-22 14:29:05 +01:00
  • 90c841310c Fix bequcoup de choses : Genre OK, affichage des infos sur le front Benoit 2025-12-22 13:26:55 +01:00
  • dec30019e2 WIP essentia Benoit 2025-12-22 12:59:20 +01:00
  • 83de840672 Fix Python 3.8 compatibility: use Tuple instead of tuple in type hints Benoit 2025-12-06 23:03:48 +01:00
  • ee93b7cafc Remove debug from frontend Dockerfile Benoit 2025-12-06 22:50:12 +01:00
  • a3fe671c84 Add Docker config files and updated todo Benoit 2025-12-06 22:49:57 +01:00
  • b923bb44cc Fix frontend build: add lib/ to git and update Docker config Benoit 2025-12-06 22:49:48 +01:00
  • a58c7f284f Bug build Benoit 2025-12-06 22:44:12 +01:00
  • 13b34857ea todo updated Benoit 2025-12-06 22:27:49 +01:00
  • eb5ec75626 Dockerisation de tout Benoit 2025-12-06 22:22:13 +01:00
  • fbc9d4822b Fix scanner to use AudioTrack model with correct column names Benoit 2025-12-03 00:08:03 +01:00
  • 4f5f68da09 WIP Benoit 2025-12-02 23:58:29 +01:00
  • d56fc376a5 Fix dependencies for Python 3.8 compatibility Benoit 2025-12-02 23:57:36 +01:00
  • 75ff92f62f Add CLI scanner tool for audio library Benoit 2025-12-02 23:52:47 +01:00
  • d5fda46eed Switch to Python 3.8 for Essentia compatibility Benoit 2025-12-02 23:33:21 +01:00
  • 92d1024195 Add alembic.ini to repository (required for Docker build) Benoit 2025-12-02 23:11:52 +01:00
  • 6113da3fbf Fix SSL certificate issue when downloading Essentia models Benoit 2025-12-02 23:06:49 +01:00
  • e863f61103 Add server deployment support with Essentia Benoit 2025-12-02 23:04:29 +01:00
  • 063d43fcdf Build OK Benoit 2025-11-27 17:58:58 +01:00
  • 679e179edc Fix build Benoit 2025-11-27 17:43:52 +01:00
  • 95194eadfc initial commit Ce qui a été implémenté Backend Python (FastAPI) Architecture complète avec FastAPI Extraction de features audio avec Librosa (tempo, key, spectral features, energy, danceability, valence) Classification intelligente avec Essentia (genre, mood, instruments) Base de données PostgreSQL + pgvector (prête pour embeddings) API REST complète (tracks, search, similar, analyze, audio streaming/download) Génération de waveform pour visualisation Scanner de dossiers avec analyse parallèle Jobs d'analyse en arrière-plan Migrations Alembic Frontend Next.js 14 Interface utilisateur moderne avec TailwindCSS Client API TypeScript complet Page principale avec liste des pistes Statistiques globales Recherche et filtres Streaming et téléchargement audio Pagination Infrastructure Docker Compose (PostgreSQL + Backend) Script de téléchargement des modèles Essentia Variables d'environnement configurables Documentation complète 📁 Structure Finale Audio Classifier/ ├── backend/ │ ├── src/ │ │ ├── core/ # Audio processing │ │ ├── models/ # Database models │ │ ├── api/ # FastAPI routes │ │ └── utils/ # Config, logging │ ├── models/ # Essentia .pb files │ ├── requirements.txt │ ├── Dockerfile │ └── alembic.ini ├── frontend/ │ ├── app/ # Next.js pages │ ├── components/ # React components │ ├── lib/ # API client, types │ └── package.json ├── scripts/ │ └── download-essentia-models.sh ├── docker-compose.yml ├── README.md ├── SETUP.md # Guide détaillé ├── QUICKSTART.md # Démarrage rapide └── .claude-todo.md # Documentation technique 🚀 Pour Démarrer 3 commandes suffisent : # 1. Télécharger modèles IA ./scripts/download-essentia-models.sh Benoit 2025-11-27 13:54:34 +01:00