Communitygithub.com

tzq-tbw/agent-skills

Convierte enlaces de video o archivos locales de audio/video en notas de aprendizaje detalladas, con fuentes, marcas de tiempo y capturas clave, y opcionalmente extrae flujos de trabajo. Se basa en subtítulos, transcripciones completas y verificación visual; no genera resúmenes completos solo a partir del título, descripción o fragmentos.

¿Qué es agent-skills?

Esta habilidad permite a un agente de IA procesar materiales de video (enlaces o archivos locales) para generar notas de estudio estructuradas que incluyen fuentes, marcas de tiempo, conceptos clave, pasos, ejemplos y conclusiones. Distingue claramente entre hechos del video, opiniones del autor y las propias aportaciones de la IA. El agente primero verifica los materiales obtenidos (subtítulos, transcripciones, capturas de pantalla), luego organiza la información en secciones temáticas y finalmente escribe las notas con evidencia visual (capturas). Está pensado para plataformas como Bilibili, YouTube, otras webs y archivos locales, y requiere herramientas como `yt-dlp`, `bili audio` y scripts de transcripción (`transcribe.py`) y finalización (`finalize.py`). La habilidad enfatiza la veracidad: no da por sentado que tener subtítulos significa que la transcripción es correcta, y evita resumir contenido que no ha sido verificado. Es especialmente útil para estudiantes, investigadores o profesionales que necesitan extraer conocimiento de videos de forma confiable y reproducible, evitando alucinaciones o generalizaciones sin base.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tzq-tbw/agent-skills/tree/HEAD/skills/video-to-note

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Notas de video para aprendizaje

Lee el material seleccionado por el usuario y organiza conceptos, pasos, ejemplos y conclusiones. Identifica claramente la opinión del autor y las aportaciones de la IA. Primero describe el material realmente obtenido y su alcance, luego informa el contenido. No equipares la descarga exitosa, la duración de los subtítulos o la transcripción completa con una verificación semántica.

Confirmar entradas y salidas

Confirma un solo video, una selección de partes o un archivo local. Si el alcance de una colección no está claro y afecta la tarea, pregunta primero. Conserva el enlace original de la fuente y un enlace canónico, eliminando parámetros de seguimiento irrelevantes.

Los archivos originales del usuario son de solo lectura. Crea siempre un directorio único work/video_tmp/<ID_de_tarea>/ en el espacio de trabajo actual para guardar medios, puntos de control y capturas temporales. Solo se permite un proceso de escritura por directorio. Al cambiar de fuente, modelo o idioma, crea un nuevo directorio de tarea; los reintentos válidos de la misma tarea reutilizan el directorio original.

Solo verifica el entorno necesario para esta ejecución; consulta los comandos en Descripción del entorno. Prioriza guardar en el directorio de notas especificado por el usuario; si no se especifica, utiliza el directorio de notas de video de Obsidian existente y con permisos de escritura; de lo contrario, usa outputs/ en el espacio de trabajo actual. Los archivos con el mismo nombre reciben un sufijo único para evitar sobrescritura.

Obtener material confiable

FuenteRuta preferidaCuando falten subtítulos confiables
BilibiliInterfaz pública o herramienta de subtítulos conectada y autorizadabili audio --no-split -o <task_dir> configurado u otra herramienta autorizada
YouTubeyt-dlp para obtener los subtítulos necesarios en el idioma seleccionadoObtener la pista de audio; solo obtener el video si se necesitan capturas
Otros sitiosHerramientas de plataforma existentes o yt-dlpCambiar a una ruta de obtención compatible según el fallo real
Audio/video localSubtítulos existentesEjecutar script de transcripción en el archivo original

Verifica el identificador del video, las partes, el idioma, si los subtítulos están vacíos y si hay segmentos faltantes evidentes. La cobertura de subtítulos no demuestra que cada frase sea correcta; un silencio normal al final no se considera directamente una falta.

Usa primero material público; no extraigas cookies del navegador, inicios de sesión ni nuevos canales por defecto. Ante el mismo fallo, realiza como máximo dos intentos con cambios claros; no reintentes en bucle, cambies de proxy ni describas un fallo de conexión como si el video no existiera. Si hay obstáculos, conserva el material obtenido e indica las carencias.

Transcribir pista de audio según sea necesario

Cuando no haya subtítulos confiables, primero lee Comandos de transcripción y luego usa transcribe.py:

  1. Selecciona el modelo claramente, priorizando la caché existente. Ejecuta --pilot para transcribir el primer minuto y verifica el idioma, el contenido y la velocidad.
  2. Si la prueba es viable, ejecuta el mismo comando sin --pilot para continuar con el procesamiento completo desde el punto de control. Si no hay caché, solo añade --download-model si es realmente necesario descargarlo.
  3. Lee el transcript.json completo y verifica silencios vacíos, repeticiones anómalas, needs_review, términos clave y números. Si hay citas importantes en los límites de los segmentos de minutos, escucha los fragmentos que cruzan esos límites.

El script usa entrada de 16 kHz, mono, PCM16 y NumPy para el reconocedor, y guarda puntos de control por minuto. completed: true solo indica que el rango de procesamiento ha sido consumido, no que el reconocimiento sea preciso. No cambies silenciosamente a un modelo más pequeño ni descargues modelos para importar módulos.

Ejecuta solo una ruta principal de reconocimiento completa; primero verifica un fragmento pequeño del material antes de decidir si cambiar. No realices ASR y OCR simultáneamente por defecto en todo el material. La espera en segundo plano no supera los 60 segundos por operación e informa un progreso significativo.

Verificar capturas clave

Primero lee Instrucciones de selección de capturas. Si hay capítulos, ubícalos por capítulo; si no, establece divisiones según las transiciones temáticas. Usa unas pocas capturas de vista general para ubicarte y luego extrae las imágenes claras necesarias.

El código, las fórmulas, las tablas, las configuraciones y los pasos operativos no pueden transmitirse solo mediante la voz. Conserva capturas similares si contienen información única; no uses un número fijo de capturas en lugar del criterio de integridad.

OCR se usa solo para verificar texto en imágenes o como ruta de respaldo cuando no hay pista de audio disponible. Primero prueba a leer algunas capturas representativas, evitando confundir subtítulos, texto del video y marcas de agua con contenido hablado. Las fórmulas de baja resolución, obstruidas o ilegibles deben indicar la carencia específica de tiempo. En videos visuales sin sonido, describe el contenido mediante lectura visual, sin inventar una transcripción de voz.

Escribir notas y evidencia

Por defecto, incluye título, fuente, duración, material real, resumen, puntos temáticos y marcas de tiempo clave. Si el usuario lo solicita o el video es adecuado para reproducir una operación, organiza también el flujo de trabajo, entradas, pasos, salidas y condiciones de finalización. No incluyas una transcripción completa por defecto.

Distingue entre hechos del video original, opiniones del autor y ejemplos, y aportaciones de la IA. La velocidad y cantidad demostradas por el autor no deben presentarse como garantías generales. Indica claramente el alcance procesado y las carencias que afectan la comprensión; no describas "tener subtítulos completos" como "verificación frase por frase de toda la pista de audio".

Las capturas se guardan en un directorio de archivos adjuntos persistente y se insertan como enlaces de imagen Markdown. Las notas, los archivos adjuntos y el archivo .evidence.json del mismo nombre no deben depender del directorio temporal de medios. La evidencia solo conserva fragmentos necesarios, rangos de tiempo, detalles clave y registros de verificación; consulta Descripción de la evidencia para el formato.

Verificar y limpiar

Primero, relee el material, las notas y los archivos adjuntos. Verifica los conceptos principales, métodos, ejemplos y conclusiones de cada sección, así como nombres importantes, números, fórmulas y pasos. En la evidencia, registra honestamente el alcance de la verificación y los elementos no resueltos. Los silencios o segmentos repetidos pueden indicar que no tienen contenido sustancial; no inventes un resumen para llenar la línea de tiempo.

Luego, ejecuta finalize.py para verificar la fuente, las secciones, el estado de finalización, los archivos persistentes y las carencias. El script solo verifica registros y archivos, no reemplaza la revisión de contenido. No marques falsamente reviewed o passed para pasar la verificación.

Solo después de que el material seleccionado esté procesado, la verificación de contenido sea aprobada y los archivos persistentes se hayan vuelto a leer correctamente, añade --clean. La limpieza se limita a un subdirectorio directo de work/video_tmp en el espacio de trabajo actual, y rechaza enlaces simbólicos, junction o puntos de reanálisis en el directorio y sus elementos. No se eliminan los archivos originales, la caché del modelo ni los productos persistentes. En caso de fallo o si aún hay carencias no resueltas, conserva los medios y los puntos de control.

Al final, proporciona el material real y el alcance del procesamiento, la ubicación de las notas, el resultado de la limpieza y las limitaciones. Las pruebas breves de video, las revisiones estáticas y las importaciones exitosas se informan según su alcance real, no como una aceptación completa del video.

Skills relacionados