About • Installation • Authentication • Build
A Fluent UI desktop application that helps you download lossless songs as FLACs, convert between audio formats, match songs between different online sources, edit song metadata, and more. This project was made with WinUI 3 and TemplateStudio. Under the hood, the app uses FFmpeg and APIs for Deezer, Qobuz, Spotify, and Youtube.
FluentDL is organized into three sections: Search, Local Explorer, and Queue.
Search
|
|
Local Explorer
|
|
Queue
|
To install the app, download the first zip from Releases.
The application may be installed directly using a powershell script located in the zip folder. In the root folder inside of the zip, you should see an Install.ps1
file and other files such as FluentDL_{VERSION}_x64_MSIX.msix
.
Right click on Install.ps1
and press Run with PowerShell
.
If you have already installed FluentDL before, you can directly double click to run FluentDL_{VERSION}_x64_MSIX.msix
. The release will note when this does not work (the occasion that the certificate is updated/changed).
If that option is not available, open Powershell or CMD into the root directory and run the command:
powershell.exe -executionpolicy unrestricted .\Install.ps1
The application is now installed, and you should be able to find "FluentDL" with Search or in your Apps list.
What does the Powershell script do?
Ideally, you would only need to run FluentDL_{VERSION}_x64_MSIX.msix
, which opens the official Microsoft Store installer interface. However, the certificate is self-signed because ones from certificate authorities can cost hundreds of dollars per year. The powershell script trusts the self-signed certificate on your machine and then runs the MSIX. The manual way of trusting a certificate is more work. This is also why if you have already ran the script (trusted the certificate), you can directly run the MSIX in the future.
A future solution could be deploying to the Microsoft Store directly for a smaller, one-time free.
Note
Streaming services occasionally make changes to APIs, which may result in authentication issues. Double check the Issues page for ongoing problems.
The authentication required depends on the sources and features you use.
Searches/conversions for Deezer, Qobuz, and Youtube do not require authentication.
If you are logged into the Spotify web player, you will not need to authenticate. Authentication tokens are automatically grabbed from cookies.
However, if this method fails for whatever reason, use the more reliable Spotify authentication method described in the authentication wiki.
Authentication requirements for downloading varies for the sources. The type of account (free vs subscription) may also affect the audio quality available. You do not have re-enter credentials each time because they are stored locally. They can be left alone for months or even longer, but may eventually expire or invalidate due to occasional web-player changes.
Service | Downloads |
Youtube | No Authentication Required (128 kbps OPUS, similar to 256kbps MP3) |
Deezer | Free Account (128 kbps MP3), Premium Account (320 kbps MP3 and 16bit/44.1kHZ FLAC) |
Qobuz | Free Account (30 second preview), Premium Account (up to 24bit/192khz FLAC) |
Spotify | Not Available |
Click to learn more about file sound quality
You cannot determine the quality of a file by checking its bitrate. Files can be transcoded (converted), meaning a FLAC or high-bitrate file may have originated from a low-quality source. Here is a guide on using Spek, a spectrogram tool, to verify audio file quality. Spek is bundled with FluentDL.
- As verified through spectrogram, the highest quality YouTube sources use the very efficient OPUS codec. The issue is OPUS containers, such as
.ogg
or.webm
, have poor metadata support and compatibility. FluentDL transcodes them into a FLAC in order to maintain original quality and support metadata. However, they are NOT actually lossless and is an example of transcoding. - There may not be a significant difference between 128 kbps and higher depending on your audio hardware and ear. For example, you may be content with music on Spotify Web or YouTube without subscriptions, which are both low-bitrate. ABX tests are a good way to test your limits!
- Downloading directly from Spotify is not supported. Most tools out there download low bitrate MP3s. However, there are a few Python tools that get the true sources (320 kbps Vorbis, 256 kbps AAC). Unfortunately, I could not find .NET equivalents. For FluentDL, use the convert tool to get equivalent Deezer/Qobuz/YouTube tracks, then set the output to Local (download).
Qobuz email and password is self explanatory. Some authentication methods, such as Deezer ARL, Qobuz id/tokens alternative, or Spotify developer app tokens, are not obvious.
However, tokens are not difficult to obtain: see the authentication wiki for a detailed guide.
Only relevant for developers who wish to customize source code.
To build and run the project on Visual Studio, see development wiki.