BiliNote-MCP

Convierte enlaces de video en notas Markdown generadas por IA

Documentación

VideoNote-Mcp

VideoNote-Mcp

Enlace de video → Notas en múltiples formatos
Un enlace → Una nota · De extremo a extremo o desacoplado, cualquier combinación

中文 | English

Inicio rápido • Documentación • Casos reales • Mapa del pipeline • Gestión de tareas • Mejores prácticas • Cómo contribuir


VideoNote-Mcp empaqueta todo el pipeline de «enlace de video → notas en múltiples formatos» como un servidor MCP: dale un enlace y automáticamente completará descarga → transcripción de voz → comprensión de imágenes → danmaku/comentarios, y generará transcripciones o notas.

Repositorio: HuangYincan/VideoNote-MCP.

Se puede usar de extremo a extremo (un enlace → una nota), o desacoplado: herramientas de generación, materiales, tareas, procesamiento de medios, etc., se usan según necesidad. No es necesario iniciar ningún servicio backend.

GitHub stars License: MIT Python 3.11+ MCP VideoNote-MCP MCP server


Inicio rápido

Configura el servicio MCP y comienza a usarlo.

# 1) 注册独立 MCP(PyPI 已发布版本)
claude mcp add --scope user videonote -- uvx videonote@latest

# 2) 在终端配置转写 / 平台登录;默认笔记流程无需 LLM Key
uvx videonote@latest setup

# 3) 重启或重连 MCP,然后发送视频链接

Los clientes MCP que admiten JSON también pueden usarlo:

{
  "mcpServers": {
    "videonote": {
      "type": "stdio",
      "command": "uvx",
      "args": ["videonote@latest"]
    }
  }
}

[!NOTE] El uvx videonote@latest predeterminado solo incluye dependencias básicas (transcripción fast-whisper + subtítulos oficiales de la plataforma), no incluye motores opcionales. En macOS, si quieres usar mlx-whisper con la GPU de Apple, tanto el registro MCP como la configuración del terminal deben incluirlo (--with debe escribirse antes del nombre de la herramienta):

claude mcp add --scope user videonote -- uvx --with mlx-whisper videonote@latest
uvx --with mlx-whisper videonote@latest setup

En clientes JSON, inserta "--with", "mlx-whisper" al inicio de args:

{
  "mcpServers": {
    "videonote": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--with", "mlx-whisper", "videonote@latest"]
    }
  }
}

funasr (óptimo para chino) es igual, solo cambia a --with funasr --with torch.

[!TIP] Cuatro métodos de instalación, detalles de configuración, actualización y seguridad en docs/04-使用手册.md.

Formatos de exportación

  • Subtítulos: admite SRT, VTT y JSON, ideal para guardar líneas de tiempo o importar a otras herramientas.
  • Notas Markdown: se pueden organizar en notas legibles y editables a partir de transcripciones, imágenes y comentarios.
  • LaTeX / Typst: el paquete incluye plantillas como Math Note, English Article y zju-lab; se pueden listar, leer o copiar a un nuevo directorio en el cliente MCP.
  • La copia de plantillas no sobrescribe directorios existentes. Los compiladores, fuentes y dependencias de LaTeX / Typst deben prepararse localmente; MCP solo proporciona materiales y plantillas, no compila PDF automáticamente.

La explicación completa de exportación está en el manual de uso.

Documentación

Instalación / configuración / uso / variables de entorno / actualización / seguridad, etc., están archivados en docs/ (el README solo conserva una visión general):


Casos reales

Dos casos reales de extremo a extremo: uno genera directamente un PDF LaTeX mathnote mediante un asistente de conversación, y el otro produce Markdown portátil mediante generación LLM totalmente automática.

Caso uno · agent_direct + LaTeX mathnote (video de DeepSeek-V4)

Fuente: 【闪客】深入解读 DeepSeek V1~V4!男女老少都听得懂~

Un video + cuatro tipos de materiales externos (artículos / informes técnicos / anuncios oficiales de WeChat / colecciones de código abierto) → el asistente de conversación genera directamente notas refinadas y produce un PDF LaTeX mathnote (plantilla de kaiti chino):

Página1Página2Página3
  • Sin clave LLM: organiza notas a partir de transcripciones, capturas de fotogramas y comentarios
  • Integración cruzada de múltiples fuentes: video × artículos × informes técnicos × listas de código abierto
  • Refinamiento conserva el borrador original: note.md / note_original.md doble copia
  • PDF LaTeX mathnote: reparación adaptativa de fuentes faltantes / desbordamiento de líneas / deduplicación de citas

El registro completo del proceso está en examples/agent-direct-deepseek-v4-mathnote/README.md.

Caso dos · Generación LLM totalmente automática + Markdown portátil (videos en paralelo)

Prompt mínimo (3 enlaces de Bilibili + directorio de salida, sin explicar ningún parámetro) → totalmente automático ejecuta verificación del entorno → reconocimiento de enlaces → descubrimiento de proveedor/modelo → confirmación de parámetros → videos en paralelo → refinamiento posterior basado en subtítulos, produciendo 3 notas portátiles refinadas (note.md + capturas de Assets/ + sección «opiniones de la audiencia», conservando note_original.md para comparación).

  • IELTS: rompe mitos + desglose de las cuatro secciones (escucha/lectura/escritura/habla) + 179 palabras de alta frecuencia + 15 marcos lógicos de oraciones
  • Medicina forense: un forense con 43 años de experiencia «analiza» la comparación entre cine y realidad, refinado y ampliado a 12 secciones
  • Transformer: explicación detallada del mecanismo de autoatención, 18 capturas distribuidas según la línea de tiempo de la clase

El registro completo del proceso está en examples/note-generation-example/README.md.


Mapa del pipeline

VideoNote-Mcp 流水线地图

Las líneas sólidas son el flujo principal: un prepare_note_material produce materiales, y el asistente de conversación actual organiza las notas; generate_note es el respaldo (se usa el LLM configurado cuando el asistente de conversación no puede ver imágenes). Las líneas discontinuas son capacidades opcionales (comprensión de video / danmaku y comentarios). Los detalles de cada etapa están en docs/02-架构设计.md.

Gestión de tareas

Cada tarea tiene una carpeta note_results/{task_id}/: raw/ (medios descargados) + gen/ (transcripción/notas/fotogramas/exportación) + archivos de control; el índice global de tareas está en la tabla SQLite video_tasks (con títulos semánticos). list_tasks enumera todas las tareas (identificadas por título semántico), cleanup(task_id, dry_run=True) consulta antes de limpiar, cleanup limpia por tarea / globalmente (por defecto conserva configuración y modelos), health_check verifica que FFmpeg / base de datos / whisper estén listos.

flowchart TB
    DATA["data/ 数据根"] --> R["note_results/ 任务目录"]
    DATA --> DB[("video_note.db<br/>SQLite 全局任务索引")]
    R --> T1["任务 A<br/>note_results/{task_id}/"]
    R --> T2["任务 B<br/>…"]
    R --> T3["任务 C<br/>…"]
    T1 --> RAW["raw/ 原始材料<br/>音视频 · 封面"]
    T1 --> GEN["gen/ 生成材料"]
    T1 --> CTRL["status.json · result.json · manifest.json"]
    GEN --> T1A["transcript.json 转写全文"]
    GEN --> T1B["note.md 成稿笔记"]
    GEN --> T1C["Assets/ 笔记内截图"]
    GEN --> T1D["frames/ 关键帧原图"]
    GEN --> T1E["srt / vtt / json 字幕导出"]
    DB -. 索引 .-> T1
HerramientaDescripciónTipo
list_tasksLista todas las tareas (índice global, con títulos semánticos)Herramienta MCP
cleanupLimpieza por tarea (pasa task_id) / limpieza global (restablecimiento de fábrica, sin pasar)Herramienta MCP
health_checkEstado de FFmpeg / base de datos / whisperHerramienta MCP

Mejores prácticas

  • Estudio y preparación de exámenes: de extremo a extremo + comprensión de video + optimización posterior basada en subtítulos, para explicar el curso a fondo.
  • Actas de reuniones: process_media(action="merge") fusiona grabaciones segmentadas → process_media(action="diarize") separación de hablantes → meeting_minutes estilo.
  • Lectura profunda de conferencias: después de la generación de extremo a extremo, refina según los subtítulos completos y completa los detalles por capítulo.
  • Apreciación de videos: activa la integración de danmaku + comentarios, la nota incluye la sección «opiniones de la audiencia».
  • Ruta predeterminada: un enlace usa prepare_note_material, y el asistente de conversación actual organiza las notas; solo se usa generate_note cuando no se pueden ver imágenes o el usuario solicita un LLM configurado. Para solo procesamiento de medios, usa process_media.
  • Casos reales: el registro completo del proceso está en examples.

Cómo contribuir

Se aceptan Issues, sugerencias de mejora y Pull Requests. El entorno de desarrollo, comandos de prueba, estrategia de ramas y navegación del código están en CONTRIBUTING.md.

Agradecimientos

  • Glama: por incluir el servidor MCP
  • LINUX DO: una nueva comunidad ideal
  • Todas las dependencias de código abierto y la inspiración de proyectos de pipeline anteriores