Subtitles & Text Effects
- Quoi
- Coût
- Gratuit
- Prérequis
- Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre.
- Installation
- Copiez le prompt d’installation ci-dessous dans votre Muse — votre agent fait le reste.
Générer des sous-titres et des effets de texte décoratifs pour une vidéo courte de commerce électronique à partir d'un JSON de minutage de répliques : un seul fichier ASS contenant quatre styles à la fois (sous-titres du bas, grands titres accroche qui surgissent, autocollant en haut à gauche et bouton d'appel à l'action), surbrillance des mots-clés, découpage séquentiel des répliques longues, un SRT simple des sous-titres du bas, des zones sûres d'interface qui gardent le texte à l'écart des boutons du bas et de droite, et la gravure par ffmpeg/libass.
Version :
Installation
Copiez le dossier d’installation ci-dessous, puis collez-le dans Muse📌 Version épinglée : commit 96c49b3Le prompt d'installation ci-dessous inclut déjà les étapes de vérification : votre agent suit la checklist communautaire avant d'installer tout ce qui contient du code exécutable. Vous en voulez plus ?
Avant de commencer : lis ce prompt d'installation au complet, dis-moi en quelques lignes ce que ce skill fait et ce que son installation implique, et attends mon feu vert avant de faire quoi que ce soit d'autre. Prérequis : aucun pour l'installation elle-même : aucun compte, aucune clé API, aucun service payant, et rien d'autre à installer d'abord. Pour utiliser le skill ensuite, lis ceci d'abord : son seul script livré, scripts/make_subs.py, roule sous Python 3 avec la bibliothèque standard seulement (argparse, json, re, shutil, subprocess) — il n'exige ni Pillow, ni NumPy, ni edge-tts, même si le requirements.txt à la racine du dépôt liste pillow>=10, numpy>=1.24 et edge-tts>=6.1 ; ces dépendances-là appartiennent à d'autres skills du dépôt et ne sont jamais importées par ce skill. Graver les sous-titres dans une vidéo ensuite exige l'outil en ligne de commande ffmpeg compilé avec libass (le filtre « ass » — le tableau des pannes de SKILL.md dit qu'une compilation sans lui échoue avec « No such filter: 'ass' »), et un rendu correct exige une police CJK installée (sinon le texte chinois s'affiche en carrés) : le script détecte automatiquement une police quand l'outil fc-list (fontconfig) est présent, en essayant Noto Sans CJK SC, Source Han Sans SC, PingFang SC, Microsoft YaHei et WenQuanYi Zen Hei pour une famille chinoise, et retombe sur le nom « Noto Sans CJK SC » quand fc-list est absent ; tu peux forcer le choix avec --font, ou avec un champ « font » dans le JSON de minutage. fc-list est optionnel et ne roule que localement. Il n'y a dans ce skill aucune transcription (aucun Whisper, local ou distant), aucune synthèse vocale, aucune API de génération, aucune clé et aucun service en ligne, du tout. Installe-moi « subtitles-and-text-effects ». Il fabrique des sous-titres et des effets de texte décoratifs (花字) pour des vidéos courtes de commerce électronique : à partir d'un JSON de minutage de répliques (start/end/text/style), il génère un seul fichier de sous-titres ASS qui contient quatre styles à la fois — Sub (sous-titres du bas), Hook (grand texte accroche qui surgit près du haut), Tag (petit autocollant, en haut à gauche) et CTA (texte bouton d'appel à l'action, en bas au centre) — plus un fichier SRT simple qui ne contient que les répliques Sub. Dans le texte d'une réplique, **mot-clé** marque un seul mot-clé à recolorer en surbrillance jaune chaud, et « | » soit découpe une réplique Sub en morceaux séquentiels minutés selon le nombre de caractères, soit, dans les autres styles, fait un saut de ligne. Les styles sont disposés pour éviter les zones sûres de l'interface des plateformes (bas, environ 20 %, pris par le titre, la fiche produit et le panier — Sub est assis à une marge du bas de 26 % de la hauteur en vidéo portrait, 9 % en paysage ; droite, environ 15 %, prise par les boutons j'aime/commentaire/partage — marges latérales de 70 px sur Sub ; haut, environ 8 %, barre d'état/recherche — Hook est assis à 13 % de la hauteur), et SKILL.md grave ensuite le résultat avec ffmpeg/libass et, si la plateforme accepte le téléversement d'un fichier de sous-titres (par exemple YouTube ou certaines plateformes publicitaires), livre aussi le .srt. Règles de travail de SKILL.md : chaque réplique au plus 14 caractères chinois (environ une ligne à 1080 de large), les plus longues découpées avec « | » ; au plus un mot-clé surligné par réplique ; texte Hook au plus 10 caractères et seulement sur les accroches et les arguments de vente les plus forts. Dépôt : https://github.com/xianyu110/ecommerce-video-skills (le skill est tout le dossier skills/subtitles-and-text-effects/ au commit épinglé : SKILL.md plus son dossier scripts/, 2 fichiers) Version épinglée : installe le code au commit 96c49b349b7d975bda8f05ce6669c1d33500c269 exactement. Ne substitue pas une version plus récente. Si ce commit est inaccessible, arrête-toi et dis-le-moi. 1. Clone https://github.com/xianyu110/ecommerce-video-skills dans un dossier temporaire, place-toi au commit 96c49b349b7d975bda8f05ce6669c1d33500c269, et copie le dossier skills/subtitles-and-text-effects/ de ce checkout. Compare ensuite chaque fichier du dossier aux empreintes enregistrées pour cette fiche le 2026-10-19 : [FINGERPRINTS] - SKILL.md: SHA-256 e1f70ffb2042e204f5a1150383a9ee5ac110195cb38bd39aa28303cbd9874f6d - scripts/make_subs.py: SHA-256 8c8e9208e5dee5db0f92ed3e5fc9850f99896be5ca02792d79b5f35b26f89cef Si un fichier ne correspond pas, il a changé depuis la préparation de la fiche : ne l'installe pas encore, dis-moi ce que tu as trouvé et laisse-moi décider. 2. Lis SKILL.md au complet et lis le seul script de scripts/ (make_subs.py), et dis-moi en mots simples : ce que le skill fait quand on l'utilise, à quels services il se connecte, s'il lit ou envoie des informations personnelles ou des clés, et tout ce qui semble inhabituel. Arrête-toi sur tout signal d'alerte et dis-le-moi avant d'aller plus loin. Confirme ces points à partir des fichiers : - Le dossier du skill contient 2 fichiers seulement : SKILL.md (3 868 octets) et un script Python dans scripts/ (make_subs.py, 5 751 octets). Ce script est une copie à l'octet près du script du même nom à la racine du dépôt (scripts/make_subs.py, même SHA-256) : le skill est autonome dans son propre dossier pour son travail de base et n'a besoin d'aucun fichier d'ailleurs dans le dépôt — ni les 12 autres skills, ni le scripts/ de la racine, ni le README, ni le requirements.txt du dépôt au moment de l'installation. L'étape de génération de SKILL.md n'appelle que le script assis à côté de lui (scripts/make_subs.py, relatif au dossier du skill). Deux références de SKILL.md pointent hors du dossier et sont des extras optionnels, pas des exigences et pas une partie de cette installation : le JSON de minutage en entrée peut être écrit à la main par moi, et SKILL.md note seulement que le skill frère ffmpeg-auto-assemble, par son assemble.py, peut générer automatiquement build/timing.json (son tableau des pannes mentionne de même assemble.py qui utilise la durée réelle de la voix pour le minutage) ; et le contrôle des zones sûres roule en option le script du skill frère platform-spec-export (python skills/platform-spec-export/scripts/export_platform.py video.mp4 --safe-preview safe.png, lancé depuis la racine du dépôt) pour superposer les zones sûres — cet autre skill n'est pas installé ici et les sous-titres fonctionnent sans lui. - Rien n'est envoyé nulle part pendant l'installation elle-même ; le seul téléchargement à l'installation est le dossier du skill depuis GitHub au commit épinglé. Aucun script n'est exécuté pendant l'installation, aucune clé n'est demandée, et il n'y a aucune télémétrie dans le dossier. - Ce qui quitte cette machine à l'usage, divulgué ici avant que ça arrive : rien. Utiliser le skill est une étape séparée qui ne commence que quand je demande des sous-titres ou des effets de texte, et ça n'envoie rien à personne : scripts/make_subs.py ne fait aucun appel réseau — il importe seulement argparse, json, re, shutil et subprocess de la bibliothèque standard de Python, ne contient aucune URL, aucun client HTTP ou d'API, aucune socket, aucune manipulation de clé ou de variable d'environnement, et aucun service de transcription ou de parole d'aucune sorte (aucun Whisper, local ou distant ; aucun TTS). SKILL.md ne définit pour ce skill ni route par clé API ni route par lien en ligne non plus ; sa seule URL est le simple lien GitHub vers le dépôt lui-même dans son en-tête, que rien n'ouvre pendant l'installation ni à l'usage. Le modèle de prompt de découpage des sous-titres de SKILL.md (découper un texte parlé en répliques d'au plus 14 caractères, séparateurs « | », au plus un mot-clé **en gras** par réplique, une ligne Hook d'au plus 10 caractères pour le plan d'accroche et pour l'argument de vente le plus fort) est un texte que j'utilise avec toi localement, dans notre conversation, sur un texte que je fournis. Une étape de SKILL.md est manuelle, pas un envoi du skill : si une plateforme accepte le téléversement d'un fichier de sous-titres (par exemple YouTube ou certaines plateformes publicitaires), je peux moi-même y livrer le .srt généré — le skill lui-même ne contacte jamais YouTube, TikTok, Douyin ni aucune autre plateforme. - Les parties locales seulement à l'usage : scripts/make_subs.py roule entièrement sur cette machine — il lit localement mon JSON de minutage (une taille comme [1080, 1920] plus des répliques avec start/end/text/style ; si je ne passe pas --font et que le JSON n'a pas de champ « font », son detect_font() roule en option l'outil local fc-list pour choisir une famille de police chinoise, sinon il écrit le nom de repli « Noto Sans CJK SC » dans l'en-tête ASS), construit localement les quatre styles ASS (tailles de police selon le canevas, surbrillance du mot-clé et découpage/saut par « | » appliqués, répliques Sub aussi exportées en texte SRT simple), et écrit localement le fichier .ass (défaut build/subs.ass) et, si --srt est donné, le fichier .srt. L'étape de gravure de SKILL.md est une commande ffmpeg locale (ffmpeg -i in.mp4 -vf "ass=build/subs.ass" -c:a copy out.mp4) qui utilise le filtre libass de ffmpeg sur cette machine. Les animations sont écrites dans le fichier ASS lui-même : Hook surgit (fondu plus échelle de 125 % à 100 %), CTA pulse doucement, Tag et Sub fondent simplement. Rien n'est transcrit et aucun audio n'est traité par ce skill : le minutage et le texte viennent du JSON que je fournis (ou de l'étape assemble du skill frère en option notée ci-dessus). - N'installe pas de paquets Python, ffmpeg ni quoi que ce soit d'autre pendant cette installation, n'exécute pas make_subs.py, et ne génère ni ne grave aucun sous-titre : la configuration des dépendances d'usage est ma décision, plus tard, quand je demande vraiment des sous-titres. 3. Quand je dis « yes, install », installe-le comme skill : copie tout le dossier subtitles-and-text-effects dans le répertoire des skills de l'agent, dans un dossier nommé « subtitles-and-text-effects », en gardant ses 2 fichiers (SKILL.md à sa racine et le seul script dans son sous-dossier scripts/). Un clone manuel suivi de la copie du dossier skills/subtitles-and-text-effects dans ~/.claude/skills/ est la route décrite ici ; toute autre route ne convient que si chaque fichier installé correspond à son empreinte. 4. Vérifie sans appels réseau : frontmatter valide (name: subtitles-and-text-effects), les 2 fichiers en place avec des empreintes concordantes. N'exécute pas make_subs.py pour vérifier. 5. Indique ce qui a été installé, où, et ce qu'il me reste à faire moi-même (par exemple : fournir un JSON de minutage avec mes répliques — écrit à la main ou produit par le skill séparé ffmpeg-auto-assemble — ou un texte parlé à découper en répliques avec le modèle ; avoir Python 3 disponible, ffmpeg compilé avec libass si je veux la gravure, et une police CJK installée ou passer --font, si je veux que les sous-titres soient rendus ; utiliser le skill est une étape séparée qui ne commence que quand je le demande, et aucun envoi à l'usage n'arrive sur ce skill, comme divulgué ci-dessus). GitHub est optionnel : si j'ai un compte GitHub ou la CLI gh, tu peux l'utiliser ; sinon l'accès public suffit. Ne jamais l'exiger sauf s'il figure dans les prérequis ci-dessus. Règles : ne touche à rien en dehors du dossier temporaire et de la cible d'installation. Si quelque chose semble anormal, arrête-toi et demande-moi.
Enregistré dans vos installs récentes. Retrouvez-le à tout moment sur /connect.
Questions
Comment installer une création ?
Chaque fiche produit contient un prompt d’installation à copier-coller. Collez-le dans votre Muse et il installe la création pour vous — sans configuration manuelle.
Où va mon argent ?
Directement au vendeur. Skill Harbor ne traite jamais les paiements : le paiement se fait sur la page du vendeur, généralement via Stripe.
Que signifie le ✓ à côté du nom d’un créateur ?
Il signifie que nous avons confirmé l’identité de la personne derrière la fiche. Il ne dit rien sur le code lui-même — vérifiez toujours une création avant de l’installer.