Skip to content

Latest commit

 

History

History
167 lines (133 loc) · 8.98 KB

README.md

File metadata and controls

167 lines (133 loc) · 8.98 KB

AboutInstallationAuthenticationBuild

Sample Webp

About

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
  • Lookup songs from any of the four online sources
  • Search using natural language or strict search by title/artist/album
  • Parse all tracks from an online link, with track/album/playlist links supported
  • Open songs in preview sidebar that can view large cover art, preview audio, show full metadata
  • Add songs to Queue (see below)

Search Webp

Local Explorer
  • Upload files from your computer or scan all audio files in a folder
  • View file metadata and technical audio specs in-depth
  • Edit file metadata live, including option to change cover art!
  • View file spectrogram using Spek
  • Convert between flac, mp3, aac, alac, vorbis, opus with control over bitrate
  • Add songs to Queue (see below)

Local Webp

Queue
  • Matching between all possible combinations of online sources (e.g., convert Spotify and YouTube to Deezer equivalents)
  • Download tracks from Deezer, Qobuz, or Youtube with maximum quality
  • Inspect downloaded tracks using Spek, a spectrogram tool
  • Run custom terminal tools on tracks using wildcards

Queue Webp

Installation

To install the app, download the first zip from Releases.

Option 1

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).

Option 2

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.

Authentication

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.

Searching and Converting

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.

Downloading

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.

Additional Notes:

  • 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).

Retrieving Tokens

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.

Build

Only relevant for developers who wish to customize source code.

To build and run the project on Visual Studio, see development wiki.