Communitygithub.com

akomlik/publish-youtube

Génère des métadonnées YouTube optimisées pour l'Impérial, des chapitres 00:00 nets, des localisations EN/UA/RU et des pistes de sous-titres .srt, ainsi que des vignettes composites localisées 16:9 à partir de Storyboard.md et du timeline .fcproj, puis téléverse 1 (en_only / option_a) ou 3 (option_b) éditions 4K sur YouTube via l'API YouTube Data v3 sans tête.

Qu'est-ce que publish-youtube ?

Cette compétence automatise la publication complète de vidéos 4K sur YouTube en transformant un export .mp4 et un projet .fcproj en un package prêt à l'emploi : métadonnées localisées (titre, description, chapitres), sous-titres .srt en anglais, ukrainien et russe, vignettes composites 16/9 personnalisées, et téléversement via l'API YouTube Data v3. Elle propose deux modes principaux : le mode 'en_only' ou 'option_a' pour une seule vidéo anglaise avec métadonnées localisées, et le mode 'option_b' pour publier trois éditions (anglaise, ukrainienne, russe) avec des pistes vocales distinctes et un commentaire épinglé de commutation linguistique. La compétence respecte des règles strictes : titres accrocheurs optimisés pour mobile, utilisation du code ISO 'ua' en local mais traduction automatique en 'uk' pour l'API YouTube, et injection obligatoire de la date d'enregistrement. Elle peut générer des vignettes par conservation, composition IA (Gemini 3 Pro) ou extraction d'image clé. Les tokens OAuth sont mis en cache dans ~/.config/antigravity_youtube/token.json pour des téléversements ultérieurs sans intervention.

Compatible avec~Claude Code~Codex CLI~Cursor✓Antigravity✓Gemini CLI
npx skills add https://github.com/akomlik/antigravity-video-studio/tree/HEAD/.agents/skills/publish-youtube

Demander à votre IA préférée

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

Documentation

Étape 4 : Métadonnées YouTube, Vignette Composite et Téléversement Multilingue (/publish-youtube)

Objectif

Transforme tout export 4K .mp4 et projet .fcproj terminé en un package de publication YouTube complet (youtube_metadata.json, captions.en.srt, captions.ua.srt, captions.ru.srt, et thumbnail.jpg / thumbnail_ua.jpg / thumbnail_ru.jpg) et le publie sur YouTube via l'API YouTube Data v3.

Règles Clés du Studio v2

  1. Titres Accrocheurs (Optimisés Mobile et Algorithme) : Par défaut, privilégier l'accroche narrative à forte curiosité comme titre principal (ex. Sauvée par les Yeux Perçants de Nina ! Escorte vers Zumba et Boucle de 21,5 mi à Pollença) plutôt que d'afficher la date en premier (AAAA-MM-JJ · ...), qui est tronquée sur mobile. Les titres avec date d'archive sont conservés dans title_alternatives et recordingDetails.recordingDate.
  2. Commentaire Épinglé Automatique de Commutation Linguistique : Lors du téléversement de projets multilingues (--option-b), upload_youtube_api.py publie automatiquement un commentaire de commutation linguistique de premier niveau sur la version anglaise principale, avec des liens directs vers les éditions ukrainienne et russe, afin que les spectateurs mobiles y aient accès en un clic sans avoir à développer la description.
  3. Code ISO Strict ua pour l'Ukraine en Local : Utiliser toujours ua (UA) dans tous les noms de fichiers locaux (captions.ua.srt, voiceover_ua_part1.wav, thumbnail_ua.jpg, _UA.mp4) et les clés de Storyboard.md / youtube_metadata.json. upload_youtube_api.py traduit automatiquement "ua" -> "uk" uniquement lors de l'envoi à l'API YouTube Data v3.
  4. Règle d'Analyse des Chapitres YouTube : YouTube utilise le dernier bloc de timestamp 00:00 dans la description d'une vidéo pour étiqueter les chapitres dans la barre de défilement. Par conséquent, les blocs en ligne 🇺🇦 УКРАЇНСЬКОЮ et 🇷🇺 ПО-РУССКИ dans la description anglaise ne doivent jamais inclure de listes de chapitres 00:00 (les chapitres localisés appartiennent strictement à localizations["ua"] et localizations["ru"]).
  5. Date d'Enregistrement Obligatoire (recordingDetails.recordingDate) : Chaque vidéo téléversée ou mise à jour (y compris les éditions EN, UA et RU) DOIT définir recordingDetails.recordingDate (AAAA-MM-JJT00:00:00.000Z, dérivé de recording_date dans youtube_metadata.json ou du préfixe AAAA-MM-JJ du dossier du projet) via part="snippet,status,localizations,recordingDetails".
  6. Héritage d'Environnement (Zéro Dépendances d'Encapsulation) : Définir GEMINI_API_KEY, GOOGLE_OAUTH_CLIENT_ID et GOOGLE_OAUTH_CLIENT_SECRET à l'aide de votre gestionnaire d'environnement préféré (par ex. direnv + 1Password, profil shell ou fichier .env local) et démarrer Antigravity à partir de cette session shell afin que tous les processus enfants les héritent automatiquement. Une fois autorisé, ~/.config/antigravity_youtube/token.json met en cache le jeton d'actualisation OAuth pour des téléversements futurs sans invite.

Étape 1 : Générer le Package de Métadonnées, les Pistes .srt et la Vignette Composite

Exécuter generate_youtube_metadata.py :

./.venv/bin/python ./.agents/skills/publish-youtube/scripts/generate_youtube_metadata.py \
  --project-dir "./04_Project_Catalog/YEAR/<project_name>" \
  --mp4 "~/Movies/Exports/YEAR/<project_name>.mp4" \
  --thumb-mode preserve \
  --thumb-text "SAUVÉ À LA PORTE" \
  --thumb-text-ua "ВРЯТОВАНИЙ БІЛЯ ВОРІТ" \
  --thumb-text-ru "СПАСЁН У ВОРОТ"
  • Modes de Vignette (--thumb-mode) :
    • preserve (par défaut) : Conserve une vignette personnalisée/composite existante dans le répertoire du projet et génère automatiquement thumbnail_ua.jpg et thumbnail_ru.jpg si elles sont absentes.
    • composite_ai : Utilise Gemini 3 Pro Image (gemini-3-pro-image-preview) avec --thumb-hero <hero.jpg>, --thumb-prop <prop.jpg> et --thumb-text "<ACCROCHE 3-4 MOTS>" pour générer une vignette composite de style YouTube Studio (arrière-plan panoramique flouté + cycliste souriant à gauche + découpe autocollante à bordure blanche de l'accessoire clé à droite + titre en gras jaune/blanc en haut).
    • frame : Extrait une image nette en 1920×1080 à --thumb-sec.

Étape 2 : Téléverser sur YouTube (en_only, option_a ou option_b)

Mode 1 : Téléversement d'une Seule Vidéo (en_only ou option_a — Par Défaut Quotidien)

Téléverse le Master Anglais 4K (private), définit les titres et descriptions localisés EN/UA/RU, téléverse captions.en.srt, captions.ua.srt et captions.ru.srt, et définit thumbnail.jpg :

./.venv/bin/python ./.agents/skills/publish-youtube/scripts/upload_youtube_api.py \
  --metadata "./04_Project_Catalog/YEAR/<project_name>/youtube_metadata.json" \
  --privacy private

(Pour mettre à jour les métadonnées/légendes/vignette d'une vidéo déjà téléversée sans retéléverser le MP4, ajouter --update-video-id <VIDEO_ID>).

Mode 2 : Téléversement Multilingue Complet en 3 Éditions (option_b — Occasions Spéciales et Histoires Familiales)

Téléverse l'édition 4K 🇺🇦 Ukrainienne (_UA.mp4, Non répertoriée, avec thumbnail_ua.jpg) et l'édition 4K 🇷🇺 Russe (_RU.mp4, Non répertoriée, avec thumbnail_ru.jpg) avec leurs pistes vocales natives répliquées et leurs légendes .srt, puis téléverse/met à jour le Master Anglais 4K 🇺🇸 (Privé, avec thumbnail.jpg) avec des liens cliquables vers les deux éditions localisées :

./.venv/bin/python ./.agents/skills/publish-youtube/scripts/upload_youtube_api.py \
  --metadata "./04_Project_Catalog/YEAR/<project_name>/youtube_metadata.json" \
  --privacy private \
  --option-b

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills associés