Find a file
2026-01-13 18:39:41 +01:00
genius_parser update 2026-01-13 18:39:41 +01:00
tests update 2026-01-13 17:44:15 +01:00
webapp update 2026-01-13 18:39:41 +01:00
.gitignore update 2026-01-13 17:44:15 +01:00
.python-version add python version 2026-01-04 16:27:10 +01:00
artists.txt updates 2026-01-07 14:06:09 +01:00
pyproject.toml use AST not REGEX :D 2026-01-13 17:58:51 +01:00
README.md update 2026-01-07 15:45:55 +01:00
redownload.py what shit what 2026-01-07 15:22:07 +01:00
uv.lock use AST not REGEX :D 2026-01-13 17:58:51 +01:00

Rappers WordCloud :D

Praticamente crea delle wordcloud come quelle dei vecchi blog per i vari rapper italiani, utilizzando i loro testi.

Note

Il progetto è composto da due parti: un package Python per il download e un'app SvelteKit per la visualizzazione.

Installazione

# Python (richiede uv)
uv sync

# Webapp (richiede bun)
cd webapp && bun install

Utilizzo

Download testi

# Singolo artista
uv run genius-parser download https://genius.com/artists/Ensi -o lyrics/ensi

# Batch da file
uv run genius-parser batch artisti.txt -o lyrics -j 8

Tip

Usa -j 8 per aumentare il parallelismo (default: 4 download simultanei).

Webapp

cd webapp
bun run dev      # sviluppo
bun run build    # produzione

Struttura output

lyrics/<artista>/<album>/
├── canzone.txt   # testo
└── canzone.json  # metadati (titolo, album, url, data)

Configurazione

Variabile Default Descrizione
GENIUS_MIN_DELAY 1.0 Delay minimo tra richieste (sec)
GENIUS_MAX_DELAY 3.0 Delay massimo tra richieste (sec)
GENIUS_MAX_CONCURRENT 4 Download paralleli

Warning

Valori troppo bassi di delay possono causare rate limiting da parte di Genius.

Dev

Comandi sviluppo
# Test
uv run pytest

# Type check
uv run mypy genius_parser

# Lint
uv run ruff check genius_parser
uv run ruff format genius_parser