Skip to content

About

The .NET rewrite

In September 2024, version 2.0.0 was released as a full rewrite in .NET. The previous implementation relied more heavily on spotDL behavior, but a long series of 429 rate limit errors from the Spotify API made it difficult to keep reliable downloads.

After trying the recommended mitigations described in the spotDL issue tracker, the decision was made to build a dedicated scheduler and tracking layer in .NET, while still using spotDL for the actual download and tagging.

The result is a container that focuses on:

  • predictable scheduling
  • flexible tracking rules
  • better control over the download workflow

The choice of .NET was mostly pragmatic: it matches the maintainer's day-to-day tooling and makes iteration faster.

This project works especially well together with volume-normalizer, another Docker-based tool that I built to normalize the volume of your music library using ReplayGain.

While spotify-downloader handles fetching and organizing your music, volume-normalizer takes care of keeping your library consistently balanced in terms of loudness, making both tools a good match for a complete self-hosted music pipeline.

Credits

Special thanks to the projects that make this possible: