Transformez n'importe quelle vidéo paysage en clips TikTok viraux, sous-titrés et recadrés par IA en quelques secondes.
Pourquoi avoir construit cet outil ?
La création de contenu "short-form" demande une régularité extrême, mais le montage technique (sous-titrage karaoké, recadrage dynamique) est une tâche répétitive et chronophage.
J'ai développé TikTokGenerator pour résoudre ce problème de scalabilité : l'objectif était de concevoir un "monteur virtuel" capable de prendre des décisions intelligentes (suivi de visage, timing audio) sans aucune intervention humaine. Ce projet démontre comment l'IA peut transformer un workflow créatif manuel en un pipeline industriel automatisé.
TikTokGenerator est un pipeline de traitement vidéo automatisé conçu pour la création de contenu à grande échelle. Il orchestre des bibliothèques de Vision par Ordinateur et de Traitement du Langage Naturel via une interface Streamlit réactive. L'architecture suit une approche événementielle où le traitement vidéo lourd (téléchargement, analyse, montage) est géré de manière asynchrone pour ne pas bloquer l'interface utilisateur.
- 🎯 Smart Crop (Recadrage Intelligent) : Utilise YuNet (OpenCV) pour scanner la vidéo et déterminer dynamiquement la zone d'intérêt, transformant automatiquement le format 16:9 (YouTube) en 9:16 (TikTok) sans couper le sujet.
- 🗣️ Sous-titres style "CapCut" : Intègre faster-whisper pour transcrire l'audio avec des timestamps mot à mot, puis affiche 1 à 3 mots à la fois en Montserrat ExtraBold (police embarquée), majuscules, avec le mot actif en jaune et un effet "pop" — le style qui maximise la rétention. La transcription tourne en parallèle de l'analyse vidéo.
- ✂️ Coupes alignées sur les phrases : Les clips (≤ 61 s) se terminent sur des fins de phrases détectées par Whisper — plus de coupe en plein mot. Coupes exactes garanties par des keyframes forcées à l'encodage.
- 🧠 Sélection des meilleurs moments (optionnel) : Si
ANTHROPIC_API_KEYest défini, l'API Claude analyse le transcript pour sélectionner les passages les plus viraux et générer un hook, une description SEO et des hashtags par clip. Sinon, découpage séquentiel aligné sur les phrases. - 📈 Optimisé pour l'algorithme TikTok : hook incrusté pendant les 3 premières secondes de chaque clip, barre de progression animée en bas de vidéo, image légèrement saturée/affûtée, audio normalisé à -14 LUFS (standard TikTok).
- 🌐 Sources Flexibles : Téléchargement via yt-dlp (URL YouTube) ou upload de fichiers locaux (MP4, MKV, MOV).
| Catégorie | Technologies |
|---|---|
| Frontend / UI | Streamlit + PyWebView (application de bureau native) |
| Backend / Core | Python, Asyncio |
| AI & Vision | YuNet (OpenCV, détection de visages), faster-whisper (ASR, timestamps mot à mot), API Claude (sélection des moments, optionnel) |
| Traitement Vidéo | OpenCV, FFmpeg (via subprocess), yt-dlp |
| Sous-titres | PySubs2 (ASS karaoké) |
- Python 3.10+
- FFmpeg installé et accessible dans le PATH système.
- Linux : dépendances GTK pour pywebview (
sudo apt install python3-gi gir1.2-webkit2-4.1) ou variante Qt (pip install pywebview[qt]). - Windows : runtime WebView2 (préinstallé sur Windows 10/11 récents).
- Optionnel :
export ANTHROPIC_API_KEY=sk-ant-…pour activer la sélection des meilleurs moments et la génération de métadonnées par clip via l'API Claude.
# 1. Cloner le projet
git clone https://github.com/votre-username/TikTokGenerator.git
cd TikTokGenerator
# 2. Créer un environnement virtuel (recommandé)
python -m venv .venv
source .venv/bin/activate # Sur Windows: .venv\Scripts\activate
# 3. Installer les dépendances
pip install -r requirements.txt
# 4. Lancer l'application de bureau
python desktop.pyUne fenêtre native s'ouvre avec l'interface (le serveur Streamlit tourne en local et s'arrête automatiquement à la fermeture de la fenêtre).
Pour distribuer un exécutable autonome, utiliser PyInstaller sur la plateforme cible (un build par OS) :
pip install pyinstaller
pyinstaller --name TikTokGenerator --add-data "app.py:." desktop.pyL'un des plus grands défis techniques a été de convertir des vidéos horizontales en format vertical sans perdre l'information visuelle essentielle (le locuteur). Un recadrage central "bête" coupait souvent les visages si le sujet n'était pas parfaitement au centre.
J'ai implémenté un système de "Smart Crop" en deux passes :
- Analyse : Le script scanne la vidéo image par image (avec un pas d'échantillonnage) utilisant
MediaPipepour détecter les cadres englobants (bounding boxes) des visages. - Calcul de Marge : Il calcule les marges de sécurité minimales à gauche et à droite sur l'ensemble de la vidéo pour définir une fenêtre de recadrage fixe optimale qui garantit que le sujet reste dans le cadre 100% du temps.
- Fallback : Si la vidéo contient plusieurs sujets écartés ou aucun visage, l'algorithme bascule intelligemment sur un fond flouté ("Gaussian Blur background") pour préserver l'esthétique sans déformer l'image origine.
Projet réalisé par Lepretre Matys - 2025