Studio de production de contenus éducatifs assisté par IA
A l'ère des formats courts et de l'économie de l'attention, la culture générale est souvent soit trop scolaire, soit trop superficielle. Sapiens Studio se positionne à l'intersection entre apprentissage intelligent, storytelling et création de contenu automatisée.
Le constat de départ : produire une vidéo éducative de qualité (script, voix off, visuels, montage) prend des heures de travail manuel et nécessite plusieurs outils disjoints. L'objectif était de créer un pipeline de production bout-en-bout où chaque étape est assistée par l'IA, tout en conservant un contrôle éditorial humain à chaque phase.
Saisie libre + choix du modèle IA et du style de prompt
Génération par Claude/GPT, éditable manuellement
TTS multi-voix (OpenAI ou Qwen3 local)
Images Stable Diffusion + clips FramePack/Sora
Assemblage FFmpeg avec sous-titres
| Couche | Technologie | Rôle |
|---|---|---|
| Framework | Next.js 16 (App Router) | Full-stack TypeScript, SSR, API Routes |
| Frontend | React 19 + Tailwind CSS v4 | UI réactive, dark mode |
| BDD | SQLite (better-sqlite3) | WAL mode, FTS5, migrations versionnées |
| Validation | Zod v4 | Schémas sur toutes les routes API |
| IA Texte | Anthropic Claude + OpenAI GPT | Génération de contenu éducatif |
| TTS | OpenAI TTS + Qwen3-TTS (local) | Narration audio multi-provider |
| Images | Stable Diffusion (local GPU) | Via API Gradio |
| Vidéo | FramePack I2V + Sora | Image-to-Video local + API cloud |
| Assemblage | FFmpeg (fluent-ffmpeg) | Concaténation, merge audio/video |
| Tests | Vitest 4 | 250 tests unitaires, 10 suites |
| CI/CD | GitHub Actions | Lint + TypeCheck + Tests + Build |
src/
├── app/ # Next.js App Router
│ ├── api/ # 27 routes API REST
│ │ ├── generate-fiche/ # Génération de texte IA
│ │ ├── generate-audio/ # TTS OpenAI
│ │ ├── qwen-tts/ # TTS Qwen3 local
│ │ ├── generate-scenes/ # Découpage scènes par Claude
│ │ ├── generate-images/ # Stable Diffusion
│ │ ├── generate-clips/ # FramePack / Sora
│ │ ├── assemble-video/ # FFmpeg assemblage
│ │ └── job-stream/ # SSE temps réel
│ ├── studio/ # Page principale
│ ├── fiches/ # Bibliothèque + détail
│ └── login/ # Authentification
├── components/ # 19 composants React
│ └── video-studio/ # 9 sous-composants Video Studio
├── lib/ # 41 modules métier
│ ├── video/ # 7 modules
│ ├── tts/ # 5 modules
│ ├── migrations/ # Système de migration DB
│ └── validators/ # Schémas Zod
└── middleware.ts # Auth HMAC + CSRF
Approche itérative "make it work, make it right" avec 3 rounds de refactoring :
VideoStudio.tsx (2028 lignes → 9 sous-composants + Context React)video.ts (1527 lignes → 7 modules)fs.*Sync par fs.promises.*console.log par un logger structuréCe projet illustre ma capacité à transformer des briques d'IA génératives distinctes en un produit utilisable avec une vraie logique éditoriale. Ici, le défi n'était pas d'intégrer un seul modèle, mais d'orchestrer plusieurs providers (texte, voix, images, vidéo) en maintenant le contrôle humain à chaque étape.
C'est un exercice de solution design et d'ingénierie de workflow IA : définir les étapes, choisir les bons outils pour chaque besoin, gérer les jobs asynchrones, offrir un retour temps réel et garantir la cohérence du produit final. Le tout avec une architecture testée, documentée et industrialisable.