RewindDB

Interfaz con la base de datos SQLite de Rewind.ai para acceder a transcripciones de audio y datos de OCR de pantalla.

Documentación

RewindDB

Una biblioteca de Python para interactuar con la base de datos SQLite de Rewind.ai.

Registro de cambios

2025-07-04 - Funciones de exportación de voz y datos de entrenamiento

  • NUEVO: --export-own-voice opción de CLI para exportar las transcripciones de voz del usuario organizadas por día
  • NUEVO: filtro --speech-source para separar la voz del usuario (me) de otros hablantes (others)
  • NUEVO: soporte de exportación en múltiples formatos: texto, JSON y archivos de audio
  • NUEVO: --export-format audio con --audio-export-dir para exportar archivos de audio M4A reales
  • NUEVO: script my-words.sh para generar nubes de palabras a partir de tus datos de voz
  • MEJORADO: la biblioteca principal de RewindDB ahora admite el filtrado por fuente de voz
  • CASO DE USO: perfecto para recopilar datos de voz limpios para el ajuste fino de LLM
  • FILTRO: las exportaciones de texto contienen solo la voz del usuario (sin otros hablantes); las exportaciones de audio contienen conversaciones completas

Resumen del proyecto

RewindDB es una biblioteca de Python que proporciona una interfaz conveniente para la base de datos SQLite de Rewind.ai. Rewind.ai es un asistente de memoria personal que captura transcripciones de audio y datos OCR de pantalla en tiempo real. Este proyecto te permite acceder y buscar programáticamente en estos datos, lo que hace posible recuperar conversaciones pasadas, encontrar información específica mencionada en reuniones o analizar el contenido de pantalla de sesiones de trabajo anteriores.

El proyecto consta de tres componentes principales:

  1. Una biblioteca principal de Python (rewinddb) para acceso directo a la base de datos
  2. Herramientas de línea de comandos para recuperación de transcripciones, búsqueda de palabras clave, recuperación de datos OCR de pantalla y seguimiento de actividad
  3. Un servidor MCP STDIO que expone estas capacidades a los modelos GenAI a través del protocolo estandarizado Model Context Protocol

El propósito principal de este proyecto, para mí, era conectar Rewind con mi Raycast:

image

image

Instalación

Requisitos previos

  • Python 3.6+

Instalar desde el código fuente

# clone the repository
git clone https://github.com/pedramamini/RewindMCP.git
cd RewindMCP

# install the package and dependencies
pip install .

Instalación manual

# install the package in development mode
pip install -e .

Configuración

RewindDB utiliza un archivo .env para almacenar los parámetros de conexión a la base de datos. Este enfoque evita codificar información sensible como rutas de base de datos y contraseñas en el código fuente.

Configuración del archivo .env

  1. Crea un archivo .env en el directorio de tu proyecto o en tu directorio personal como ~/.rewinddb.env
  2. Añade los siguientes parámetros de configuración:
DB_PATH=/path/to/your/rewind/database.sqlite3
DB_PASSWORD=your_database_password

Por ejemplo:

DB_PATH=/Users/username/Library/Application Support/com.memoryvault.MemoryVault/db-enc.sqlite3
DB_PASSWORD=your_database_password_here

Ubicación personalizada del archivo .env

También puedes especificar una ubicación personalizada para tu archivo .env al usar la biblioteca o las herramientas CLI:

# in python code
db = rewinddb.RewindDB(env_file="/path/to/custom/.env")
# with cli tools
python transcript_cli.py --relative "1 hour" --env-file /path/to/custom/.env
python search_cli.py "meeting" --env-file /path/to/custom/.env
python ocr_cli.py --relative "1 hour" --env-file /path/to/custom/.env
python activity_cli.py --relative "1 day" --env-file /path/to/custom/.env
# with mcp server
python mcp_stdio.py --env-file /path/to/custom/.env

Herramientas CLI

transcript_cli.py

Recupera transcripciones de audio de la base de datos de Rewind.ai con capacidades avanzadas de filtrado de voz y exportación.

Recuperación básica de transcripciones

# get transcripts from the last hour
python transcript_cli.py --relative "1 hour"

# get transcripts from the last 5 hours
python transcript_cli.py --relative "5 hours"

# get transcripts from a specific time range
python transcript_cli.py --from "2023-05-11 13:00:00" --to "2023-05-11 17:00:00"

# enable debug output
python transcript_cli.py --relative "7 days" --debug

# use a custom .env file
python transcript_cli.py --relative "1 hour" --env-file /path/to/custom/.env

Filtrado por fuente de voz

# filter for only your own voice
python transcript_cli.py --relative "1 hour" --speech-source me

# filter for other speakers only
python transcript_cli.py --relative "1 day" --speech-source others

# filter works with any time range
python transcript_cli.py --from "2025-07-01" --to "2025-07-02" --speech-source me

Exportación de voz para datos de entrenamiento 🎙️

Perfecto para recopilar datos de voz limpios para el ajuste fino de LLM

# export your voice transcripts organized by day (text format)
python transcript_cli.py --export-own-voice "2025-01-01 to 2025-07-04"

# export as JSON with metadata
python transcript_cli.py --export-own-voice "2025-01-01 to 2025-07-04" --export-format json --save-to my_voice.json

# export actual audio files organized by day
python transcript_cli.py --export-own-voice "2025-01-01 to 2025-07-04" --export-format audio --audio-export-dir ./my_voice_audio

# generate word cloud from your voice data (requires wordcloud library)
pip install wordcloud matplotlib  # install dependencies
./my-words.sh  # automatically uses last 6 months of your voice data

Características principales:

  • Datos de entrenamiento limpios: las exportaciones de texto contienen solo TU voz, con otros hablantes filtrados
  • Exportación de audio: archivos M4A organizados por día con resúmenes de transcripción
  • Múltiples formatos: texto (legible), JSON (estructurado), audio (archivos originales)
  • Organización por día: perfecto para datos de entrenamiento cronológicos o análisis
  • Nube de palabras: visualización rápida de tus palabras más usadas con my-words.sh

search_cli.py

Busca palabras clave tanto en transcripciones de audio como en datos OCR de pantalla.

# search for a keyword with default time range (7 days)
python search_cli.py "meeting"

# search with a specific time range
python search_cli.py "project" --from "2023-05-11 13:00:00" --to "2023-05-11 17:00:00"

# search with a relative time period
python search_cli.py "presentation" --relative "1 day"

# adjust context size and enable debug output
python search_cli.py "python" --context 5 --debug

# use a custom .env file
python search_cli.py "meeting" --env-file /path/to/custom/.env

ocr_cli.py

Recupera datos OCR de pantalla (Reconocimiento Óptico de Caracteres) de la base de datos de Rewind.ai. Esta herramienta te permite ver qué texto era visible en tu pantalla durante períodos de tiempo específicos, proporcionando el contenido de texto OCR completo en lugar de solo metadatos sobre fotogramas y nodos.

# get OCR data from the last hour
python ocr_cli.py --relative "1 hour"

# get OCR data from the last 5 hours (supports short form)
python ocr_cli.py --relative "5h"

# get OCR data from a specific time range
python ocr_cli.py --from "2023-05-11 13:00:00" --to "2023-05-11 17:00:00"

# get OCR data for today only
python ocr_cli.py --from "2023-05-11" --to "2023-05-11"

# get OCR data for specific hours today
python ocr_cli.py --from "13:00" --to "17:00"

# list all applications that have OCR data
python ocr_cli.py --list-apps

# filter OCR data by specific application
python ocr_cli.py --relative "1 day" --app "com.apple.Safari"

# enable debug output and use custom .env file
python ocr_cli.py --relative "7 days" --debug --env-file /path/to/custom/.env

# display times in UTC instead of local time
python ocr_cli.py --relative "1 day" --utc

Características principales:

  • Formatos de tiempo: admite tiempo relativo ("1 hour", "5h", "30m", "2d", "1w") y rangos de tiempo absolutos
  • Filtrado por aplicación: usa --list-apps para ver las aplicaciones disponibles y luego --app para filtrar por una aplicación específica
  • Entrada de tiempo flexible: acepta varios formatos, incluidos solo fecha, solo hora y cadenas de fecha y hora completas
  • Extracción de texto: muestra el contenido de texto real que era visible en pantalla, organizado por marca de tiempo y aplicación

activity_cli.py

Muestra datos completos de seguimiento de actividad de la base de datos de Rewind.ai, incluidos patrones de uso de la computadora, estadísticas de uso de aplicaciones y reuniones de calendario.

# get activity data for the last day
python activity_cli.py --relative "1 day"

# get activity data for the last 5 hours (supports short form)
python activity_cli.py --relative "5h"

# get activity data from a specific time range
python activity_cli.py --from "2023-05-11 13:00:00" --to "2023-05-11 17:00:00"

# get activity data for today only
python activity_cli.py --from "2023-05-11" --to "2023-05-11"

# get activity data for specific hours today
python activity_cli.py --from "13:00" --to "17:00"

# enable debug output and use custom .env file
python activity_cli.py --relative "1 week" --debug --env-file /path/to/custom/.env

# display times in UTC instead of local time
python activity_cli.py --relative "1 day" --utc

Características principales:

  • Horas activas: muestra cuándo se estaba usando activamente tu computadora, con desgloses por hora y por día
  • Uso de aplicaciones: muestra las principales aplicaciones por tiempo de uso con gráficos visuales
  • Reuniones de calendario: muestra estadísticas de reuniones, duración y distribución por hora del día
  • Gráficos visuales: incluye gráficos de barras ASCII simples para una fácil visualización de datos
  • Soporte de zona horaria: muestra las horas en la zona horaria local por defecto, con opción UTC disponible

Servidor MCP STDIO

El servidor del Protocolo de Contexto de Modelos (MCP) expone la funcionalidad de RewindDB a los modelos GenAI a través del protocolo estandarizado MCP STDIO. Esta implementación es totalmente compatible con MCP y funciona con clientes MCP como Claude, Raycast y otros asistentes de IA.

Inicio rápido

# start the STDIO MCP server
python mcp_stdio.py

# enable debug logging
python mcp_stdio.py --debug

# use a custom .env file
python mcp_stdio.py --env-file /path/to/custom/.env

Herramientas disponibles

El servidor MCP proporciona las siguientes herramientas:

  1. get_transcripts_relative: Obtén transcripciones de audio de un período de tiempo relativo (p. ej., "1hour", "30minutes", "1day", "1week"). Devuelve sesiones de transcripción con contenido de texto completo adecuado para análisis, resumen o revisión detallada. Cada sesión incluye el texto completo de la transcripción y la sincronización palabra por palabra.

  2. get_transcripts_absolute: HERRAMIENTA PRINCIPAL para resúmenes de reuniones - Obtén transcripciones de audio completas de una ventana de tiempo específica (p. ej., 'reunión de las 3 PM'). Esta es la PRIMERA herramienta que se debe usar cuando se pida resumir reuniones, llamadas o conversaciones de momentos específicos. Devuelve sesiones de transcripción completas con contenido de texto listo para análisis y resumen.

  3. search_transcripts: Busca palabras clave o frases específicas en las transcripciones. NO para resúmenes de reuniones - usa get_transcripts_absolute en su lugar cuando se te pida resumir reuniones de momentos específicos. Esta herramienta encuentra coincidencias de palabras clave con fragmentos de contexto, útil para encontrar temas o nombres específicos mencionados en múltiples sesiones.

  4. search_screen_ocr: Busca palabras clave en el contenido OCR de pantalla. Encuentra texto que apareció en pantalla durante períodos de tiempo específicos. Úsalo para encontrar qué se mostró en pantalla, qué aplicaciones se usaron o el contenido visual durante reuniones o sesiones de trabajo. Complementa las transcripciones de audio mostrando lo que era visible.

  5. get_screen_ocr_relative: Obtén todo el contenido OCR de pantalla de un período de tiempo relativo (p. ej., "2hours", "1day"). Devuelve el contenido de texto OCR completo que era visible en pantalla, organizado por aplicación y marca de tiempo. Úsalo para ver todo lo que se mostró durante un período de tiempo.

    • Parámetros: time_period (obligatorio, p. ej., '1hour', '30minutes', '1day', '1week'), application (opcional, filtrar por nombre de aplicación)
    • Caso de uso: "Muéstrame todo el contenido de pantalla de las últimas 2 horas" o "Muéstrame todo el contenido de Chrome del último día"
  6. get_screen_ocr_absolute: Obtén todo el contenido OCR de pantalla de una ventana de tiempo específica. Devuelve el contenido de texto OCR completo del rango de tiempo especificado, con filtrado opcional por aplicación. Esencial para revisar lo que era visible durante reuniones o sesiones de trabajo.

    • Parámetros: from (obligatorio, formato ISO), to (obligatorio, formato ISO), timezone (opcional), application (opcional, filtrar por nombre de aplicación)
    • Caso de uso: "Muéstrame todo el contenido de pantalla de mi reunión de las 3 PM" o "Muéstrame todo el contenido de Slack de ayer por la tarde"
  7. get_ocr_applications_relative: Descubre todas las aplicaciones que tienen datos OCR de un período de tiempo relativo. Muestra qué aplicaciones estaban activas y sus niveles de actividad. Úsalo para identificar aplicaciones antes de filtrar el contenido OCR.

    • Parámetros: time_period (obligatorio, p. ej., '1hour', '30minutes', '1day', '1week')
    • Caso de uso: "¿Qué aplicaciones estuvieron activas en las últimas 4 horas?" - ayuda a los usuarios a descubrir por qué aplicaciones filtrar
    • Devuelve: recuento de fotogramas por aplicación, recuento de nodos OCR (nivel de actividad), número de ventanas únicas, rango de tiempo en que la aplicación estuvo activa, ordenado por nivel de actividad
  8. get_ocr_applications_absolute: Descubre todas las aplicaciones que tienen datos OCR de una ventana de tiempo específica. Ayuda a identificar qué aplicaciones estuvieron activas durante reuniones o períodos de tiempo específicos.

    • Parámetros: from (obligatorio, formato ISO), to (obligatorio, formato ISO), timezone (opcional)
    • Caso de uso: "¿Qué aplicaciones estuvieron activas durante mi reunión de 2 a 3 PM?" - ayuda a los usuarios a descubrir por qué aplicaciones filtrar
    • Devuelve: recuento de fotogramas por aplicación, recuento de nodos OCR (nivel de actividad), número de ventanas únicas, rango de tiempo en que la aplicación estuvo activa, ordenado por nivel de actividad
  9. get_activity_stats: Obtén estadísticas de actividad para un período de tiempo especificado (p. ej., "1hour", "30minutes", "1day", "1week"). Proporciona estadísticas completas sobre grabaciones de audio, capturas de pantalla y uso de aplicaciones.

  10. get_transcript_by_id: HERRAMIENTA DE SEGUIMIENTO - Obtén el contenido completo de la transcripción por ID de audio. Úsala DESPUÉS de get_transcripts_absolute para recuperar el texto completo de la transcripción para su resumen. Segundo paso esencial cuando la primera herramienta muestra texto de vista previa que necesita contenido completo para un análisis adecuado.

Integración del flujo de trabajo de las herramientas OCR

Las herramientas OCR trabajan juntas en un flujo de trabajo natural para un análisis completo del contenido de pantalla:

  1. Fase de descubrimiento: usa get_ocr_applications_* para ver qué aplicaciones estaban activas

    get_ocr_applications_relative: "2hours"
    → Returns: Chrome, Slack, VS Code, Zoom, etc.
    
  2. Recuperación enfocada: usa get_screen_ocr_* con filtro de aplicación para obtener contenido específico

    get_screen_ocr_relative: time_period="2hours", application="Chrome"
    → Returns: All Chrome OCR content from last 2 hours
    
  3. Búsqueda de palabras clave: usa la search_screen_ocr existente para contenido específico dentro de los resultados

    search_screen_ocr: keyword="meeting notes", application="Slack"
    → Returns: Specific matches for "meeting notes" in Slack
    

Características principales:

  • Filtrado por aplicación: ambas herramientas de contenido OCR admiten filtrado opcional por aplicación con coincidencia que no distingue mayúsculas (p. ej., "chrome" coincide con "Google Chrome")
  • Metadatos enriquecidos: las herramientas de descubrimiento de aplicaciones proporcionan recuento de fotogramas, recuento de nodos OCR (nivel de actividad), número de ventanas únicas y rangos de tiempo
  • Manejo de tiempo consistente: todas las herramientas usan análisis inteligente de fecha y hora que admite tanto períodos de tiempo relativos como rangos de tiempo absolutos con manejo de zona horaria
  • Acceso completo al contenido: las herramientas de contenido OCR devuelven el contenido de texto OCR real agrupado por fotograma, no solo metadatos
  • Análisis de reuniones: perfecto para revisar lo que se mostró durante reuniones o sesiones de trabajo

Beneficios y casos de uso:

  • Acceso OCR completo: los usuarios ahora pueden extraer todo el contenido de pantalla de cualquier ventana de tiempo, no solo buscar palabras clave específicas
  • Descubrimiento de aplicaciones: forma fácil de ver qué aplicaciones estuvieron activas durante períodos específicos antes de filtrar el contenido
  • Filtrado flexible: se puede enfocar en aplicaciones específicas después de la fase de descubrimiento
  • Análisis de reuniones: perfecto para revisar lo que se mostró durante reuniones o presentaciones
  • Revisión de sesiones de trabajo: analiza la actividad y el contenido de pantalla durante períodos de trabajo específicos
  • Integración perfecta: funciona con las herramientas de búsqueda y transcripción existentes para un análisis de datos completo

Integración con clientes MCP

El servidor sigue la especificación MCP y se puede usar con cualquier cliente compatible con MCP. Ejemplo de configuración:

{
  "mcpServers": {
    "rewinddb": {
      "command": "python",
      "args": ["/path/to/mcp_stdio.py"],
      "env": {
        "REWIND_DB_PATH": "/path/to/your/rewind.db",
        "REWIND_DB_PASSWORD": "your_password"
      }
    }
  }
}

Para instrucciones detalladas de configuración de MCP STDIO, ejemplos de configuración y solución de problemas, consulta README-MCP-STDIO.md.

Uso de la biblioteca

Uso básico

import rewinddb

# initialize connection to the database (uses .env file)
db = rewinddb.RewindDB()

# or specify a custom .env file
# db = rewinddb.RewindDB(env_file="/path/to/custom/.env")

# get audio transcripts from the last hour
transcripts = db.get_audio_transcripts_relative(hours=1)

# get screen ocr data from the last 30 minutes
ocr_data = db.get_screen_ocr_relative(minutes=30)

# search for keywords across both audio and screen data
results = db.search("python programming")

# close the connection when done
db.close()

# or use as a context manager
with rewinddb.RewindDB() as db:
    transcripts = db.get_audio_transcripts_relative(hours=1)

Recuperación de transcripciones de audio

# get transcripts from a relative time period
transcripts = db.get_audio_transcripts_relative(hours=2, minutes=30)

# get transcripts from a specific time range
from datetime import datetime
start_time = datetime(2023, 5, 11, 13, 0, 0)  # 1:00 PM
end_time = datetime(2023, 5, 11, 17, 0, 0)    # 5:00 PM
transcripts = db.get_audio_transcripts_absolute(start_time, end_time)

# filter by speech source for voice training data
user_only = db.get_audio_transcripts_relative(hours=1, speech_source='me')
others_only = db.get_audio_transcripts_relative(hours=1, speech_source='others')

# get voice data organized by day for training
transcripts_by_day = db.get_own_voice_transcripts_by_day(start_time, end_time)
for date, transcripts in transcripts_by_day.items():
    print(f"{date}: {len(transcripts)} words")
    words = [t['word'] for t in transcripts]
    text = ' '.join(words)
    print(f"Sample: {text[:100]}...")

Recuperación de datos OCR de pantalla

# get screen ocr from a relative time period
ocr_data = db.get_screen_ocr_relative(days=1)

# get screen ocr from a specific time range
ocr_data = db.get_screen_ocr_absolute(start_time, end_time)

# get complete OCR text content from relative time period
ocr_text = db.get_screen_ocr_text_relative(hours=2)

# get complete OCR text content from specific time range
ocr_text = db.get_screen_ocr_text_absolute(start_time, end_time)

# get OCR text content filtered by application
ocr_text = db.get_screen_ocr_text_relative(hours=1, application="Chrome")

Búsqueda en los datos

# search for keywords in the last 7 days (default)
results = db.search("meeting notes")

# search for keywords in a specific time period
results = db.search("project deadline", days=30)

# access search results
for audio_hit in results['audio']:
    print(f"Audio match at {audio_hit['absolute_time']}: {audio_hit['word']}")

for screen_hit in results['screen']:
    print(f"Screen match at {screen_hit['frame_time']} in {screen_hit['application']}: {screen_hit['text']}")

Esquema de la base de datos

La base de datos de Rewind.ai contiene varias tablas clave:

  • audio: Almacena segmentos de grabación de audio con marcas de tiempo
  • transcript_word: Contiene palabras transcritas individuales vinculadas a segmentos de audio
  • frame: Almacena fotogramas de captura de pantalla con marcas de tiempo
  • node: Contiene elementos de texto extraídos de capturas de pantalla (OCR)
  • segment: Realiza seguimiento de sesiones de uso de aplicaciones y ventanas
  • event: Almacena eventos de calendario y reuniones
  • searchRanking_content: Almacena contenido de texto OCR para búsqueda

Tipos de Datos Explicados

Grabaciones de Audio

Las grabaciones de audio son capturadas por Rewind.ai cuando hablas o cuando hay audio reproduciéndose en tu computadora. Cada grabación se almacena como un segmento en la tabla audio con metadatos como hora de inicio y duración. Estas grabaciones luego se procesan para extraer palabras transcritas.

Los fragmentos de audio se almacenan en disco en:

~/Library/Application Support/com.memoryvault.MemoryVault/snippets/YYYY-MM-DDThh:mm:ss/snippet.m4a

Palabras de Transcripción

Palabras individuales extraídas de grabaciones de audio mediante reconocimiento de voz. Cada palabra en la tabla transcript_word incluye información sobre cuándo ocurrió dentro de la grabación de audio (timeOffset), su posición en el texto completo (fullTextOffset) y su duración. Las palabras de transcripción están vinculadas a su grabación de audio de origen.

Campos Clave:

  • speechSource: Identifica al hablante - 'me' para la voz del usuario, 'others' para otros hablantes
  • word: El texto de la palabra transcrita
  • timeOffset: Tiempo dentro del segmento de audio (milisegundos)
  • duration: Duración de la palabra hablada (milisegundos)

Esta identificación del hablante permite una exportación limpia de datos de entrenamiento de voz al filtrar solo las palabras habladas del usuario.

Fotogramas

Capturas de pantalla tomadas por Rewind.ai a intervalos regulares mientras usas tu computadora. Cada fotograma en la tabla frame incluye una marca de tiempo (createdAt) y está vinculado al segmento de aplicación al que pertenece. Los fotogramas son el equivalente visual de las grabaciones de audio, capturando lo que estaba en tu pantalla en momentos específicos.

Las grabaciones de pantalla se almacenan en disco como fragmentos en:

~/Library/Application Support/com.memoryvault.MemoryVault/chunks/YYYYMM/DD/[chunk_id]

Donde:

  • YYYYMM es el año y mes (por ejemplo, 202505 para mayo de 2025)
  • DD es el día (por ejemplo, 13 para el día 13)
  • [chunk_id] es un identificador único para el fragmento de grabación

Nodos

Elementos de texto extraídos de capturas de pantalla mediante Reconocimiento Óptico de Caracteres (OCR). Cada nodo en la tabla node representa un fragmento de texto visible en tu pantalla, incluyendo su posición (leftX, topY, width, height) y otros metadatos. Los nodos están vinculados al fotograma del que fueron extraídos. Son el equivalente visual de las palabras de transcripción.

SearchRanking_Content

Esta tabla almacena el contenido de texto OCR real extraído de capturas de pantalla. Contiene tres columnas:

  • id: Un identificador único que se puede usar para localizar el fragmento de grabación correspondiente
  • c0: El contenido de texto principal extraído de la pantalla
  • c1: Información de marca de tiempo
  • c2: Información de ventana/aplicación

Esta tabla es crucial para buscar en el contenido de la pantalla y es utilizada por los nuevos métodos de recuperación de texto OCR (get_screen_ocr_text_absolute() y get_screen_ocr_text_relative()) para proporcionar contenido de texto OCR completo en lugar de solo metadatos sobre fotogramas y nodos.

Segmentos

Sesiones de uso de aplicaciones que rastrean cuándo estabas usando aplicaciones y ventanas específicas. Cada segmento en la tabla segment incluye el ID del paquete de la aplicación, el nombre de la ventana, la hora de inicio y la hora de finalización. Los segmentos ayudan a organizar fotogramas y grabaciones de audio según el contexto de la aplicación en el que ocurrieron.

Eventos

Eventos de calendario y reuniones que estaban programados durante el uso de tu computadora. La tabla event almacena información sobre estos eventos, incluyendo título, hora de inicio, hora de finalización y otros metadatos. Los eventos proporcionan contexto adicional sobre lo que estabas haciendo durante períodos de tiempo específicos.

Relaciones clave:

  • Los segmentos de audio están vinculados a palabras de transcripción
  • Los fotogramas están vinculados a nodos (elementos de texto)
  • Los fotogramas y segmentos de audio están asociados con segmentos de aplicación
  • Los eventos pueden estar asociados con segmentos específicos
  • Las entradas de SearchRanking_content están vinculadas a fotogramas y contienen el texto OCR real

Desarrollo

Configuración para Desarrollo

# clone the repository
git clone https://github.com/pedramamini/RewindMCP.git
cd RewindMCP

# install in development mode
pip install -e .

# install development dependencies
pip install pytest black isort

Ejecución de Pruebas

# run all tests
pytest

# run a specific test
pytest test_mcp_stdio.py

Solución de Problemas

Problemas de Conexión a la Base de Datos

Si encuentras errores de conexión a la base de datos:

  1. Verifica que la aplicación Rewind.ai esté instalada y haya creado la base de datos
  2. Comprueba que tu archivo .env contenga la ruta y contraseña correctas de la base de datos
  3. Asegúrate de que el módulo RewindDB esté instalado correctamente

No Se Encuentran Transcripciones

Si no se devuelven transcripciones:

  1. Verifica que el rango de tiempo contenga datos (intenta ampliar el rango de tiempo)
  2. Comprueba que Rewind.ai estuviera grabando activamente durante el período de tiempo solicitado
  3. Usa la bandera --debug con las herramientas CLI para ver más información

Problemas con el Servidor MCP

Si el servidor MCP no se inicia o no responde:

  1. Comprueba que todas las dependencias de MCP estén instaladas: pip install "mcp>=0.1.0"
  2. Verifica tu configuración de base de datos en el archivo .env
  3. Revisa los registros del servidor en /tmp/mcp_stdio.log para ver mensajes de error específicos

CLI de Estadísticas

La herramienta stats_cli.py proporciona estadísticas completas sobre tus datos de Rewind.ai:

# get statistics about your rewind.ai data
python stats_cli.py

# use a custom .env file
python stats_cli.py --env /path/to/custom/.env

El CLI de Estadísticas proporciona información sobre:

  • Resumen de la base de datos (tamaño, tablas, recuentos de registros)
  • Estadísticas de transcripciones de audio (recuentos por período de tiempo, registros más antiguos)
  • Estadísticas de OCR de pantalla (recuentos por período de tiempo, registros más antiguos)
  • Estadísticas de uso de aplicaciones (aplicaciones más utilizadas, tiempo de uso)
  • Recuentos de registros de tablas

Esta herramienta es útil para comprender el alcance y contenido de tus datos de Rewind.ai, y para diagnosticar posibles problemas con la recopilación o el almacenamiento de datos.

Licencia

MIT