arnef
b1c15341fd
feat: write an m3u playlist to preserve playlist track order
...
Playlist file names carry no ordering information, so the sequence a
user curated on Deezer was lost once the tracks landed on disk (unlike
albums, which get a zero padded track number prefix). downloadTrack
now reports the output path on success as well as on skip, and
downloadAllTracks collects the per-track paths for playlist downloads
and writes them, in order, to an extended m3u file next to the audio.
Failed tracks are left out since there is nothing on disk to point at;
a write failure is reported as a warning rather than failing the run.
2026-08-14 21:00:08 +02:00
Mathis Maquenne
b1ad9b4904
docs: document packages, exported API and non-obvious logic
2026-08-06 13:04:10 +02:00
Mathis Maquenne
84dd371fdd
feat: tag wav files with id3 and info chunks
2026-08-05 22:51:43 +02:00
Mathis Maquenne
b804c5e288
feat: add wav download quality
2026-08-05 22:51:43 +02:00
Mathis Maquenne
b3777bf8eb
feat: add lossless flac to wav converter
2026-08-05 22:51:43 +02:00
Mathis Maquenne
eea049aae9
refactor: unexport internal identifiers and fix naming nits
2026-08-05 21:55:59 +02:00
Mathis Maquenne
c1775e5c04
style: prefer stdlib idioms for errors and http methods
2026-08-05 21:43:59 +02:00
Mathis Maquenne
a695fb4de3
fix: resolve bugs found in pre-release review
2026-08-05 21:33:08 +02:00
Mathis Maquenne
5bb1448650
refactor: validate limit only for artist downloads
2026-08-05 12:42:51 +02:00
Mathis Maquenne
e90a56ec53
fix: use filepath helpers for filesystem paths
2026-08-05 12:41:55 +02:00
Mathis Maquenne
66fda7424a
test: add update version and checksum tests
2026-08-05 11:50:58 +02:00
Mathis Maquenne
3fe050ea15
test: add download, store, and scraper tests
2026-08-05 11:50:30 +02:00
Mathis Maquenne
563efe78bd
test: add deezer crypto and filename tests
2026-08-05 11:49:21 +02:00
Mathis Maquenne
f8b301e24c
style: rename accessors to idiomatic names
2026-08-05 11:47:53 +02:00
Mathis Maquenne
88319ebb3c
refactor: rename updater package to update
2026-08-05 11:46:34 +02:00
Mathis Maquenne
5c95554855
refactor: consolidate download domain into download package
2026-08-05 11:46:10 +02:00
Mathis Maquenne
dbb808f371
refactor: replace fileutil with fsutil and local hashing
2026-08-05 11:42:35 +02:00
Mathis Maquenne
12dbbb5e10
refactor: move resource info rendering into downloader
2026-08-05 11:41:24 +02:00
Mathis Maquenne
dbd7837b17
refactor: fold auth and crypto into deezer domain
2026-08-05 11:40:14 +02:00
Mathis Maquenne
16c71c8688
refactor: decouple tag writers from deezer models
2026-08-05 11:37:59 +02:00
Mathis Maquenne
0ab25addd5
refactor: open track store explicitly and remove global state
2026-08-05 11:34:27 +02:00
Mathis Maquenne
714d567603
refactor: introduce typed resource kind
2026-08-05 11:33:13 +02:00
Mathis Maquenne
3ec258b876
refactor: remove dead logger package and unused fields
2026-08-05 11:31:17 +02:00
Mathis Maquenne
1fbbd60106
refactor: use track terminology instead of song
2026-07-30 12:53:03 +02:00
Mathis Maquenne
eb93d01c19
feat: add updater package for in-place self-update
2026-07-30 11:30:08 +02:00
Mathis Maquenne
785bb58cb5
feat: add buildinfo package for version information
2026-07-30 11:30:08 +02:00
Mathis Maquenne
c2f60be18e
refactor: use ARL initialism casing
2026-07-30 11:13:13 +02:00
Mathis Maquenne
09fa93f1e4
refactor: no longer require DEEZER_ARL at startup
2026-07-29 11:33:50 +02:00
Mathis Maquenne
f45ae6aee6
feat: retry with credential-based login when the ARL is invalid
2026-07-29 11:33:50 +02:00
Mathis Maquenne
56b0f404d6
feat: add internal/auth package for credential-based login
2026-07-29 11:33:50 +02:00
Mathis Maquenne
465f54e466
refactor: disambiguate blowfish crypto helper names
2026-07-29 11:28:39 +02:00
Mathis Maquenne
163fa18845
feat: add AES-ECB crypto helpers for email/password login
2026-07-29 11:28:39 +02:00
Mathis Maquenne
d50945a7ef
fix: zero-pad track numbers and show warning count in summary
2026-03-01 22:29:38 +01:00
Mathis Maquenne
08160b0290
refactor: drop config.toml and Viper, use DEEZER_ARL env var
2026-03-01 22:19:14 +01:00
Mathis Maquenne
cf699834f6
refactor: hardcode secret key in crypto package
2026-03-01 21:57:38 +01:00
Mathis Maquenne
650d578b80
refactor: remove disabled watcher feature
2026-03-01 21:56:54 +01:00
Mathis Maquenne
08b608ec80
refactor: simplify codebase (-209 lines)
2026-03-01 21:55:42 +01:00
Mathis Maquenne
cd45c3f40a
perf(downloader): fetch metadata concurrently with stream download
2026-03-01 21:29:02 +01:00
Mathis Maquenne
0a8da3d0e7
feat(tags): filter genres to avoid unusual tags
2025-09-12 14:41:29 +02:00
Mathis Maquenne
e4c421ff00
feat: add CTA after download and mention it in README
2025-09-11 00:32:42 +02:00
Mathis Maquenne
9d87f635d0
refactor(downloader): improve structure and readability
2025-09-11 00:05:17 +02:00
Mathis Maquenne
8c9b327b2c
feat(tags): fetch genre and add it to file tags with --genre
2025-09-10 16:05:53 +02:00
Mathis Maquenne
0493866141
refactor: move BPM fetching logic into provider package
2025-09-10 15:09:24 +02:00
Mathis Maquenne
523b562ed0
Merge branch 'feature/download-track' into dev
2025-09-10 11:11:40 +02:00
Mathis Maquenne
c2b4fcfa11
feat(cli): simplify output for individual songs
2025-09-10 11:10:52 +02:00
Felipe Marinho
9b23e3a8d9
feat: download single tracks ( #5 )
...
Introduces the `godeez download track <ID>` command, allowing users to download individual songs directly.
Single tracks are saved into a "Singles" folder by default to keep them organized. The README has been updated with documentation and examples for this new functionality.
2025-09-10 10:26:58 +02:00
Mathis Maquenne
cf7f76948b
chore(tags): add the version of a track to the title tag
2025-09-09 23:47:33 +02:00
Mathis Maquenne
4b2c9c92b8
chore(tags): add copyright tag
2025-09-09 10:37:56 +02:00
Mathis Maquenne
22ddb2408b
fix(media): handle empty media
2025-09-09 10:05:42 +02:00
Mathis Maquenne
3022e226ce
fix(build): comment out unfinished autostart implementation
2025-08-18 11:29:02 +02:00