-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Playback Spotify tracks via Tidal #34
base: master
Are you sure you want to change the base?
Conversation
…them via Tidal in the chosen quality. Is only enabled by setting: tidal -> spotify_proxy = true. Also tidal -> spotify_client_id and tidal -> spotify_client_secret have to be added additionally inside the config. Works with free spotify accounts.
This is a very interesting feature that I am looking forward to test out. Does this only work with other web extensions or only Iris? My only concern is the dependency on spotify. |
Sure, basically the feature is very easy and does the following:
The Spotify -> Tidal match routine is yet very easy (some would say: the low-hanging fruit), but works for me at least in 90% of the cases. It can obviously be improved later on. |
@InfinityMod Very useful! Apologize that I have not merged this pull request. I have not had much time to test it out yet. |
@InfinityMod thanks for this PR - I have implemented it on top of the latest version of @tehkillerbee (using the OAuth flow), which works. |
Hey folks, now that mopidy-spotify is apparently dead is there any way to get this PR approved (it's been open for >1 year), or are there still blockers on the way? |
@blacklight I never merged this PR, as I did not have a way to test it fully (I do not have spotify) - and since I wanted to avoid dependency on other streaming services. But since It is important however, that |
@tehkillerbee Looks like Spotify has had a not-very-developer-friendly API management in the past: https://jod.al/2016/02/18/guide-to-poor-api-management/ I think we could make sure (and test) that any exceptions or invalid results from spotipy cause proper failure (error about adding Spotify tracks propagated to upper layers of Mopidy, but no cascading failure). I would guess the track lookup/matching could also be improved (e.g. by matching album and track length, if technically possible). |
This is actually an interesting question, and after several years of headaches with
|
These lines of code explain it - it just gets song title and artist from Spotify, searches them in Tidal and uses first search result. |
@DavisNT got it - so basically it uses If the playback happens entirely on Tidal's side then I don't see any big risks of too much reliance on Spotify. I agree that metadata matching could be improved though. In my experience Spotify's metadata has its own peculiarities. Like using the |
From previous experience building a general purpose matcher against spotify, duration is the killer feature which makes things useable. Other than that I just used levenshtein distance for title and artist. It was good enough most of the time. Solving the problem in the general case is probably impossibly hard. |
I think it is time to revive this MR yet again. I will look into testing it with the latest mopidy_tidal as it could be a nice addition if spotify tracks/playlists are available through Tidal. Still not 100% sold on integrating it into mopidy_tidal. Perhaps it should live as a separate plugin? Anyways, Ill try to rebase and get it running so we have a starting point. |
Combines to best of both worlds. Spotify playlists and their tracks from the Iris GUI can now be played easily via Tidal.
Songs are proxied from Spotify to Tidal before playback.
The option is deactivated in default but can be activated by enabling it via the settings:
[tidal]
...
spotify_proxy = true
Additionally, a Spotify client-id and client-secret have to be set:
[tidal]
...
spotify_client_id = **
spotify_client_secret = **
The function also works with free Spotify accounts.