Letras é uma aplicação Python desenvolvida para automatizar a coleta e organização de letras de músicas gospel. O projeto faz a raspagem de dados do letras.mus.br, processa as informações e disponibiliza acesso organizado às letras através de um banco de dados DuckDB e arquivos de texto individuais.
- Coleta automatizada de letras gospel do letras.mus.br
- Processamento multithread para coleta eficiente de dados
- Banco de dados DuckDB para armazenamento estruturado
- Arquivos de texto individuais para cada música
- Detecção inteligente de novas músicas
- Geração automática de relatórios de release
- Atualizações automáticas semanais via GitHub Actions
O projeto é atualizado automaticamente todas as semanas através do GitHub Actions. Cada release inclui:
- 📝 Arquivo ZIP com todas as letras em formato de texto (.txt)
- 📊 Banco de Dados DuckDB com dados estruturados
- 📋 Notas de Release detalhando:
- Total de músicas e artistas adicionados
- Top 5 artistas por visualizações
Você pode acessar todas as releases através da página de releases do projeto.
# Clone o repositório
git clone https://github.com/damarals/letras
cd letras
# Inicie os containers
docker-compose up -d
# Inicialize o banco de dados
docker-compose exec app poetry run python -m letras init
# Clone o repositório
git clone https://github.com/damarals/letras
cd letras
# Instale as dependências com poetry
poetry install
# Execute o coletor
poetry run python -m letras init
O projeto organiza os dados em três tabelas principais:
Cada arquivo de letra segue este formato:
<Título>
<Artista>
<Conteúdo da Letra>
Os arquivos são salvos como <Artista> - <Título>.txt
no arquivo ZIP da release.
O repositório é atualizado automaticamente toda semana através do GitHub Actions. O workflow:
- Executa testes e atualiza estatísticas de cobertura
- Coleta e identifica novas músicas
- Atualiza contagem de visualizações dos artistas
- Gera relatório detalhado das mudanças
- Cria uma nova release com:
- Arquivo ZIP atualizado com todas as letras
- Relatório de mudanças em markdown
Contribuições são sempre bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests. Se encontrar algum problema ou quiser sugerir uma melhoria, não hesite em contribuir.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Esta ferramenta é apenas para fins educacionais. Todas as letras são propriedade de seus respectivos donos e são coletadas de fontes publicamente disponíveis.