aleksey-saenko / MusicRecognizer

An Android application for music recognition that uses AudD and ACRCloud services to perform song identification.
GNU General Public License v3.0
431 stars 10 forks source link

[Feature request] Links to TIDAL #18

Closed utlaginn closed 9 months ago

utlaginn commented 10 months ago

If possible, could you please add TIDAL to the "links to music services" section?

And, of course, thank you for coding this, much appreciated!

aleksey-saenko commented 10 months ago

Hi, thanks for your suggestion! Unfortunately, It's not that easy to do. Currently, the app parse all the links in AudD service json response (it takes all the available links). Unfortunately, AudD service doesn't provide a link to Tidal. I see two ways to solve this problem. The first is to contact AudD and ask them to expand the server response (unlikely to succeed, but I'll write to them). The second way is to use a third-party service that can interconnect music services, such as odesli. There are also a couple of problems here. Firstly, it increases the overall recognition time (after receiving AudD's response, we need to send a request and await a further response from another service). Of course, we can choose not to make the request and just add a button to open website in the browser. It's very simple to do this, but I think this is not the best user experience we can achieve. If you think this is sufficient, let me know. Secondly, this is an additional dependency on another third-party service, which may stop working or change its usage policy at any time (not critical). Thirdly, interconnecting music services is useless if the track is exclusively available on the platform we are looking for (a rare case).

In general, there is really something to think about, I will try to investigate further on this topic.

utlaginn commented 10 months ago

thank you for taking the time to explain the issue in detail. i fully understand the various problems. considering tidal's small market share, the feature certainly shouldn't be a priority.

basically, a simple search button for the tidal app would be completely sufficient for me. as far as i can see from the AndroidManifest.xml, however, this is probably not possible. i'm not a coder, though.

if i think about it more closely, to get around all this, something like a configurable clipboard would certainly be practicable. at the moment, all recognized parameters/tags are copied (title - artist - album - year). if you paste this unedited into the search of the tidal app, it seems to confuse the search, too many details. if you had control over what is copied to the clipboard via the share button, the search would be easy. (e.g. only track, only album or only artist or combinations thereof). users of other obscure services would also benefit from this, I would think. however, I don't know if this is feasible and how difficult it would be to implement.

aleksey-saenko commented 10 months ago

I like your suggestion about the clipboard; it might be helpful. By the way, the sharing window may vary across different versions of Android, and some users don't have the clipboard function for tracks at all now. This feature is easy to add, with custom formatting and perhaps optional auto-insert right after recognition. I’m only worried about how to fit it into the interface and where the settings for this should be. Most likely, in the next releases, I will add some custom clipboard and the button to Odesli. In the future, I may also add optional automatic parsing of Odesli.

utlaginn commented 10 months ago

that sounds really great, i'm looking forward to it!

the settings could perhaps be integrated in a similar way to the settings for music service links, i could imagine. a simple popup with checkboxes for artist, title, album etc. a button could then appear in the interface in addition to the music services: [copy&share]. (naively speaking from the user's point of view :)

aleksey-saenko commented 10 months ago

Version 1.1.4 has been released on F-Droid with a few enhancements. Added temporary button for Odesli ("more" button on the track screen) and an ability to copy track info to the clipboard. By long-clicking on the track name, the info is copied in the format title - artist, which should be easily understood by any search engine. The sharing builder can be accessed via the share button (I've already noticed some issues with formatting in corner cases, I'll fix them in the next release). I first tried the approach with configuration templates like %title-%artist-%year (%apple_music, %spotify), but drop this to keep the interface simple.

C-O-D commented 10 months ago

Hey, the clipboard function is already very helpful for TIDAL, thanks for that. Now just a button like the one for the existing services that only transfers the song and artist as a search to the TIDAL app - would that be feasible? Personally, I don't need the function that the button only appears if the song is also available...

Best regards

aleksey-saenko commented 10 months ago

@C-O-D I like the idea of adding a search query option in case there is no direct link. Thanks for the suggestion, this feature may be added in the future. To avoid confusing users, there should probably be a setting for this. But for now, it's in the plans to integrate more services, including Tidal, by introducing direct buttons for tracks. I think this is more valuable at the moment.

C-O-D commented 10 months ago

Sounds nice, @aleksey-saenko - thanks a lot!

C-O-D commented 9 months ago

Hey @aleksey-saenko, thank you so much for adding TIDAL - it's just so great!

aleksey-saenko commented 9 months ago

You're welcome! :) Link fetching may take a few extra seconds after recognition to request Odesli service. Sometimes, the link may not be found. However, it seems to work in most cases.

utlaginn commented 9 months ago

@aleksey-saenko, many thanks for implementing this function from me too, great work!