Communitygithub.com

video-notes

Transformez un enregistrement d'écran commenté, une démo produit ou toute vidéo pointée par l'utilisateur en une liste de tâches numérotée et horodatée avec captures d'écran, le tout sur votre machine.

Qu'est-ce que video-notes ?

Cette compétence permet de transformer une vidéo d'enregistrement d'écran commentée, une démonstration produit ou tout autre fichier vidéo pointé par l'utilisateur en une liste de tâches numérotée et horodatée, avec des captures d'écran. L'utilisateur peut ainsi fournir un feedback vidéo qui est automatiquement converti en une checklist exploitable par la session suivante, sans avoir à revoir la vidéo. Whisper et ffmpeg sont exécutés localement, garantissant qu'aucune donnée audio ou vidéo n'est envoyée vers des API cloud. La compétence prend en charge les formats .mov, .mp4 et .webm, et s'intègre avec des assistants comme Claude Code, Cursor ou Codex. Elle génère un fichier transcript.md, des captures d'écran à 1600px, et un fichier .notes.md structuré avec liste de tâches, éléments en suspens et points à clarifier.

Compatible avec~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/weeeha/video-notes/tree/HEAD/skills/video-notes

Demander à votre IA préférée

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

Documentation

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

  1. Lancer l'assistant (il se trouve à côté de ce fichier).
    python3 "<dossier de cette compétence>/video-notes.py" "<video>"
    
    Il réutilise <video>.srt s'il se trouve à côté du fichier, sinon exécute whisper --model base.en sur 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 ; --force reconstruit, --model turbo si le transcript de base est illisible, --every 10 pour une démo sans narration, --sheet pour des planches contact 2x2, --max-row 5 pour plus de trames quand l'oral et l'écran bougent vite (les lignes sont limitées à 8 s, une trame par ligne), --max-frames 40 par défaut.
  2. Lire transcript.md, puis les trames. Avec --sheet, parcourir d'abord sheet_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.
  3. É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 :
    # <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>
    
    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.
  4. 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.
  5. 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.md restent à 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.md produit 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

Skills associés