Une application web moderne pour télécharger des vidéos et audios YouTube avec une interface élégante et une progression en temps réel.
🎵 Téléchargement Audio
- Format MP3 haute qualité (192 kbps)
- Extraction audio pure depuis YouTube
- Noms de fichiers propres et organisés
🎬 Téléchargement Vidéo
- Multiples qualités disponibles (480p, 720p, 1080p, etc.)
- Fusion automatique vidéo + audio
- Qualité incluse dans le nom du fichier
⚡ Interface Moderne
- Design responsive avec Tailwind CSS
- Barre de progression en temps réel
- Messages de statut informatifs
- Animations fluides et interface intuitive
- Next.js 15 - Framework React moderne
- TypeScript - Typage statique
- Tailwind CSS - Framework CSS utilitaire
- React Hooks - Gestion d'état moderne
- Flask - Framework web Python minimaliste
- yt-dlp - Bibliothèque de téléchargement YouTube
- Flask-CORS - Gestion des requêtes cross-origin
- Threading - Téléchargements asynchrones
- Python 3.10+
- Node.js 18+
- npm ou yarn
cd backend
python -m venv venv
source venv/bin/activate # Windows: venv\\Scripts\\activate
pip install -r requirements.txt
python app.pycd frontend
npm install
npm run dev# backend/.env
FLASK_ENV=development
FRONTEND_URL=http://localhost:3000
# frontend/.env.local
NEXT_PUBLIC_API_URL=http://localhost:5001cd backend
python -m pytest test_app.py -vCoverage complète :
- ✅ 12 tests unitaires
- ✅ Tests d'intégration API
- ✅ Mocks pour yt-dlp
- ✅ Gestion d'erreur
cd frontend
npm run lint
npm run type-check
npm run buildyoutube-downloader/
├── 📁 frontend/ # Application Next.js
│ ├── src/app/ # Pages et composants
│ ├── public/ # Ressources statiques
│ └── package.json # Dépendances frontend
├── 📁 backend/ # API Flask
│ ├── app.py # Application principale
│ ├── test_app.py # Tests unitaires
│ └── requirements.txt # Dépendances Python
└── 📄 README.md # Ce fichier
- CORS configuré pour domaines autorisés uniquement
- Validation d'entrée sur toutes les routes API
- Gestion d'erreur complète sans exposition d'informations sensibles
- Nettoyage automatique des fichiers temporaires
- Rate limiting natif de Render/Vercel
- Téléchargement streaming : Pas de stockage serveur permanent
- Cleanup automatique : Mémoire et espace disque optimisés
- CDN global : Vercel Edge Network
- Mise en cache : Headers appropriés pour ressources statiques
- Support des playlists : Téléchargement ZIP de playlists complètes
- Authentification : Comptes utilisateur et historique
- Formats avancés : WebM, AV1, formats personnalisés
- Batch download : Téléchargement multiple simultané
- API publique : Documentation OpenAPI/Swagger
- Webhooks : Notifications de fin de téléchargement
- Analytics : Statistiques d'usage et métriques
- Mobile app : Application React Native
- IA Integration : Résumés automatiques, sous-titres
- Cloud Storage : Sauvegarde Google Drive, Dropbox
- Social Features : Partage, collections publiques
- Premium Features : Qualité 4K, téléchargements illimités
- Fork le projet
- Créer une branche feature (
git checkout -b feature/AmazingFeature) - Commiter les changements (
git commit -m 'Add AmazingFeature') - Pusher la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
- Suivre les conventions de code existantes
- Ajouter des tests pour les nouvelles fonctionnalités
- Mettre à jour la documentation si nécessaire
- S'assurer que tous les tests passent
- Issues GitHub : Créer un issue
- Email : christophecedricekobena@devekoc.com
Distribué sous licence GPL-2.0. Voir LICENSE pour plus d'informations.
- yt-dlp - Bibliothèque de téléchargement exceptionnelle
- Next.js - Framework React fantastique
- Tailwind CSS - Framework CSS moderne
- Flask - Simplicité et élégance Python
- Render & Vercel - Hébergement cloud excellent
Fait avec ❤️ par DevEkoc