95 Commits
Author SHA1 Message Date
arnef ba6bf2f34c feat: allow overriding the output directory via GODEEZ_OUTPUT_DIR
The output directory used to be fixed at ~/Music/GoDeez. config.Load
now honours GODEEZ_OUTPUT_DIR when set, with a leading ~ expanded by
hand since the shell only does that for unquoted arguments, not for
values read out of the environment. Falls back to the previous default
when unset.
2026-08-14 21:00:15 +02:00
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