luciano
d8723f9408
upgrader: _scan_archive + _find_candidates + resolve_callback per match locale
...
Nuovo flusso: se archive_dir è passato, upgrade_folder cerca versioni HQ
del brano nell'archivio locale prima di scaricare da YouTube. Match via
Jaccard sui token del filename (soglia default 0.5). Se 1 candidato:
copia/converte diretto in mp3 320k. Se >=2 e resolve_callback presente:
chiama la callback bloccante (per la UI) con lista candidati + bitrate
+ similarity, poi rispetta la scelta (use_local / use_youtube / skip).
Fallback su YouTube se nessun match o archive_dir=None.
Test unitari sui 3 helper (_normalize_stem, _scan_archive, _find_candidates).
2026-08-02 11:54:58 +02:00
luciano
88e59ad37f
traxsource: fetch_top100 con session curl_cffi + retry + cache 15min
2026-08-01 12:01:00 +02:00
luciano
784b56682f
traxsource: _discover_top100_url + _parse_tracks con BeautifulSoup
2026-08-01 11:59:55 +02:00
luciano
e1e629f8a2
traxsource: helper _split_title_mix + _format_artists + _large_cover + eccezioni
2026-08-01 11:57:42 +02:00
luciano
a95912f78c
traxsource: GENRES + TraxsourceTrack + list_genres
2026-08-01 11:55:30 +02:00
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