Commit Graph

  • 52175cdeab Fix filtres instruments main benoit 2026-01-27 23:35:41 +01:00
  • d2570b9228 Modif limite 10000 résultats benoit 2026-01-27 23:33:49 +01:00
  • 989d1c0546 Fix pas de résultats et erreur 500 benoit 2026-01-27 23:10:36 +01:00
  • ed010fa60f Fix #5 Fix #6 Fix #7 benoit 2026-01-27 22:43:32 +01:00
  • 6e1adf7422 Ajout favicon benoit 2026-01-14 23:49:27 +01:00
  • 6a55de3299 Perf: Optimiser builds backend avec image de base (90-95% plus rapide) benoitandClaude 2025-12-26 22:04:13 +01:00
  • f3f321511d Feature: Sélection multiple d'instruments dans les filtres benoitandClaude 2025-12-26 20:10:39 +01:00
  • 34fcbe1223 Fix: Résoudre tous les conflits d'authentification benoitandClaude 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 benoitandClaude 2025-12-26 17:42:54 +01:00
  • ed7034f55b Fix: Passer les variables d'auth au container backend benoitandClaude 2025-12-26 17:39:44 +01:00
  • 0fbfb6f8ed Debug: Ajouter logs détaillés pour authentification benoitandClaude 2025-12-26 17:20:58 +01:00
  • 16b3fdabed Ajout documentation dépendances + script de vérification benoitandClaude 2025-12-26 13:03:17 +01:00
  • eeee538fcd Fix: Ajouter email-validator pour Pydantic EmailStr benoitandClaude 2025-12-26 13:00:11 +01:00
  • c366ca5ce0 Include Essentia models in repo + optimize CI/CD benoitandClaude 2025-12-26 10:11:03 +01:00
  • 774cb799a2 Ajout authentification JWT complète (app 100% protégée) benoitandClaude 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 benoitandClaude 2025-12-26 00:08:13 +01:00
  • 4d8fa57ab2 Fix tous les appels API pour utiliser getApiUrl() au lieu de process.env benoitandClaude 2025-12-24 10:54:38 +01:00
  • 36652ea2cc Fix API URL configuration pour production benoitandClaude 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 benoitandClaude 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 benoitandClaude 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 benoitandClaude 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 benoitandClaude 2025-12-02 23:57:36 +01:00
  • 75ff92f62f Add CLI scanner tool for audio library benoitandClaude 2025-12-02 23:52:47 +01:00
  • d5fda46eed Switch to Python 3.8 for Essentia compatibility benoitandClaude 2025-12-02 23:33:21 +01:00
  • 92d1024195 Add alembic.ini to repository (required for Docker build) benoitandClaude 2025-12-02 23:11:52 +01:00
  • 6113da3fbf Fix SSL certificate issue when downloading Essentia models benoitandClaude 2025-12-02 23:06:49 +01:00
  • e863f61103 Add server deployment support with Essentia benoitandClaude 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