Ce n'est pas une théorie. Cette page documente un système qui tourne réellement chez moi : chaque nuit, une routine cherche l'actu, écrit l'édition du jour, et chaque matin un script rend une vidéo verticale de 45 à 60 secondes, la publie et la programme sur cinq réseaux. Personne n'appuie sur un bouton.
Le nom vient de là : une télé, mais version 3.0 — une chaîne d'info qui parle uniquement de tes sujets, avec ta voix, et qui sort son édition tous les jours sans toi. Ci-dessous : l'architecture réelle, la stack honnête (avec les coûts), les quatre bugs que j'ai déjà payés, et surtout le méga prompt à coller dans Claude Code pour te monter la tienne.
Un journal télévisé, c'est trois choses : une heure fixe, un format reconnaissable, et des sujets qui reviennent. C'est exactement ce qu'un algorithme social récompense — et exactement ce qu'un humain seul n'arrive pas à tenir plus de trois semaines.
La TÉLÉ 3.0 remplace la rédaction par une boucle qui tourne toute seule :
Le format n'a rien de magique : c'est de l'info sur un créneau et un angle. Chez moi c'est l'IA. Chez toi ça peut être la crypto, le foot local, le cinéma, l'immobilier de ta ville ou l'actu de ton métier. Plus le créneau est étroit, plus le rendez-vous quotidien tient.
Ce n'est pas la vidéo. C'est le rendez-vous. Une vidéo par jour, à la même heure, sur le même sujet, pendant 90 jours : c'est ça qui construit une audience. La machine sert juste à ce que le jour 47 ressemble au jour 1.
Personne ne monte ça gratuitement. Voilà exactement ce qui compose le système, à quoi ça sert, et ce que ça coûte au moment où j'écris.
| Brique | Rôle | Coût réel |
|---|---|---|
| Claude Code | L'agent qui pose les questions, fait la recherche web, écrit l'édition et orchestre tout le reste. C'est le cerveau. | Abonnement Claude (Pro ou Max selon ton volume). C'est le poste principal. |
| HyperFrames | Le moteur de rendu : il transforme une composition HTML/CSS animée en MP4. C'est lui qui fabrique l'image. | Licence / abonnement selon ton usage. |
| Voix clonée | La voix off. WaveSpeed (modèle qwen3-tts/voice-clone) ou ElevenLabs. Tu enregistres 30 s à 3 min une fois, tu ne réenregistres plus jamais. | Quelques centimes de TTS par vidéo (à l'usage). Chez ElevenLabs, un abonnement mensuel à partir de quelques euros. |
| Blotato | La publication programmée multi-réseaux (TikTok, Instagram, YouTube, Facebook, LinkedIn) et le gate commentaire → DM. | Abonnement mensuel + crédits de publication. |
| Un hébergement de prévisualisation | Une page web privée où la vidéo du jour atterrit pour que tu la valides depuis ton téléphone avant qu'elle parte. | Un petit VPS ou un hébergement statique. Quelques euros par mois. |
La moitié « usine » tourne sur ta machine (ou ton serveur). Il te faut :
fontconfig) — HyperFrames rend le HTML dans un navigateur headless. Sans configuration de polices correcte, le texte sort invisible et tu ne le vois qu'après 15 minutes de rendu.Une fois la machine posée, une édition quotidienne coûte quelques centimes de TTS plus l'amortissement des abonnements. Le vrai coût, c'est la mise en place : compte une bonne journée pour brancher les cinq briques, et deux ou trois éditions de rodage avant que ça sorte propre tout seul.
C'est le point qui fait échouer les débutants, alors je le mets en gras : l'agent qui cherche et l'usine qui rend ne tournent pas au même endroit.
journal/AAAA-MM-JJ.md et le pousse sur le dépôtUn environnement cloud d'agent n'a ni ffmpeg, ni moteur de rendu vidéo, ni accès à ton service de voix. Il peut écrire un script parfait — il ne peut pas fabriquer une seule seconde de MP4. À l'inverse, ta machine locale n'a pas forcément le droit ni l'envie de tourner à 3 h du matin pour fouiller le web.
Le débutant tente de tout faire faire à l'agent cloud, obtient un joli script, et se retrouve avec zéro vidéo. Ou pire : il laisse l'agent « faire semblant » et publier un texte à la place. La bonne architecture donne à chaque moitié ce qu'elle sait faire, et un fichier daté comme unique point de contact entre les deux.
Un seul artefact : journal/AAAA-MM-JJ.md. Le cloud l'écrit, le local le lit. Format stable, parsing déterministe, aucun LLM dans la moitié fabrication. C'est ce qui rend le rendu reproductible : le même fichier donne toujours la même vidéo.
C'est le cœur de cette page. Ce prompt est écrit pour être collé tel quel dans Claude Code, dans un dossier vide. Il ne produit rien avant de t'avoir interrogé : il commence par te poser une dizaine de questions sur tes goûts, ton ton, ta langue, tes réseaux et ton heure de publication. C'est ce qui fait que la chaîne obtenue est la tienne et pas une copie de la mienne.
Ensuite il installe les deux moitiés, impose la recherche web fraîche avec une source par info, produit la vidéo, publie, programme — et surtout il se protège : rien ne part si le rendu a échoué, et jamais deux éditions le même jour.
ROLE
Tu es l'architecte et l'opérateur de ma chaîne d'info vidéo quotidienne ("ma TELE 3.0").
Objectif final : chaque jour, sans intervention humaine, une video verticale 9:16 de 45 a 60
secondes qui resume l'actualite reelle de MES sujets, avec MA voix, publiee automatiquement
a MON heure sur MES reseaux.
Tu vas travailler en 6 phases. Ne saute aucune phase. Ne passe a la suivante qu'apres avoir
valide la precedente. Ne produis AUCUN contenu avant la fin de la PHASE 0.
================================================================
PHASE 0 - INTERVIEW (obligatoire, avant toute production)
================================================================
Pose-moi les questions suivantes, en une seule fois, numerotees, et ATTENDS mes reponses.
Si une reponse est vague, redemande une precision avant de continuer.
1. THEMATIQUES : quels sont les 1 a 3 sujets de ma chaine ? (ex : IA, crypto, sport,
cinema, immobilier local, business local, jeu video, sante...) Demande-moi aussi ce qui
m'interesse PRECISEMENT dans ce sujet, et ce qui m'ennuie profondement.
2. ANGLE : je parle a qui ? (debutants curieux / pros du secteur / investisseurs / ma ville)
3. TON : info serieuse et posee / punchy et cash / humour et second degre / pedagogique.
4. RUNNING GAG : est-ce que je veux une signature verbale qui revient a chaque edition ?
Si oui, propose-m'en 5 dans le ton choisi et laisse-moi trancher.
5. LANGUE et registre (tutoiement ou vouvoiement).
6. DUREE cible de la video (defaut : 50 secondes, plage 45-60).
7. NOM DE LA CHAINE + phrase d'ouverture datee (ex : "Le Journal Crypto, mardi 3 juin").
8. PLATEFORMES de publication (TikTok, Instagram Reels, YouTube Shorts, Facebook, LinkedIn)
et le compte associe pour chacune.
9. HEURE de publication quotidienne + fuseau horaire.
10. CTA : quel mot-cle je veux que les gens commentent, et qu'est-ce qu'ils recoivent en DM.
11. VOIX : ai-je deja un clone vocal (WaveSpeed / ElevenLabs) ? Si non, dis-moi exactement
quoi enregistrer (duree, texte type, conditions) pour en creer un.
12. LOOK : 3 mots pour la direction artistique + ma couleur d'accent (code hexa si je l'ai).
Quand j'ai repondu, ECRIS un fichier `config/chaine.json` qui fige toutes ces reponses
(thematiques, mots-cles de recherche derives, sources a privilegier, sources a bannir, ton,
duree, plateformes, heure, fuseau, CTA, voix, palette). Ce fichier est la source de verite :
tout le reste du systeme le lit. Puis resume-moi la chaine en 5 lignes et demande validation.
================================================================
PHASE 1 - ARCHITECTURE EN DEUX MOITIES
================================================================
Mets en place DEUX moitiees distinctes. C'est structurel, ne les melange pas.
MOITIE A - CLOUD (recherche + ecriture) : tourne sur une routine planifiee, chaque nuit.
Elle n'a ni ffmpeg, ni moteur de rendu video, ni acces a ma voix. Elle ne fabrique donc
AUCUN media. Son unique livrable est un fichier texte.
MOITIE B - LOCAL (voix + rendu + publication) : tourne sur ma machine, chaque matin.
C'est un SCRIPT DETERMINISTE, pas un agent : aucun LLM dans cette moitie. Le meme fichier
d'entree doit toujours produire la meme video.
CONTRAT ENTRE LES DEUX : un seul artefact, `journal/AAAA-MM-JJ.md`, pousse sur le depot.
Si tu as besoin d'inventer un format, fige-le maintenant et documente-le dans `FORMAT.md`.
Verifie et rapporte-moi l'etat des prerequis locaux : Node, ffmpeg + ffprobe,
Chrome/Chromium et sa configuration de polices, RAM disponible, moteur de rendu installe,
cles d'API presentes. Liste ce qui manque AVANT de continuer. N'invente pas une cle absente.
================================================================
PHASE 2 - LA RECHERCHE (moitie cloud) - regles non negociables
================================================================
Chaque nuit, pour la date du jour :
- Fais de VRAIES recherches web fraiches avec l'outil WebSearch. Plusieurs requetes,
derivees des mots-cles de `config/chaine.json`, en variant les formulations.
- Ne retiens que des informations datant des DERNIERES 24 A 48 HEURES.
- Selectionne 3 a 4 infos marquantes : privilegie ce qui est verifiable, chiffre et
consequent. Ecarte le teasing, les rumeurs non confirmees et les reprises d'agregateurs.
- Pour CHAQUE info : au moins UNE source reelle, avec titre et URL complete, verifiee en
ouvrant la page. Une URL que tu n'as pas ouverte n'est pas une source.
- INTERDICTION ABSOLUE d'inventer une information, un chiffre, une citation, une date ou
une source. Si tu ne trouves pas 3 infos sourcees, tu ecris l'edition avec 2 infos, ou
tu ecris "PAS D'EDITION AUJOURD'HUI - infos insuffisantes" et tu t'arretes la.
Une journee sans video vaut mieux qu'une video fausse.
- Aucune information non sourcee ne doit apparaitre dans le script parle.
================================================================
PHASE 3 - L'ECRITURE (moitie cloud)
================================================================
Ecris `journal/AAAA-MM-JJ.md` avec exactement ces sections :
# [NOM DE LA CHAINE] - [jour date en toutes lettres]
## Script voix off
- OUVERTURE datee : nom de la chaine + date + une phrase d'accroche. 1 phrase.
- BREVE 1..N : "Un -", "Deux -", "Trois -"... Chaque breve = 2 a 3 phrases parlees,
environ 140 caracteres par phrase, ecrites pour etre DITES (phrases courtes, verbes
actifs, chiffres arrondis a l'oral, pas de sigle imprononcable).
- RUNNING GAG : place-le apres 2 breves maximum. MAXIMUM 2 adjectifs empiles, jamais 3.
Varie le vocabulaire d'une edition a l'autre, ne repete jamais la meme paire deux
jours de suite.
- CTA final : une phrase qui demande de commenter le mot-cle choisi.
## Breves (versions ecrites, pour les captions a l'ecran)
Pour chaque breve : source (nom du media), titre court percutant, sous-titre, et les
chiffres cles isoles pour l'affichage.
## Running gags
## CTA
## Sources
Une ligne par info : nom du media + URL complete.
Regle de duree : le total du script parle doit tenir dans la duree cible de
`config/chaine.json`. Compte environ 15 caracteres parles par seconde et ajuste en
condensant les breves, jamais en supprimant une source.
================================================================
PHASE 4 - LA FABRICATION (moitie locale, script deterministe)
================================================================
Ecris un script `render-publish.sh <AAAA-MM-JJ>` qui execute, dans cet ordre :
1. IDEMPOTENCE : si l'edition du jour a deja ete rendue ET publiee, sortir immediatement
en succes sans rien refaire. Poser aussi un verrou de fichier (flock) pour qu'un run
n'en double jamais un autre.
2. Lire `journal/<DATE>.md`. Absent -> sortir en echec explicite, code retour dedie,
ET NE RIEN PUBLIER.
3. PARSING DETERMINISTE du Markdown vers un `edition.json` : segments de voix, captions
mot a mot, chiffres a afficher, gags, CTA. Aucun appel LLM, aucun appel reseau ici.
4. VOIX CLONEE : un appel TTS par segment, en parallele, 3 essais, cache disque indexe sur
le hash du TEXTE + de la VOIX. Puis couper les silences, accelerer legerement
(environ 1.1x) et normaliser.
5. CALAGE : mesurer avec ffprobe la duree REELLE de chaque segment audio et construire la
timeline a partir de ces mesures. La duree de la video sort de l'audio, jamais d'une
constante ecrite en dur.
6. COMPOSITION : un template porte le LOOK (charte, fenetre avatar, captions, decompte),
un builder injecte le CONTENU du jour. Le template ne change pas d'un jour a l'autre.
7. AUDIO : voix + musique de fond duckee en sidechain sous la voix + effets sur les
changements de plan, puis normalisation loudness.
8. RENDU : d'abord un SNAPSHOT de controle (une seule image) pour verifier que le texte
s'affiche et que rien n'est vide. Seulement ensuite, le rendu complet en MP4 1080x1920.
9. VERIFICATION : controler que le MP4 existe, qu'il fait plus de 0 octet, que sa duree
est dans la plage cible et qu'il contient bien une piste audio non silencieuse.
10. PREVISUALISATION : publier la video sur une page privee datee et attendre un vrai
code HTTP 200 avant toute programmation.
11. PROGRAMMATION : programmer le post sur chaque plateforme de `config/chaine.json`, a
l'heure choisie, avec la legende et le mot-cle de CTA. Uploader le FICHIER BINAIRE,
pas une URL de page.
12. Ecrire un log date de chaque run, et terminer par une DERNIERE LIGNE lisible par une
machine : "STATUS: OK ..." ou "STATUS: FAIL <raison>", avec un code retour distinct
par type d'echec.
================================================================
PHASE 5 - LA PLANIFICATION
================================================================
- Routine cloud : planifiee chaque nuit, environ 4 heures avant l'heure de publication.
Elle fait PHASE 2 + PHASE 3 et pousse le fichier du jour.
- Declencheur local : environ 30 minutes avant l'heure de publication, il lance
`render-publish.sh $(date +%F)` et lit la derniere ligne de sortie.
- Si le declencheur lit "STATUS: FAIL", il m'alerte (message avec la raison et le chemin
du log) et NE PUBLIE RIEN.
- Documente comment relancer une edition a la main, et comment forcer un nouveau rendu.
================================================================
GARDE-FOUS (a respecter en permanence)
================================================================
- NE JAMAIS PUBLIER SI LE RENDU A ECHOUE. Pas de post texte de secours, pas de "je publie
quand meme le script". Echec = pas de publication + explication de l'erreur.
- NE JAMAIS PUBLIER DEUX EDITIONS LE MEME JOUR. L'idempotence prime sur tout.
- NE JAMAIS INVENTER une info, un chiffre ou une source.
- NE JAMAIS annoncer "c'est fait" sans avoir verifie le fichier de sortie et le code HTTP.
- Si une cle d'API manque, dis-le et arrete-toi. Ne simule pas l'etape.
- Si tu hesites entre une edition mediocre et pas d'edition, choisis pas d'edition.
================================================================
LIVRABLES ATTENDUS
================================================================
1. `config/chaine.json` (issu de mes reponses en PHASE 0)
2. `FORMAT.md` (le contrat du fichier d'edition entre les deux moities)
3. La routine cloud de recherche + ecriture, planifiee
4. `render-publish.sh` + ses modules, testes
5. Une PREMIERE EDITION REELLE de bout en bout, rendue et prevue en publication,
avec ses sources verifiables
6. Un README qui explique comment relancer, comment changer de sujet, et ce que coute
une edition
Commence maintenant par la PHASE 0. Pose-moi les 12 questions et attends mes reponses.
Deux déclencheurs, décalés. C'est tout.
| Quand | Quoi | Où |
|---|---|---|
| ~ 3h00 | La routine planifiée cherche l'actu, vérifie les sources, écrit journal/AAAA-MM-JJ.md et le pousse sur le dépôt. | Cloud |
| ~ 6h30 | Le déclencheur lance render-publish.sh : voix, rendu, vérification, prévisualisation, programmation. | Local |
| 7h00 | La vidéo part sur les réseaux, à l'heure fixe. Le rendez-vous est tenu. | Réseaux |
Le décalage de 3 h 30 n'est pas décoratif : il te laisse une marge si la recherche traîne, si le rendu échoue et doit être relancé, ou si tu veux jeter un œil à la prévisualisation depuis ton téléphone avant que ça sorte.
Le déclencheur local ne lit qu'une chose : la dernière ligne de sortie du script. STATUS: OK → on ne fait rien de plus. STATUS: FAIL → alerte avec la raison et le chemin du log, et surtout aucune publication. Ce contrat en une ligne est ce qui permet de brancher n'importe quel ordonnanceur (cron, n8n en SSH, un runner) sans lui apprendre le fonctionnement interne du pipeline.
Ces quatre-là m'ont chacun coûté une soirée. Ils sont dans le prompt sous forme de règles — voilà pourquoi.
wait sans argument attend alors aussi ce log — qui ne se termine jamais. Résultat : le script gèle indéfiniment, sans erreur, sans rien. La règle : toujours attendre des identifiants de processus explicites, jamais un wait nu.Ne jamais publier si le rendu a échoué. Pas de « je poste le script en texte à la place », pas de « je republie celle d'hier ». Un échec de rendu doit produire une alerte et un silence. Une chaîne qui saute un jour reste crédible ; une chaîne qui publie un truc cassé ne l'est plus.
Deux corollaires que tu paieras aussi si tu les ignores : faire un snapshot de contrôle avant tout rendu long (une image en quelques secondes t'évite de découvrir un texte invisible après un quart d'heure de calcul), et uploader le fichier binaire vers l'outil de publication, jamais l'URL d'une page — les protections anti-bot renvoient une erreur d'accès à la place de ta vidéo.
Le système décrit ici tourne. Voilà trois éditions consécutives du Journal IA, telles qu'elles sont sorties, sur la page de prévisualisation :
Même habillage, même durée, même structure — seul le contenu change. C'est exactement ce qu'on cherche : le format devient un rendez-vous reconnaissable, et la machine ne s'occupe que du contenu du jour.
Cette page te donne le système complet et le prompt pour le monter. La partie la plus longue reste la fabrication vidéo : la voix, la composition, les captions, le montage audio, l'export vertical.
ShortForge est l'outil qui exécute cette moitié-là : un skill Claude Code qui transforme un brief texte en vidéo verticale complète — voix clonée, avatar animé, captions synchronisées, 1080×1920 — en 25 à 35 secondes de rendu. Tu lui donnes le script du jour, il te rend le MP4 prêt à programmer.
config.json pour tes couleurs, ta voix et ton CTA — exactement le fichier que le méga prompt te fait créer en PHASE 0.67 € au lieu de 97 € pour les 20 premières places. Paiement unique, mises à jour incluses, garantie 14 jours remboursé.
CRÉE TA TÉLÉ 3.0 | TONY PAYET / AUTOMATION BOOST | 2026