Communitygithub.com

Potatolclulu/broadcast-news-video

Créez des vidéos d'actualités télévisées modifiables avec des graphismes de code et une voix off optionnelle. Idéal pour les journaux télévisés, les vidéos à bande défilante ou les explications façon actualités.

Qu'est-ce que broadcast-news-video ?

Cette compétence permet de transformer un article de presse en un journal télévisé éditable avec des graphismes générés par code. Elle produit un rendu de type écran de code : globe terrestre en points d'introduction, fond bleu foncé, accents magenta, barres de titres blanches, bande défilante et sous-titres bilingues. Le tout est assemblé dans un projet HyperFrames. L'outil s'appuie sur un fichier de configuration JSON (brief) qui décrit chaque scène (cartes, points, flux, citations) et gère la synchronisation des sous-titres, le fond musical et les animations via GSAP. La voix off est optionnelle : elle peut provenir d'un enregistrement existant ou être synthétisée via MiniMax (API externe, avec gestion prudente des clés et des coûts). Le flux de travail inclut la validation avec Node.js et FFmpeg, la génération de captures d'écran, le rendu final en MP4, ainsi qu'un audit de confidentialité avant toute publication. Cette compétence est conçue pour les développeurs et créateurs de contenu souhaitant produire rapidement des vidéos d'actualité professionnelles et modifiables, sans recourir à des générateurs d'avatars ou à des services de montage vidéo traditionnels.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Potatolclulu/broadcast-news-video-skill/tree/HEAD/skills/broadcast-news-video

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Broadcast News Video

Transformez un article de presse en un journal télévisé éditable avec des graphismes de code. Par défaut : globe terrestre en points d'introduction, fond bleu foncé, accents magenta, barres de titres blanches, bande défilante et sous-titres bilingues. Utilisez les scripts de cette compétence pour générer un projet HyperFrames.

Déterminez d'abord le contenu

  • Réutilisez le sujet, les proportions et le timbre vocal déjà fournis par l'utilisateur. Par défaut : 1920×1080, 30ips, voix off accélérée à 1,3× en conservant la hauteur tonale.
  • Pour les actualités réelles, vérifiez les sources originales, indiquez la date de publication, la date de l'événement et la date de vérification ; distinguez les jugements médiatiques, les confirmations officielles, les résultats prévus et les explications institutionnelles. Enregistrez les liens dans un fichier FACTS.md situé à côté du projet.
  • Lorsque des données réelles sont citées visuellement, mentionnez leur source. Utilisez la mention "illustration" pour les points de données schématiques, afin qu'ils ne paraissent pas réels.
  • Suivez les règles de production pour rédiger des phrases courtes à lire à voix haute et pour chaque scène. Les sous-titres ne contiennent ni virgules ni points.
  • N'utilisez pas de générateurs d'avatars ni de services de génération vidéo sans demande explicite. N'appelez pas de générateur vidéo payant à l'utilisation par défaut.

Créez le projet

Dans la commande, définissez SKILL_DIR comme le répertoire contenant ce fichier, et WORK_DIR comme le répertoire de sortie dédié à l'utilisateur. Ne placez pas la sortie dans le répertoire Skill.

python3 -m pip install -r "$SKILL_DIR/scripts/requirements.txt"
python3 "$SKILL_DIR/scripts/setup.py" --output "$WORK_DIR"

Copiez assets/example.json en tant que brief.json du projet, puis modifiez-le pour correspondre au contenu de l'utilisateur selon les conventions de configuration. L'exemple est clairement marqué comme une démonstration fictive. Remplacez le nom de la chaîne, la date, le titre, les barres d'information et les données des scènes ; ne conservez pas la narration de l'exemple.

Aperçu sans voix off :

python3 "$SKILL_DIR/scripts/build.py" --brief "$WORK_DIR/brief.json" --output "$WORK_DIR"

build.py génère, à partir du JSON, l'introduction ainsi que les scènes cards, dots, flow, quote, une piste de sous-titres unique, un fichier SRT, une timeline et un fond musical. Tout le texte visible est échappé HTML, et les animations sont pilotées par une timeline GSAP en pause.

Voix off optionnelle

Privilégiez l'utilisation d'audio et de sous-titres déjà existants et autorisés par l'utilisateur ; ne téléchargez pas de voix privées sur un dépôt public. Placez l'audio dans le dossier voice/ du répertoire de sortie. Pour chaque scène, voice spécifie le chemin relatif par rapport au brief ; captions utilise les secondes de l'enregistrement original, et tout est divisé par speed lors de la construction.

Si l'utilisateur demande une voix off MiniMax, utilisez la variable d'environnement externe MINIMAX_API_KEY et le --voice-id spécifié par l'utilisateur. Ne placez pas de clés dans le JSON, les scripts, les documents ou les arguments de ligne de commande ; n'imprimez pas la clé et ne sauvegardez pas les accusés de réception bruts de l'API. Cette interface peut être payante ; ne l'exécutez que si l'utilisateur a explicitement autorisé la voix off.

python3 "$SKILL_DIR/scripts/voice.py" --brief "$WORK_DIR/brief.json" --output "$WORK_DIR/voice" --dry-run
python3 "$SKILL_DIR/scripts/voice.py" --brief "$WORK_DIR/brief.json" --output "$WORK_DIR/voice" --voice-id "$MINIMAX_VOICE_ID" --execute
python3 "$SKILL_DIR/scripts/build.py" --brief "$WORK_DIR/voice/brief.voiced.json" --output "$WORK_DIR"

Lors de la génération normale, conservez la variation de hauteur tonale ; les sous-titres se synchronisent avec la vitesse, et la musique est lue au tempo normal (1×). N'accélérez pas une deuxième fois au rendu. En cas d'échec d'une requête payante ou de résultat inconnu, arrêtez-vous sans réessayer automatiquement. Lorsque l'horodatage réel de l'interface est disponible, utilisez-le impérativement ; n'utilisez pas d'estimations basées sur un rapport de caractères comme sous-titres prétendument précis.

Vérification et livraison

Nécessite Node.js 22+, FFmpeg/FFprobe. Testé avec HyperFrames 0.9.23.

npx --yes [email protected] check "$WORK_DIR" --json
npx --yes [email protected] snapshot "$WORK_DIR" --at 1.5,5,10
npx --yes [email protected] preview "$WORK_DIR" --background
npx --yes [email protected] render "$WORK_DIR" --quality delivery --output "$WORK_DIR/news.mp4"
  • Corrigez les erreurs de lint, d'exécution et de mise en page ; examinez les captures d'écran au milieu de chaque scène, vérifiez les titres, les sources, les sous-titres, la bande défilante et la signification des points.
  • Remplacez les temps de snapshot --at par les véritables milieux de scènes dans timeline.json.
  • Si l'utilisateur demande le rendu final ou a autorisé une exécution continue, poursuivez le rendu après vérification ; sinon, fournissez un aperçu modifiable.
  • Utilisez FFprobe pour vérifier la durée, la résolution, le framerate et les pistes audio du MP4 ; utilisez FFmpeg pour rechercher les erreurs de décodage. Écoutez la voix off et le mixage ; si vous n'avez pas écouté, dites-le honnêtement.
  • Livrez le MP4, final.srt, les captures d'écran et le projet modifiable ; conservez les explications factuelles et les licences des médias utilisés.

Partage public

Ne mettez dans le paquet que la compétence et un exemple neutre. Excluez l'audio personnel, les vidéos originales, les identifiants, les textes privés, les accusés de réception d'API, les chemins absolus locaux, les actifs de marque et les identifiants de voix privés. Exécutez d'abord scripts/audit.py pour analyser le répertoire à publier ; vérifiez ensuite les fichiers suivis par Git et l'identité du commit ; ne vous fiez pas uniquement à .gitignore.

Le contenu original de cette compétence utilise assets/LICENSE-MIT.txt ; les GSAP, polices et cartes téléchargés conservent leurs propres licences, voir notes tierces.

Skills associés