no OpenLP, Quelea ou em qualquer outra aplicação.
-
Textos (
letras-txt.zip): um arquivo<Artista> - <Música>.txtpor música aprovada. Cada um traz título, artista, uma linha em branco e a letra. -
OpenLyrics (
letras-openlyrics.zip): um.xmlpor música no formato OpenLyrics. O OpenLP e o Quelea importam direto, com título e autor já nos campos certos. -
SQLite (
corpus.db): tabelasartists,songselyrics. O banco guarda tudo o que foi coletado, inclusive o que a curadoria descartou. Os dois.ziptrazem só as letras aprovadas, o resultado desta consulta:SELECT * FROM lyrics WHERE admitted = 1;
Uma letra entra no corpus (admitted = 1) quando é gospel evangélica em português: idioma português, entre 100 e 4000 caracteres, e fora das listas de palavras-chave em src/letras/filters.yaml. A coleta guarda tudo; a curadoria roda na hora da release, então você ajusta as regras sem recoletar.
Toolkit em Python (com uv). Sem banco de dados, sem Docker: o estado é o corpus.db da última release.
uv sync
uv run letras run --incremental # semanal: coleta só músicas novas
uv run letras run # reconciliação completa (recoleta tudo)
uv run letras export --out dist # gera corpus.db, os .zip e as notasConfigurável por variáveis LETRAS_ (ex.: LETRAS_DELAY, LETRAS_MAX_WORKERS).
MIT. Veja LICENSE.