RewindDB

Interfaceie com o banco de dados SQLite do Rewind.ai para acessar transcrições de áudio e dados de OCR de tela.

Documentação

RewindDB

Uma biblioteca Python para interface com o banco de dados SQLite do Rewind.ai.

Registro de Alterações

2025-07-04 - Recursos de Exportação de Voz e Dados de Treinamento

  • NOVO: Opção de CLI --export-own-voice para exportar transcrições de voz do usuário organizadas por dia
  • NOVO: Filtro --speech-source para separar a voz do usuário (me) de outros falantes (others)
  • NOVO: Suporte a exportação em múltiplos formatos: texto, JSON e exportação de arquivos de áudio
  • NOVO: --export-format audio com --audio-export-dir para exportar arquivos de áudio M4A reais
  • NOVO: Script my-words.sh para gerar nuvens de palavras a partir dos seus dados de voz
  • MELHORADO: A biblioteca principal do RewindDB agora suporta filtragem por fonte de fala
  • CASO DE USO: Perfeito para coletar dados de treinamento de voz limpos para ajuste fino de LLMs
  • FILTRO: Exportações de texto contêm apenas a voz do usuário (sem outros falantes); exportações de áudio contêm conversas completas

Visão Geral do Projeto

RewindDB é uma biblioteca Python que fornece uma interface conveniente para o banco de dados SQLite do Rewind.ai. O Rewind.ai é um assistente de memória pessoal que captura transcrições de áudio e dados de OCR de tela em tempo real. Este projeto permite que você acesse e pesquise esses dados programaticamente, tornando possível recuperar conversas passadas, encontrar informações específicas mencionadas em reuniões ou analisar o conteúdo da tela de sessões de trabalho anteriores.

O projeto consiste em três componentes principais:

  1. Uma biblioteca Python principal (rewinddb) para acesso direto ao banco de dados
  2. Ferramentas de linha de comando para recuperação de transcrições, pesquisa de palavras-chave, recuperação de dados de OCR de tela e rastreamento de atividades
  3. Um servidor MCP STDIO que expõe essas capacidades a modelos GenAI por meio do Protocolo de Contexto de Modelo padronizado

O objetivo principal deste projeto, para mim, era conectar o Rewind ao meu Raycast:

image

image

Instalação

Pré-requisitos

  • Python 3.6+

Instalar a partir da Fonte

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

# install the package and dependencies
pip install .

Instalação Manual

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

Configuração

O RewindDB usa um arquivo .env para armazenar parâmetros de conexão com o banco de dados. Essa abordagem evita codificar informações sensíveis, como caminhos de banco de dados e senhas, no código-fonte.

Configurando o Arquivo .env

  1. Crie um arquivo .env no diretório do seu projeto ou no seu diretório pessoal como ~/.rewinddb.env
  2. Adicione os seguintes parâmetros de configuração:
DB_PATH=/path/to/your/rewind/database.sqlite3
DB_PASSWORD=your_database_password

Por exemplo:

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

Local Personalizado do Arquivo .env

Você também pode especificar um local personalizado para o seu arquivo .env ao usar a biblioteca ou as ferramentas de 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

Ferramentas de CLI

transcript_cli.py

Recupere transcrições de áudio do banco de dados do Rewind.ai com filtragem avançada de voz e recursos de exportação.

Recuperação Básica de Transcrições

# 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

Filtragem por Fonte 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

Exportação de Voz para Dados de Treinamento 🎙️

Perfeito para coletar dados de treinamento de voz limpos para ajuste fino de LLMs

# 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

Principais Recursos:

  • Dados de Treinamento Limpos: Exportações de texto contêm apenas a SUA voz, com outros falantes filtrados
  • Exportação de Áudio: Arquivos M4A organizados por dia com resumos de transcrições
  • Múltiplos Formatos: Texto (legível), JSON (estruturado), Áudio (arquivos originais)
  • Organização por Dia: Perfeito para dados de treinamento cronológicos ou análise
  • Nuvem de Palavras: Visualização rápida das suas palavras mais usadas com my-words.sh

search_cli.py

Pesquise palavras-chave em transcrições de áudio e dados de OCR de tela.

# 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

Recupere dados de OCR de tela (Reconhecimento Óptico de Caracteres) do banco de dados do Rewind.ai. Esta ferramenta permite que você veja qual texto estava visível na sua tela durante períodos específicos, fornecendo o conteúdo completo do texto de OCR em vez de apenas metadados sobre quadros e nós.

# 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

Principais Recursos:

  • Formatos de tempo: Suporta tempo relativo ("1 hora", "5h", "30m", "2d", "1s") e intervalos de tempo absolutos
  • Filtragem por aplicativo: Use --list-apps para ver os aplicativos disponíveis e depois --app para filtrar por um aplicativo específico
  • Entrada de tempo flexível: Aceita vários formatos, incluindo apenas data, apenas hora e strings de data e hora completas
  • Extração de texto: Mostra o conteúdo de texto real que estava visível na tela, organizado por carimbo de data/hora e aplicativo

activity_cli.py

Exiba dados abrangentes de rastreamento de atividades do banco de dados do Rewind.ai, incluindo padrões de uso do computador, estatísticas de uso de aplicativos e reuniões de calendário.

# 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

Principais Recursos:

  • Horas Ativas: Mostra quando o seu computador estava sendo usado ativamente, com detalhamentos por hora e por dia
  • Uso de Aplicativos: Exibe os principais aplicativos por tempo de uso com gráficos visuais
  • Reuniões de Calendário: Mostra estatísticas de reuniões, duração e distribuição por hora do dia
  • Gráficos Visuais: Inclui gráficos de barras ASCII simples para fácil visualização de dados
  • Suporte a Fuso Horário: Exibe horários no fuso local por padrão, com opção de UTC disponível

Servidor MCP STDIO

O servidor do Protocolo de Contexto de Modelo (MCP) expõe a funcionalidade do RewindDB a modelos GenAI por meio do protocolo MCP STDIO padronizado. Esta implementação é totalmente compatível com MCP e funciona com clientes MCP como Claude, Raycast e outros assistentes de IA.

Início 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

Ferramentas Disponíveis

O servidor MCP fornece as seguintes ferramentas:

  1. get_transcripts_relative: Obtenha transcrições de áudio de um período de tempo relativo (por exemplo, "1hora", "30minutos", "1dia", "1semana"). Retorna sessões de transcrição com conteúdo de texto completo adequado para análise, resumo ou revisão detalhada. Cada sessão inclui o texto completo da transcrição e o tempo palavra por palavra.

  2. get_transcripts_absolute: FERRAMENTA PRINCIPAL para resumos de reuniões - Obtenha transcrições de áudio completas de um intervalo de tempo específico (por exemplo, 'reunião das 15h'). Esta é a PRIMEIRA ferramenta a ser usada quando solicitado a resumir reuniões, chamadas ou conversas de horários específicos. Retorna sessões de transcrição completas com conteúdo de texto pronto para análise e resumo.

  3. search_transcripts: Pesquise palavras-chave/frases específicas em transcrições. NÃO é para resumos de reuniões - use get_transcripts_absolute em vez disso quando solicitado a resumir reuniões de horários específicos. Esta ferramenta encontra correspondências de palavras-chave com trechos de contexto, útil para encontrar tópicos ou nomes específicos mencionados em várias sessões.

  4. search_screen_ocr: Pesquise palavras-chave no conteúdo de OCR de tela. Encontra texto que apareceu na tela durante períodos específicos. Use esta ferramenta para descobrir o que foi exibido na tela, aplicativos usados ou conteúdo visual durante reuniões ou sessões de trabalho. Complementa as transcrições de áudio mostrando o que estava visível.

  5. get_screen_ocr_relative: Obtenha todo o conteúdo de OCR de tela de um período de tempo relativo (por exemplo, "2horas", "1dia"). Retorna o conteúdo de texto de OCR completo que estava visível na tela, organizado por aplicativo e carimbo de data/hora. Use esta ferramenta para ver tudo o que foi exibido durante um período.

    • Parâmetros: time_period (obrigatório, por exemplo, '1hora', '30minutos', '1dia', '1semana'), application (opcional, filtrar por nome do aplicativo)
    • Caso de Uso: "Mostre-me todo o conteúdo da tela das últimas 2 horas" ou "Mostre-me todo o conteúdo do Chrome do último dia"
  6. get_screen_ocr_absolute: Obtenha todo o conteúdo de OCR de tela de um intervalo de tempo específico. Retorna o conteúdo de texto de OCR completo do intervalo de tempo especificado, com filtragem opcional por aplicativo. Essencial para revisar o que estava visível durante reuniões ou sessões de trabalho.

    • Parâmetros: from (obrigatório, formato ISO), to (obrigatório, formato ISO), timezone (opcional), application (opcional, filtrar por nome do aplicativo)
    • Caso de Uso: "Mostre-me todo o conteúdo da tela da minha reunião das 15h" ou "Mostre-me todo o conteúdo do Slack da tarde de ontem"
  7. get_ocr_applications_relative: Descubra todos os aplicativos que possuem dados de OCR de um período de tempo relativo. Mostra quais aplicativos estavam ativos e seus níveis de atividade. Use esta ferramenta para identificar aplicativos antes de filtrar o conteúdo de OCR.

    • Parâmetros: time_period (obrigatório, por exemplo, '1hora', '30minutos', '1dia', '1semana')
    • Caso de Uso: "Quais aplicativos estavam ativos nas últimas 4 horas?" - ajuda os usuários a descobrir por quais aplicativos filtrar
    • Retorna: Contagem de quadros por aplicativo, contagem de nós de OCR (nível de atividade), número de janelas exclusivas, intervalo de tempo em que o aplicativo estava ativo, ordenado por nível de atividade
  8. get_ocr_applications_absolute: Descubra todos os aplicativos que possuem dados de OCR de um intervalo de tempo específico. Ajuda a identificar quais aplicativos estavam ativos durante reuniões ou períodos específicos.

    • Parâmetros: from (obrigatório, formato ISO), to (obrigatório, formato ISO), timezone (opcional)
    • Caso de Uso: "Quais aplicativos estavam ativos durante minha reunião das 14h às 15h?" - ajuda os usuários a descobrir por quais aplicativos filtrar
    • Retorna: Contagem de quadros por aplicativo, contagem de nós de OCR (nível de atividade), número de janelas exclusivas, intervalo de tempo em que o aplicativo estava ativo, ordenado por nível de atividade
  9. get_activity_stats: Obtenha estatísticas de atividade para um período de tempo especificado (por exemplo, "1hora", "30minutos", "1dia", "1semana"). Fornece estatísticas abrangentes sobre gravações de áudio, capturas de tela e uso de aplicativos.

  10. get_transcript_by_id: FERRAMENTA DE ACOMPANHAMENTO - Obtenha o conteúdo completo da transcrição por ID de áudio. Use esta ferramenta APÓS get_transcripts_absolute para recuperar o texto completo da transcrição para resumo. Segundo passo essencial quando a primeira ferramenta mostra texto de pré-visualização que precisa de conteúdo completo para análise adequada.

Integração do Fluxo de Trabalho das Ferramentas de OCR

As ferramentas de OCR trabalham juntas em um fluxo de trabalho natural para análise abrangente do conteúdo da tela:

  1. Fase de Descoberta: Use get_ocr_applications_* para ver quais aplicativos estavam ativos

    get_ocr_applications_relative: "2hours"
    → Returns: Chrome, Slack, VS Code, Zoom, etc.
    
  2. Recuperação Focada: Use get_screen_ocr_* com filtro de aplicativo para obter conteúdo específico

    get_screen_ocr_relative: time_period="2hours", application="Chrome"
    → Returns: All Chrome OCR content from last 2 hours
    
  3. Pesquisa por Palavra-Chave: Use o search_screen_ocr existente para conteúdo específico dentro dos resultados

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

Principais Recursos:

  • Filtragem por Aplicativo: Ambas as ferramentas de conteúdo de OCR suportam filtragem opcional por aplicativo com correspondência sem distinção entre maiúsculas e minúsculas (por exemplo, "chrome" corresponde a "Google Chrome")
  • Metadados Ricos: As ferramentas de descoberta de aplicativos fornecem contagem de quadros, contagem de nós de OCR (nível de atividade), número de janelas exclusivas e intervalos de tempo
  • Tratamento de Tempo Consistente: Todas as ferramentas usam análise inteligente de data e hora, suportando períodos de tempo relativos e intervalos de tempo absolutos com tratamento de fuso horário
  • Acesso ao Conteúdo Completo: As ferramentas de conteúdo de OCR retornam o texto de OCR real agrupado por quadro, não apenas metadados
  • Análise de Reuniões: Perfeito para revisar o que foi exibido durante reuniões ou sessões de trabalho

Benefícios e Casos de Uso:

  • Acesso Completo ao OCR: Os usuários agora podem extrair todo o conteúdo da tela de qualquer intervalo de tempo, não apenas pesquisar palavras-chave específicas
  • Descoberta de Aplicativos: Maneira fácil de ver quais aplicativos estavam ativos durante períodos específicos antes de filtrar o conteúdo
  • Filtragem Flexível: Pode focar em aplicativos específicos após a fase de descoberta
  • Análise de Reuniões: Perfeito para revisar o que foi exibido durante reuniões ou apresentações
  • Revisão de Sessões de Trabalho: Analise a atividade e o conteúdo da tela durante períodos de trabalho específicos
  • Integração Perfeita: Funciona com as ferramentas existentes de pesquisa e transcrição para análise abrangente de dados

Integração com Cliente MCP

O servidor segue a especificação MCP e pode ser usado com qualquer cliente compatível com MCP. Exemplo de configuração:

{
  "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 instruções detalhadas de configuração do MCP STDIO, exemplos de configuração e solução de problemas, consulte README-MCP-STDIO.md.

Uso da 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)

Recuperando Transcrições de Áudio

# 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]}...")

Recuperando Dados de OCR de Tela

# 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")

Pesquisando em Todos os Dados

# 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 do Banco de Dados

O banco de dados do Rewind.ai contém várias tabelas principais:

  • audio: Armazena segmentos de gravação de áudio com carimbos de data/hora
  • transcript_word: Contém palavras transcritas individualmente vinculadas a segmentos de áudio
  • frame: Armazena quadros de captura de tela com carimbos de data/hora
  • node: Contém elementos de texto extraídos de capturas de tela (OCR)
  • segment: Rastreia sessões de uso de aplicativos e janelas
  • event: Armazena eventos de calendário e reuniões
  • searchRanking_content: Armazena conteúdo de texto OCR para pesquisa

Tipos de Dados Explicados

Gravações de Áudio

As gravações de áudio são capturadas pelo Rewind.ai quando você fala ou quando há áudio tocando no seu computador. Cada gravação é armazenada como um segmento na tabela audio com metadados como horário de início e duração. Essas gravações são então processadas para extrair palavras transcritas.

Os trechos de áudio são armazenados em disco em:

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

Palavras de Transcrição

Palavras individuais extraídas de gravações de áudio por meio de reconhecimento de fala. Cada palavra na tabela transcript_word inclui informações sobre quando ocorreu dentro da gravação de áudio (timeOffset), sua posição no texto completo (fullTextOffset) e sua duração. As palavras de transcrição estão vinculadas à sua gravação de áudio de origem.

Campos principais:

  • speechSource: Identifica o falante - 'me' para a voz do usuário, 'others' para outros falantes
  • word: O texto da palavra transcrita
  • timeOffset: Tempo dentro do segmento de áudio (milissegundos)
  • duration: Duração da palavra falada (milissegundos)

Essa identificação do falante permite a exportação limpa de dados de treinamento de voz, filtrando apenas as palavras faladas pelo usuário.

Quadros

Capturas de tela feitas pelo Rewind.ai em intervalos regulares enquanto você usa o computador. Cada quadro na tabela frame inclui um carimbo de data/hora (createdAt) e está vinculado ao segmento de aplicativo ao qual pertence. Os quadros são o equivalente visual das gravações de áudio, capturando o que estava na sua tela em momentos específicos.

As gravações de tela são armazenadas em disco como blocos em:

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

Onde:

  • YYYYMM é o ano e o mês (por exemplo, 202505 para maio de 2025)
  • DD é o dia (por exemplo, 13 para o dia 13)
  • [chunk_id] é um identificador exclusivo para o bloco de gravação

Nós

Elementos de texto extraídos de capturas de tela usando Reconhecimento Óptico de Caracteres (OCR). Cada nó na tabela node representa um trecho de texto visível na sua tela, incluindo sua posição (leftX, topY, width, height) e outros metadados. Os nós estão vinculados ao quadro do qual foram extraídos. Eles são o equivalente visual das palavras de transcrição.

SearchRanking_Content

Esta tabela armazena o conteúdo de texto OCR real extraído das capturas de tela. Ela contém três colunas:

  • id: Um identificador exclusivo que pode ser usado para localizar o bloco de gravação correspondente
  • c0: O conteúdo de texto principal extraído da tela
  • c1: Informações de carimbo de data/hora
  • c2: Informações de janela/aplicativo

Esta tabela é crucial para pesquisar o conteúdo da tela e é usada pelos novos métodos de recuperação de texto OCR (get_screen_ocr_text_absolute() e get_screen_ocr_text_relative()) para fornecer conteúdo de texto OCR completo, em vez de apenas metadados sobre quadros e nós.

Segmentos

Sessões de uso de aplicativos que rastreiam quando você estava usando aplicativos e janelas específicos. Cada segmento na tabela segment inclui o ID do pacote do aplicativo, nome da janela, horário de início e horário de término. Os segmentos ajudam a organizar quadros e gravações de áudio pelo contexto do aplicativo em que ocorreram.

Eventos

Eventos de calendário e reuniões que foram agendados durante o uso do seu computador. A tabela event armazena informações sobre esses eventos, incluindo título, horário de início, horário de término e outros metadados. Os eventos fornecem contexto adicional sobre o que você estava fazendo durante períodos de tempo específicos.

Principais relacionamentos:

  • Segmentos de áudio estão vinculados a palavras de transcrição
  • Quadros estão vinculados a nós (elementos de texto)
  • Quadros e segmentos de áudio estão associados a segmentos de aplicativos
  • Eventos podem estar associados a segmentos específicos
  • As entradas de SearchRanking_content estão vinculadas a quadros e contêm o texto OCR real

Desenvolvimento

Configuração para Desenvolvimento

# 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

Executando Testes

# run all tests
pytest

# run a specific test
pytest test_mcp_stdio.py

Solução de Problemas

Problemas de Conexão com o Banco de Dados

Se você encontrar erros de conexão com o banco de dados:

  1. Verifique se o aplicativo Rewind.ai está instalado e criou o banco de dados
  2. Verifique se o seu arquivo .env contém o caminho e a senha corretos do banco de dados
  3. Certifique-se de que o módulo RewindDB esteja instalado corretamente

Nenhuma Transcrição Encontrada

Se nenhuma transcrição for retornada:

  1. Verifique se o intervalo de tempo contém dados (tente expandir o intervalo de tempo)
  2. Verifique se o Rewind.ai estava gravando ativamente durante o período solicitado
  3. Use o sinalizador --debug com ferramentas de CLI para ver mais informações

Problemas com o Servidor MCP

Se o servidor MCP falhar ao iniciar ou responder:

  1. Verifique se todas as dependências do MCP estão instaladas: pip install "mcp>=0.1.0"
  2. Verifique sua configuração de banco de dados no arquivo .env
  3. Verifique os logs do servidor em /tmp/mcp_stdio.log para mensagens de erro específicas

CLI de Estatísticas

A ferramenta stats_cli.py fornece estatísticas abrangentes sobre seus dados do 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

O CLI de Estatísticas fornece informações sobre:

  • Visão geral do banco de dados (tamanho, tabelas, contagens de registros)
  • Estatísticas de transcrição de áudio (contagens por período de tempo, registros mais antigos)
  • Estatísticas de OCR de tela (contagens por período de tempo, registros mais antigos)
  • Estatísticas de uso de aplicativos (aplicativos mais usados, tempo de uso)
  • Contagens de registros de tabelas

Esta ferramenta é útil para entender o escopo e o conteúdo dos seus dados do Rewind.ai e para diagnosticar possíveis problemas com a coleta ou armazenamento de dados.

Licença

MIT