7.0 KiB
Tidal-hifi
The web version of listen.tidal.com running in electron with hifi (High & Max) support thanks to widevine.
Table of Contents
- Tidal-hifi
Features
- HiFi playback (High & Max settings)
- Notifications
- Custom theming
- Custom hotkeys (source)
- Settings feature to disable certain functionality. (
ctrl+=
orctrl+0
) - API for status and playback
- Disabled audio & visual ads, unlocked lyrics, suggested track, track info, and unlimited skips thanks to uBlockOrigin custom filters (source)
- AlbumArt in integrations (best-effort)
- Custom integrations
- ListenBrainz integration
- Songwhip.com integration (hotkey
ctrl + w
) - Discord RPC integration (showing "now listening", "Browsing", etc)
- MPRIS integration
Contributions
To contribute you can use the standard GitHub features (issues, prs, etc) or join the discord server to talk with like-minded individuals.
Why did I create tidal-hifi?
I moved from Spotify over to Tidal and found Linux support to be lacking. When I started this project there weren't any Linux apps that offered Tidal's "hifi" options nor any scripts to control it. I made this app to support the highest quality audio available on the Linux platform. It used to be "hifi" but now is "High & Max".
Why not extend existing projects?
Whilst there are a handful of projects attempting to run Tidal on Electron they are all unappealing to me because of various reasons:
- Lack of maintainers/developers. (no hotfixes, no issues being handled etc)
- Most are simple web wrappers, not my cup of tea.
- Some are DE-oriented. I want this to work on WM's too.
- None have Widevine working at the moment
Sometimes it's just easier to start over, cover my own needs and after that making it available to the public :)
Installation
Dependencies
Note that you need a notification library such as libnotify or dunst for the software to work properly.
Using releases
Various packaged versions of the software are available on the releases tab.
Snap
To install with snap
you need to download the pre-packaged snap-package from this repository, found under releases:
-
Download
wget <URI> #for instance: https://github.com/Mastermindzh/tidal-hifi/releases/download/1.0/tidal-hifi_1.0.0_amd64.snap
-
Install
snap install --dangerous <path> #for instance: tidal-hifi_1.0.0_amd64.snap
Arch Linux
Arch Linux users can use the AUR to install tidal-hifi:
trizen tidal-hifi-bin
Flatpak
To install via Flatpak run the following command:
flatpak install flathub com.mastermindzh.tidal-hifi
Nix
To install with Nix run the following command:
nix-env -iA nixpkgs.tidal-hifi
Using source
To install and work with the code on this project follow these steps:
- git clone https://github.com/Mastermindzh/tidal-hifi.git
- cd tidal-hifi
- npm install
- npm start
Integrations
tidal-hifi comes with several integrations out of the box.
You can find these in the settings menu (ctrl + =
by default) under the "integrations" tab.
Integrations with other projects that are not included natively:
- i3 blocks config - My dotfiles where I use this app to fetch currently playing music (direct commit)
- neptune third party plugins & theming
Known bugs
last.fm doesn't work out of the box. Use rescrobbler as a workaround
The last.fm login doesn't work, as is evident from the following issue: Last.fm login doesn't work. However, in that same issue you can read about a workaround using rescrobbler. For now, that will be the default workaround.
DRM not working on Windows
Most Windows users run into DRM issues when trying to use tidal-hifi. Nothing I can do about that I'm afraid... Tidal is working on removing/changing DRM so when they finish with that we can give it another shot.
Special thanks to
- Castlabs For maintaining Electron with Widevine CDM installation, Verified Media Path (VMP), and persistent licenses (StorageID)
Donations
You can find my Github sponsorship page at: https://github.com/sponsors/Mastermindzh
Images
Settings window
User setups
Some of our users are kind enough to share their usage pictures. If you want to see them or possibly even add one please do so in the following issue: #3 - image thread.