Pipeline qui génère et publie automatiquement des Shorts YouTube (anecdotes/faits) 100% gratuit : Groq (script, gpt-oss-120b), Piper (voix, local), faster-whisper (sous-titres karaoke, local), Pexels (visuels), ffmpeg (montage), API YouTube Data v3 (upload).
./scripts/setup_vps.sh
cp .env.example .env # puis renseigner PEXELS_API_KEY (pexels.com/api) et GROQ_API_KEY (console.groq.com), les deux gratuitsAuth YouTube (une seule fois) :
ssh -L 8080:localhost:8080 ubuntu@<ip-vps> # depuis ton poste, dans un autre terminal
./venv/bin/python scripts/setup_youtube_auth.py # sur le VPS, dans la session tunneléeOuvre l'URL affichée dans ton navigateur, connecte-toi avec le compte Google
du channel. token.json est généré et sera rafraîchi automatiquement ensuite.
Installer le cron (fréquence lue depuis config/settings.yaml: schedule.videos_per_day) :
./scripts/install_cron.sh# génère une vidéo complète sans l'uploader, pour valider la qualité
./venv/bin/python orchestrator.py --dry-run
# génère et publie
./venv/bin/python orchestrator.pyLes logs sont dans logs/YYYY-MM-DD.log, l'historique des sujets/vidéos dans
state/history.sqlite3.
- Copier tout le dossier
shorts/(ou faire un nouveau checkout du repo) - Créer
config/prompts/<nouveau_theme>.txtavec les instructions du nouveau thème - Mettre
theme: <nouveau_theme>dansconfig/settings.yaml - Remplacer
Client Secret Le Sais-Tu.jsonpar le secret OAuth du nouveau channel, mettre à jouryoutube.client_secret_filedansconfig/settings.yaml - Relancer
scripts/setup_youtube_auth.pypour ce nouveau channel
Tous les modules (modules/) sont génériques et ne changent pas.
Ajouter modules/tiktok_uploader.py (ou instagram_uploader.py) avec une
fonction upload(video_path, metadata, ...) -> str suivant l'interface de
youtube_uploader.py, puis appeler ce module depuis orchestrator.py en
fonction de la liste platforms de config/settings.yaml.