luciano
|
7feda99720
|
traxsource: fixture HTML + bs4 dep + script refresh generi
|
2026-08-01 11:54:55 +02:00 |
|
luciano
|
5fc9f8ac2b
|
converter: modulo ffmpeg WAV -> MP3 con VBR/CBR + stop
|
2026-07-21 17:44:36 +02:00 |
|
luciano
|
0f7cd24703
|
tagger: modulo mutagen per ID3 tag + cover art da URL
|
2026-07-15 12:54:26 +02:00 |
|
luciano
|
0949df031a
|
youtube: search_youtube via yt-dlp ytsearchN + parse JSON
|
2026-07-14 17:18:54 +02:00 |
|
luciano
|
2771fa8075
|
spotify: search_artist_discography con dedupe top-tracks+album
|
2026-07-14 17:16:19 +02:00 |
|
luciano
|
252d76b907
|
spotify: search_tracks() free-form con limit configurabile
|
2026-07-14 17:14:02 +02:00 |
|
luciano
|
cc5716e87d
|
spotify: aggiunto search_track() per feature Beatport
|
2026-07-14 16:26:25 +02:00 |
|
luciano
|
3f31e240be
|
beatport: fetch_top100 con curl_cffi + retry + cache 15min
|
2026-07-14 16:24:43 +02:00 |
|
luciano
|
13c8e60712
|
beatport: parse JSON → list[BeatportTrack]
|
2026-07-14 16:22:21 +02:00 |
|
luciano
|
f1e57905c1
|
beatport: estrazione __NEXT_DATA__ + eccezioni tipizzate
|
2026-07-14 16:20:21 +02:00 |
|
luciano
|
4221a5992b
|
beatport: BeatportTrack dataclass con display + spotify_query
|
2026-07-14 16:18:38 +02:00 |
|
luciano
|
70cdfe8983
|
beatport: GENRES + list_genres() con test
|
2026-07-14 16:17:09 +02:00 |
|
luciano
|
e1aaa83fe9
|
beatport: fixture HTML + curl_cffi + script refresh generi
|
2026-07-14 16:14:55 +02:00 |
|
luciano
|
c037da4901
|
test: setup pytest infra per feature Beatport
|
2026-07-14 16:03:33 +02:00 |
|