Video Notes
L'utilisateur enregistre un retour vocal sous forme de capture d'écran commentée : une seule prise, quelques minutes, en répétant souvent un point lorsque le curseur traîne. Le livrable est une liste de tâches qu'une autre session peut exécuter sans regarder la vidéo. Whisper et ffmpeg s'exécutent localement ; aucune vidéo ni audio n'est envoyée vers une API cloud de reconnaissance vocale ou de vision.
Étapes
- Lancer l'assistant (il se trouve à côté de ce fichier).
Il réutilisepython3 "<dossier de cette compétence>/video-notes.py" "<video>"<video>.srts'il se trouve à côté du fichier, sinon exécutewhisper --model base.ensur le CPU (environ 2,5 minutes pour 5 minutes de vidéo sur un ordinateur Apple Silicon). Le résultat est placé dans<nom>.notes/:transcript.md(une ligne par segment fusionné avec un nom de trame) et des captures d'écran à 1600px. Quand<nom>.notes/est plus récent que la vidéo, il est réutilisé tel quel ;--forcereconstruit,--model turbosi le transcript de base est illisible,--every 10pour une démo sans narration,--sheetpour des planches contact 2x2,--max-row 5pour plus de trames quand l'oral et l'écran bougent vite (les lignes sont limitées à 8 s, une trame par ligne),--max-frames 40par défaut. - Lire
transcript.md, puis les trames. Avec--sheet, parcourir d'abordsheet_NN.jpg(quatre trames par lecture ; les tuiles vont de gauche à droite, de haut en bas, dans l'ordre des trames, donc la planche 01 contient les trames 1 à 4 et sa tuile en haut à gauche est la plus ancienne), puis lire la trame unique pour chaque ligne dont les mots pointent sur l'écran ("cette zone", "ici", "ces deux icônes") ou dont le texte doit être lu. Une planche localise ; seule une trame unique sert de preuve pour une étiquette ou une taille. - Écrire
<nom>.notes.mdà côté de la vidéo, en chemin absolu, quel que soit le répertoire de travail de la session. Forme :
La numérotation est continue sur toute la liste, pour que l'utilisateur puisse répondre "3 et 7". Les régions suivent l'ordre de visite. Une note répétée compte comme un seul élément, avec "dit 3 fois" ajouté lorsque la répétition est le point important.# <nom de la vidéo> · <date d'enregistrement> · <durée> · <appli ou URL visible dans les trames> ## Liste de tâches ### <région de l'écran, nommée comme elle se lit à l'écran : Rail gauche, En-tête, Panneau de paramètres> 1. [mm:ss] <correction impérative en une phrase>. Dit : "<courte citation textuelle>". Trame : frame_mmss.jpg 2. ... ## En suspens <éléments marqués "plus tard", "éventuellement", "pas maintenant", même format de ligne> ## À clarifier <une ligne par élément nécessitant une réponse de l'utilisateur> - Répondre avec le chemin du fichier, les en-têtes de région avec le nombre d'éléments, et les trois premiers éléments. Ne rien demander sauf si la section À clarifier contient des entrées.
- Quand le dépôt qui affiche l'écran est ouvert, ajouter
## Où dans le code: numéro d'élément avec chemin de fichier, trouvé en cherchant les noms de composants et les étiquettes visibles dans les trames. Passer la section lorsqu'il n'y a pas de dépôt ; ne jamais deviner un chemin.
Règles
- Un texte illisible dans une capture d'écran est récupéré, jamais déduit :
--width 2400, ou un recadrage ffmpeg de la région. - Le dossier
.notes/et.notes.mdrestent à côté de la vidéo. Dans un dépôt, ce dossier doit être ignoré (.git/info/exclude), afin qu'un grand enregistrement n'entre jamais dans git. - Concurrent ou démo produit : mêmes étapes, et la liste se lit "ce qu'ils font" au lieu de "corriger".
- La transcription s'exécute avec les modèles Whisper locaux dans
~/.cache/whisper. Pas d'API cloud de reconnaissance vocale, pas d'API de vision ; le modèle de session lit les captures.
Vérification finale
-
transcript.mdproduit et chaque trame lue avant d'écrire un élément -
<nom>.notes.mdécrit : numérotation globale, régions dans l'ordre de visite, horodatage et trame sur chaque élément - Les répétitions sont regroupées, les sections En suspens et À clarifier sont séparées de la liste de tâches
- Aucune vidéo ni audio n'est envoyé hors de la machine