129 lines
4.3 KiB
Markdown
129 lines
4.3 KiB
Markdown
# Video to MP3 Transcriptor - Instructions pour Claude
|
|
|
|
## À propos du projet
|
|
Ce projet est une API Node.js/Express pour télécharger des vidéos YouTube en MP3, les transcrire, les traduire et les résumer.
|
|
|
|
## Documentation
|
|
|
|
### Documentation API
|
|
La documentation complète de l'API se trouve dans **`docs/API.md`**.
|
|
|
|
**IMPORTANT** : Cette documentation doit TOUJOURS être maintenue à jour. Chaque fois qu'un endpoint est modifié, ajouté ou supprimé, la documentation doit être mise à jour en conséquence.
|
|
|
|
### Responsabilités de maintenance de la documentation
|
|
|
|
Quand tu modifies le code, tu DOIS mettre à jour `docs/API.md` si :
|
|
- Un nouvel endpoint est ajouté
|
|
- Un endpoint existant est modifié (paramètres, réponses, etc.)
|
|
- Un endpoint est supprimé
|
|
- Les modèles par défaut changent
|
|
- De nouveaux paramètres sont ajoutés
|
|
- Le format des réponses change
|
|
|
|
## Structure du projet
|
|
|
|
```
|
|
videotoMP3Transcriptor/
|
|
├── docs/
|
|
│ └── API.md # Documentation complète de l'API
|
|
├── src/
|
|
│ ├── server.js # Serveur Express et routes API
|
|
│ ├── services/
|
|
│ │ ├── youtube.js # Téléchargement YouTube
|
|
│ │ ├── transcription.js # Transcription OpenAI
|
|
│ │ ├── translation.js # Traduction GPT
|
|
│ │ └── summarize.js # Résumé GPT-5.1
|
|
│ └── cli.js # Interface en ligne de commande
|
|
├── public/ # Interface web (si présente)
|
|
├── output/ # Répertoire de sortie par défaut
|
|
├── .env # Variables d'environnement
|
|
└── package.json
|
|
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Port du serveur
|
|
- Port par défaut : **8888**
|
|
- Configurable via `process.env.PORT` dans `.env`
|
|
|
|
### Modèles par défaut
|
|
- **Transcription** : `gpt-4o-mini-transcribe`
|
|
- **Résumé** : `gpt-5.1`
|
|
- **Traduction** : `gpt-4o-mini` (hardcodé)
|
|
|
|
### Variables d'environnement requises
|
|
```env
|
|
OPENAI_API_KEY=sk-...
|
|
PORT=8888 # optionnel
|
|
OUTPUT_DIR=./output # optionnel
|
|
```
|
|
|
|
## Commandes importantes
|
|
|
|
```bash
|
|
# Lancer le serveur
|
|
npm run server
|
|
|
|
# Lancer le CLI
|
|
npm run cli
|
|
|
|
# Installer les dépendances
|
|
npm install
|
|
```
|
|
|
|
## Points d'attention
|
|
|
|
### Paramètres outputPath
|
|
Tous les endpoints supportent maintenant un paramètre `outputPath` optionnel pour spécifier un répertoire de sortie personnalisé. Si non spécifié, le répertoire par défaut `OUTPUT_DIR` est utilisé.
|
|
|
|
### Modèles de transcription disponibles
|
|
- `gpt-4o-mini-transcribe` (par défaut) - Rapide et économique
|
|
- `gpt-4o-transcribe` - Qualité supérieure
|
|
- `whisper-1` - Modèle original Whisper (supporte plus de formats)
|
|
|
|
### Formats de sortie
|
|
- **Transcription** : txt, json, srt, vtt (selon le modèle)
|
|
- **Traduction** : txt
|
|
- **Résumé** : txt
|
|
|
|
## Règles de développement
|
|
|
|
1. **Documentation d'abord** : Avant de modifier un endpoint, vérifie `docs/API.md`
|
|
2. **Après modification** : Mets à jour immédiatement `docs/API.md`
|
|
3. **Tests** : Redémarre le serveur après chaque modification
|
|
4. **Cohérence** : Garde la même structure de réponse pour tous les endpoints similaires
|
|
|
|
## Architecture des endpoints
|
|
|
|
### Endpoints streaming (SSE)
|
|
- `/download-stream`
|
|
- `/process-stream`
|
|
- `/summarize-stream`
|
|
|
|
Ces endpoints utilisent Server-Sent Events pour envoyer des mises à jour de progression en temps réel.
|
|
|
|
### Endpoints non-streaming
|
|
- `/download`
|
|
- `/process`
|
|
- Tous les endpoints POST avec upload de fichiers
|
|
|
|
Ces endpoints retournent une réponse unique une fois le traitement terminé.
|
|
|
|
## Maintenance
|
|
|
|
Lors de l'ajout de nouvelles fonctionnalités :
|
|
1. Implémente la fonctionnalité dans le service approprié (`src/services/`)
|
|
2. Ajoute les routes dans `src/server.js`
|
|
3. **Mets à jour `docs/API.md` IMMÉDIATEMENT**
|
|
4. Teste l'endpoint avec curl ou Postman
|
|
5. Vérifie que la documentation est claire et complète
|
|
|
|
## Notes importantes
|
|
|
|
- Le serveur doit toujours être sur le port **8888**
|
|
- Les clés API OpenAI sont requises pour transcription/traduction/résumé
|
|
- Le répertoire `output/` est créé automatiquement si inexistant
|
|
- Les fichiers uploadés sont stockés dans `OUTPUT_DIR`
|
|
- Les vidéos YouTube sont téléchargées en MP3 automatiquement
|