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.mdsitué à 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 --atpar les véritables milieux de scènes danstimeline.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.