Video Notes
El usuario graba comentarios como una grabación de pantalla mientras habla sobre ellos: una sola toma, de unos pocos minutos, a menudo repitiendo un punto cuando el cursor se retrasa. El entregable es una lista de tareas que otra sesión pueda ejecutar sin ver el video. Whisper y ffmpeg se ejecutan localmente; no se envía ningún video ni audio a una API de voz o visión en la nube.
Pasos
- Ejecuta el helper (está junto a este archivo).
Reutilizapython3 "<carpeta de esta skill>/video-notes.py" "<video>"<video>.srtsi existe junto al archivo; de lo contrario, ejecutawhisper --model base.enen CPU (aproximadamente 2.5 min por cada 5 min de video en un portátil Apple Silicon). La salida se guarda en<nombre>.notes/:transcript.md(una fila por segmento fusionado con un nombre de fotograma) e imágenes fijas de 1600 px. Cuando<nombre>.notes/es más reciente que el video, se reutiliza tal cual;--forcelo reconstruye,--model turbocuando la transcripción base es confusa,--every 10para una demo sin narración,--sheetpara hojas de contacto 2x2,--max-row 5para más fotogramas cuando el habla y la pantalla se mueven rápido (las filas tienen un límite de 8 s, un fotograma por fila),--max-frames 40por defecto. - Lee
transcript.md, luego los fotogramas. Con--sheet, hojea primerosheet_NN.jpg(cuatro fotogramas por lectura; los mosaicos van de izquierda a derecha, de arriba abajo, en orden de fotogramas, así que la hoja 01 contiene los fotogramas 1 a 4 y su mosaico superior izquierdo es el más antiguo), luego lee el fotograma individual para cada fila cuyas palabras apunten a la pantalla ("esta área", "aquí", "estos dos iconos") o cuyo texto deba leerse. Una hoja localiza; solo un fotograma individual es evidencia para una etiqueta o tamaño. - Escribe
<nombre>.notes.mdjunto al video, por ruta absoluta, sea cual sea el directorio de trabajo de la sesión. Formato:
La numeración es continua en toda la lista, para que el usuario pueda responder "el 3 y el 7". Las regiones siguen el orden en que se visitaron. Una nota repetida es un solo elemento, con "dicho 3 veces" añadido cuando la repetición es relevante.# <nombre del video> · <fecha de grabación> · <duración> · <aplicación o URL visible en los fotogramas> ## Lista de tareas ### <región de pantalla, nombrada como se lee en pantalla: Panel izquierdo, Encabezado, Panel de configuración> 1. [mm:ss] <arreglo imperativo en una oración>. Dijo: "<cita textual corta>". Fotograma: fotograma_mmss.jpg 2. ... ## Pendiente <elementos marcados como "después", "eventualmente", "ahora no", mismo formato de línea> ## Dudas <una línea por elemento que necesita respuesta del usuario> - Responde con la ruta del archivo, los encabezados de región con recuentos de elementos y los primeros tres elementos. No preguntes nada a menos que Dudas tenga entradas.
- Cuando el repositorio que renderiza la pantalla esté abierto, añade
## Dónde en el código: número de elemento y ruta de archivo, encontrado buscando los nombres de componentes y etiquetas visibles en los fotogramas. Omite la sección cuando no hay repositorio; nunca adivines una ruta.
Reglas
- El texto ilegible en una imagen fija se vuelve a capturar, nunca se infiere:
--width 2400, o un recorte de ffmpeg de la región. - La carpeta
.notes/y.notes.mdpermanecen junto al video. Dentro de un repositorio, esa carpeta debe ignorarse (.git/info/exclude), para que una grabación grande nunca entre en git. - Demo de competidor o producto: mismos pasos, y la lista dice "qué hacen" en lugar de "arreglar".
- La transcripción se ejecuta con los modelos Whisper locales en
~/.cache/whisper. No se usa API de voz en la nube, ni API de visión; el modelo de la sesión lee las imágenes fijas.
Verificación final
-
transcript.mdgenerado y cada fotograma leído antes de escribir un elemento -
<nombre>.notes.mdescrito: numeración global, regiones en orden de visita, marca de tiempo y fotograma en cada elemento - Repeticiones colapsadas, Pendiente y Dudas separadas de la lista de tareas
- Ningún video o audio enviado fuera de la máquina