Que fait shortcut-clips ?
Un pipeline local effectue le travail mécanique (transcrire, trouver les fenêtres candidates, recadrer, sous-titrer, rendre). Votre tâche est l'étape de jugement : lire les moments candidats sous forme de texte, choisir les meilleurs et écrire clips.json. Vous ne voyez ni n'avez besoin des trames vidéo.
0. Entrées
- Vidéo : un chemin de fichier local. Si l'utilisateur donne une URL, expliquez que shortcut-clips ne fonctionne qu'avec des fichiers qu'il fournit (contenu dont il est propriétaire ou pour lequel il a les droits) et demandez un fichier. Ne téléchargez rien.
- Nombre de clips : utilisez le nombre donné par l'utilisateur ; sinon 3.
- Options (uniquement si l'utilisateur le demande) :
--language hi|kn|en|…,--min-len/--max-len(par défaut 20-60 s), stylebold-pop(par défaut),minimaloukaraoke-highlight.
1. Préparation (transcription + candidats)
shortcut-clips prepare "<video>"
- Il affiche le dossier de sortie, puis une ligne par fichier de segment (chunk). Notez les deux.
- Un premier lancement télécharge le modèle de reconnaissance vocale. Une vidéo d'une heure prend environ 15 à 25 minutes sur CPU et 5 à 10 minutes sur GPU. Pour les vidéos de plus de 10 minutes, exécutez la commande en arrière-plan et attendez qu'elle se termine. Dites à l'utilisateur que ça travaille. Relancer est sûr : les étapes terminées sont mises en cache.
- En cas d'échec, montrez à l'utilisateur le conseil de correction de l'erreur.
shortcut-clips doctorvérifie l'installation.
2. Choisir les moments
- Lisez
<dossier de sortie>/work/candidates.txt, puis chaque fichier de segment qu'il liste, dans l'ordre. Chaque segment liste des phrases (s0012 [68.3] texte) et des candidats (c004 s0012-s0021 68.2-108.6 (40s)), chaque candidat étant un intervalle de ces phrases. Ne lisez pastranscript.jsonoucandidates.json: les segments contiennent tout ce dont vous avez besoin, avec beaucoup moins de tokens. - Notez chaque candidat avec reference/rubric.md. En avançant, gardez une shortlist d'environ 3× le nombre demandé : identifiant du candidat, cinq scores par critère, note d'une ligne. Abandonnez le reste.
- Améliorez les gagnants. Vous pouvez déplacer les bords d'un clip vers d'autres limites de phrases, par exemple en commençant à la phrase avec l'accroche la plus forte ou en terminant juste après la chute :
start= le temps de la première phrase choisie.end= le temps de la phrase après la dernière que vous gardez, ou le temps de fin du candidat si vous gardez sa dernière phrase.- Restez dans la plage de durée. Le validateur ajuste les bords aux mots entiers.
- Choisissez l'ensemble final : les scores globaux les plus élevés, pas deux clips partageant plus de quelques secondes, et des sujets différents si possible.
3. Écrire clips.json
Écrivez <dossier de sortie>/clips.json en suivant reference/clips-format.md. Écrivez hook_text, title et caption dans la langue et l'écriture de la transcription, sauf si l'utilisateur demande autrement. Ordonnez les clips du meilleur au premier. Exécutez ensuite :
shortcut-clips validate "<dossier de sortie>/clips.json" --write
Corrigez chaque error et relancez jusqu'à ce qu'il affiche ✓. Corrigez les avertissements quand c'est facile. Les lignes info signalent des ajustements automatiques (bords ajustés) et ne nécessitent aucune action.
4. Rendu
shortcut-clips render "<dossier de sortie>/clips.json"
Ensuite, faites un rapport à l'utilisateur : pour chaque clip, son numéro, son titre, sa durée, son score et son chemin vidéo, ainsi que la galerie <dossier de sortie>/index.html. Ajoutez une phrase expliquant pourquoi le meilleur clip fonctionne. Mentionnez qu'il peut demander des modifications.
Éditions et ré-exécutions
- "Raccourcir le clip 2", "nouveau titre", "utiliser le style karaoké" : éditez
clips.json(remplacement dustyle/layoutpar clip sur lesdefaults), validez avec--write, refaites le rendu. Les clips inchangés sont réutilisés depuis le cache. - "Trouver d'autres moments" : revenez à l'étape 2 avec les mêmes segments. Ne relancez pas prepare.
- Mauvaise langue détectée : relancez prepare avec
--language <code>. Seule la transcription et les étapes ultérieures sont refaites. Aucune fenêtre candidate: la vidéo est courte ou contient peu de parole. Relancez prepare avec un--min-lenplus petit (par exemple 10).