About • Installation • Build • Authentication
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
|
Note
Tip: change the number of threads in settings for significantly faster conversions, matching, and downloading.
This project is deployed using MSIX, which installs the application on Windows. To install this application, 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.
Your machine should have the ability to develop WinUI 3 applications. The simplest setup method is using the Visual Studio Installer and selecting Windows application development.
Then, open the Solution file .\FluentDL\FluentDL.sln
using Visual Studio. It should prompt you to install the correct .NET SDK. If not, install the latest .NET 8 SDK.
An experimental package must be installed seperately. The package can be found here. Installation instructions for these packages can be found here under the Visual Studio tab.
In order to deploy the application, follow Project > Publish > Create App Packages
and sign it with a certificate.
The pre-built FFmpeg executable is found at ./FluentDL/Assets/ffmpeg/bin and contains many additional codecs, such as libopus and libvorbis.
You may use your own FFmpeg binaries, but note that libopus is required for Youtube's highest quality source.
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.
- 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.