Skip to content

Nunalber-last/Summarize-com-IA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Sistema de Processamento de links com Notion

Este projeto consiste em um script Python que automatiza o processamento de vídeos do YouTube listados em uma base de dados do Notion. Ele busca os vídeos, tenta extrair suas transcrições usando diversos métodos e salva os resultados (transcrição, status, metadados) em outra base de dados do Notion.

Funcionalidades

  • Integração com Notion: Lê links de vídeos de uma base de dados de origem e escreve os resultados em uma base de dados de destino.
  • Extração de Transcrição Multi-método: Tenta extrair transcrições na seguinte ordem de preferência:
    1. YouTube Transcript API: Utiliza a API oficial para buscar transcrições geradas automaticamente ou manualmente.
    2. yt-dlp (Legendas): Baixa arquivos de legenda (VTT) disponíveis usando yt-dlp.
    3. yt-dlp (Áudio) + Whisper: Baixa o áudio do vídeo usando yt-dlp e o transcreve usando o modelo Whisper da OpenAI (requer ffmpeg).
    4. Web Scraping (Básico): Tenta encontrar dados de legenda embutidos na página do vídeo (implementação básica).
  • Seleção Automática de Método: Utiliza o primeiro método bem-sucedido para obter a transcrição.
  • Verificação de Dependências: Checa quais métodos de extração estão disponíveis com base nas bibliotecas instaladas.
  • Logging Detalhado: Registra todas as etapas do processo, sucessos, falhas e avisos no console e no arquivo sistema_notion.log.
  • Configuração Flexível: Utiliza variáveis de ambiente (arquivo .env) para configurar chaves de API e IDs de databases.

Pré-requisitos

  • Python: Versão 3.8 ou superior recomendada.
  • ffmpeg: Necessário se você planeja usar o método de transcrição via Whisper (Método 3). Instruções de instalação podem ser encontradas em ffmpeg.org.

Dependências

As seguintes bibliotecas Python são necessárias:

  • requests: Para interações com APIs HTTP.
  • openai: Para interagir com a API da OpenAI (Whisper e potencialmente outros modelos).
  • python-dotenv: Para carregar variáveis de ambiente do arquivo .env.
  • youtube-transcript-api (Opcional): Necessária para o Método 1.
  • yt-dlp (Opcional): Necessária para os Métodos 2 e 3.
  • whisper (Opcional): Necessária para o Método 3 (a biblioteca da OpenAI, openai-whisper).
  • beautifulsoup4 (Opcional): Necessária para o Método 4.

Você pode instalar todas as dependências (incluindo as opcionais que deseja usar) com pip:

pip install requests openai python-dotenv youtube-transcript-api yt-dlp openai-whisper beautifulsoup4
# Ou crie um arquivo requirements.txt e use: pip install -r requirements.txt

Configuração

  1. Clonar o Repositório:

    git clone <url-do-seu-repositorio>
    cd <nome-do-repositorio>
  2. Criar Arquivo .env: Crie um arquivo chamado .env na raiz do projeto e adicione as seguintes variáveis:

    # Chave da API da OpenAI (Obrigatório)
    OPENAI_API_KEY="sk-..."
    
    # Token de Integração Interna do Notion (Obrigatório)
    # Crie em: https://www.notion.so/my-integrations
    NOTION_API_TOKEN="secret_..."
    
    # ID da Database do Notion de Origem (Obrigatório)
    # Onde os links dos vídeos são adicionados. Deve ter uma coluna "Name" (Title) para o link e "Created Date" (Created time).
    NOTION_SOURCE_DATABASE_ID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    
    # ID da Database do Notion de Destino (Obrigatório)
    # Onde os resultados serão salvos. Deve ter colunas para: Título (Title), Link (URL), Transcrição (Text), Status (Select), Método Usado (Select), Data Processamento (Date), Página Original (Relation com a DB de origem).
    NOTION_RESULT_DATABASE_ID="yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
  3. Obter Chaves e IDs:

    • OpenAI API Key: Obtenha em platform.openai.com/api-keys.
    • Notion API Token: Crie uma integração interna em www.notion.so/my-integrations. Certifique-se de compartilhar as databases de origem e destino com sua integração.
    • Notion Database IDs: O ID de uma database pode ser encontrado na URL da página da database no Notion. É a parte entre o último / e o ?v=. Ex: https://www.notion.so/your-workspace/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx?v=... -> ID: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.

Uso

Após configurar o arquivo .env e instalar as dependências, execute o script principal:

python main.py 

(Substitua main.py pelo nome real do seu script principal, se for diferente).

O script irá:

  1. Carregar as configurações do .env.
  2. Verificar as dependências instaladas.
  3. Buscar novos vídeos na database de origem do Notion.
  4. Para cada vídeo encontrado:
    • Verificar se já foi processado (consultando a database de destino).
    • Se não foi processado, tentar extrair a transcrição usando os métodos disponíveis em ordem.
    • Salvar o resultado (transcrição, status, método usado, etc.) na database de destino do Notion.
    • Atualizar as estatísticas de processamento.
  5. Exibir um resumo das estatísticas no final da execução.

Fluxo de Trabalho Detalhado

  1. Busca no Notion (Origem): O script consulta a NOTION_SOURCE_DATABASE_ID buscando por páginas que contenham um link válido do YouTube na propriedade "Name".
  2. Verificação de Processamento: Para cada link encontrado, o script verifica na NOTION_RESULT_DATABASE_ID se já existe uma entrada para aquele link, evitando reprocessamento.
  3. Tentativa de Transcrição:
    • Método 1 (API): Tenta obter a transcrição via youtube_transcript_api.
    • Método 2 (Legendas): Se o Método 1 falhar, tenta baixar legendas VTT com yt-dlp.
    • Método 3 (Áudio + Whisper): Se os Métodos 1 e 2 falharem, tenta baixar o áudio com yt-dlp e transcrevê-lo com whisper (limitado a vídeos de até 30 minutos por padrão).
    • Método 4 (Scraping): Se os Métodos 1, 2 e 3 falharem, tenta uma extração básica via web scraping.
  4. Registro no Notion (Destino): O resultado (transcrição ou status de erro) e os metadados (link, método usado, data) são salvos como uma nova página na NOTION_RESULT_DATABASE_ID.
  5. Logging: Todas as ações e resultados são registrados no arquivo sistema_notion.log.

Observações

  • Limites de API: Esteja ciente dos limites de uso das APIs do Notion e da OpenAI.
  • Whisper: O modelo Whisper pode consumir recursos significativos (CPU/GPU e memória), especialmente para vídeos mais longos.
  • yt-dlp: Requer ffmpeg para conversão de áudio no Método 3.
  • Web Scraping: O Método 4 é básico e pode falhar facilmente se a estrutura da página do YouTube mudar.

About

Trata-se de uma ferramenta local de resumo, que possui uma taxa de sucesso dependendo das licenças de algumas plataformas. Então não será útil para todos os links inseridos. Resuma vídeos, noticias, materiais na nuvem, podcasts, e explore ou adicione outras funcionalidades. Confira o README.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages