whoeevee / EeveeSpotify

A tweak to get Spotify Premium for free, just like Spotilife
2.4k stars 185 forks source link

[Bug] #169

Closed meepyboii closed 3 months ago

meepyboii commented 4 months ago

Is this issue appropriate?

Is this issue unique to EeveeSpotify?

Have you searched the existing issues?

Describe the bug.

Genius fallback doesnt work for some songs, even though they have genius lyrics.. Musixmatch with Genius Fallback IMG_1643 Genius IMG_1644

whoeevee commented 4 months ago

it looks like you have lyrics with Genius, but you see the "Couldn't load the lyrics for this song" message with Musixmatch. it's really weird, I've just tested, and this song has lyrics on Musixmatch, so the fallback should not occur at all. when testing with fallback, it gives me the correct Genius lyrics

try common solutions like updating the Musixmatch token, connecting to a VPN server, restarting the app, etc

meepyboii commented 4 months ago

@whoeevee, when i go into the musixmatch app it says it’s not authorized to show the lyrics, and also how do i update the token?

asdfzxcvbn commented 3 months ago

when i go into the musixmatch app it says it’s not authorized to show the lyrics, and also how do i update the token?

what? can you send a screenshot?

meepyboii commented 3 months ago

what? can you send a screenshot?

this is what happens in musixmatch even tho eevee says it has lyrics in musixmatch: IMG_1714

meepyboii commented 3 months ago

and then in spotify i get the lyrics error

yodaluca23 commented 3 months ago

and then in spotify i get the lyrics error

What country is your ip in the only thing I could think this could be would be a Musixmatch licensing thing...

Edit: Hmm not working for me though same song in US.

Edit 2: setting my VPN to Brazil it shows, so I think this is a licensing thing:

image

Edit 3: this is also replicatable in the Spotify app, also I believe why the genius fallback is not working is because the Musixmatch API is not responding with the standard no lyrics found error and so EeveeSpotify just displays what it receives anyways because it doesn't realize that it is still an error and it does not have the lyrics.

US (Genius Fallback enabled):

image

Brazil (Genius Fallback enabled):

image

Lyric provider selected as Genius (US):

image

yodaluca23 commented 3 months ago

What country is your ip in the only thing I could think this could be would be a Musixmatch licensing thing...

Edit: Hmm not working for me though same song in US.

Edit 2: setting my VPN to Brazil it shows, so I think this is a licensing thing:

image

Edit 3: this is also replicatable in the Spotify app, also I believe why the genius fallback is not working is because the Musixmatch API is not responding with the standard no lyrics found error and so EeveeSpotify just displays what it receives anyways because it doesn't realize that it is still an error and it does not have the lyrics.

US (Genius Fallback enabled):

image

Brazil (Genius Fallback enabled):

image

Lyric provider selected as Genius (US):

image

For anyone following only via E-mail, I believe I found the issue, refer to my original comment that I edited.

meepyboii commented 3 months ago

yes i’m using a us ip, but i can’t change my ip address since i’m using dns method to keep eeveespotify signed

yodaluca23 commented 3 months ago

@whoeevee I think a solution (I don't know what you have implemented right now..) check the status code received from API received from if it's ANYTHING but 200 then consider it has no lyrics and continue with fallback if enabled. If that is already what it's doing, then Musixmatch API is really dumb...

Edit: I don't have time to test API responses rn...

whoeevee commented 3 months ago

@whoeevee I think a solution (I don't know what you have implemented right now..) check the status code received from API received from if it's ANYTHING but 200 then consider it has no lyrics and continue with fallback if enabled. If that is already what it's doing, then Musixmatch API is really dumb...

Edit: I don't have time to test API responses rn...

If the tweak is unable to decode the lyrics from the Musixmatch response, it will fall back to Genius. It’s weird that the "Couldn't load the lyrics for this song" message appears with a US IP address. Send the API responses and EeveeSpotify console messages when you have time.

yodaluca23 commented 3 months ago

If the tweak is unable to decode the lyrics from the Musixmatch response, it will fall back to Genius. It’s weird that the "Couldn't load the lyrics for this song" message appears with a US IP address. Send the API responses and EeveeSpotify console messages when you have time.

When using this cURL Request, (converted from the request EeveeSpotify uses here), with a US IP the "lyrics_body" response is completely blank. With a Brazil IP, it is the correct lyrics of the song. Other than the "lyrics_body" (and other variables expected to change every request), the only other fields that are different are the copywrite field going from lyrics_copyright": "Copyright: Downtown Dmp Songs\n", to lyrics_copyright": "Unfortunately we're not authorized to show these lyrics." but also the "restricted" changes from restricted": 0, to restricted": 1, could you check the "restricted" value from each response, and in addition if it can't decode the lyrics to if "restricted" has a value other than 0, to also trigger the fallback?

cURL request template used:

    curl -G \
     --url "https://apic.musixmatch.com/ws/1.1/macro.subtitles.get" \
     --data-urlencode "track_spotify_id=1uxiaf3DUS4vpOqNGu4MzL" \
     --data-urlencode "subtitle_format=mxm" \
     --data-urlencode "q_track= " \
     --data-urlencode "usertoken=YOUR_MUSIXMATCH_USER_TOKEN" \
     --data-urlencode "app_id=mac-ios-v2.0"
whoeevee commented 3 months ago

should be fixed with d71f0b8 check https://github.com/whoeevee/EeveeSpotify/actions/runs/9603452109

yodaluca23 commented 3 months ago

should be fixed with d71f0b8 check whoeevee/EeveeSpotify/actions/runs/9603452109

It looks like musixmatch just added lyrics for that song in the US, but another song Fallen in Deep by gyrofield is also restricted here in the US, but not Brazil. When using Genius fallback playing that song, it does successfully fallback, and show the popup! But, could you make the popup less intrusive though? Or maybe add like a notice in the lyrics card instead, because, I wouldn't want to have it popup every time a restricted song comes up, I would just like to be able to read it somewhere unobtrusive, and go "Oh, I guess that's why this song doesn't have Musixmatch Lyrics".

whoeevee commented 3 months ago

the popup appears just once

yodaluca23 commented 3 months ago

the popup appears just once

Oh hmm... Then maybe add an indicater somewhere else too? So we can Identify which songs are not showing Musixmatch lyrics because of restrictions?

meepyboii commented 3 months ago

yeah like an exclamation mark like this one -> ⚠️ by the lyrics

whoeevee commented 3 months ago

implemented check out afbc8d5 (https://github.com/whoeevee/EeveeSpotify/actions/runs/9620092970)

yodaluca23 commented 3 months ago

implemented check out afbc8d5 (whoeevee/EeveeSpotify/actions/runs/9620092970)

Where is it? I don't see any difference?

yodaluca23 commented 3 months ago

implemented check out afbc8d5 (whoeevee/EeveeSpotify/actions/runs/9620092970)

Where is it? I don't see any difference?

Never minds, I'm blind, yea, that looks really good!

meepyboii commented 3 months ago

@yodaluca23 can u send a screenshot of it? i cant download it since i’m not jb

yodaluca23 commented 3 months ago

@yodaluca23 can u send a screenshot of it? i cant download it since i’m not jb

IMG_0011 IMG_0012

meepyboii commented 3 months ago

whens this tweak planning to come out??

yodaluca23 commented 3 months ago

whens this tweak planning to come out??

I believe they're usually launched alongside Spotify releases. You can just get the deb from the action and inject it yourself though.

meepyboii commented 3 months ago

can u show me how to do this?

yodaluca23 commented 3 months ago

can u show me how to do this?

Get the .deb from the linked actions. Get a Vanilla decrypted Spotify .ipa from somewhere (cough ArmConverter cough) Use Pyzule, Sideloadly, etc to inject the eeveeSpotify .deb into the Spotify .ipa. Sideload the output patched file with whatever method you want...

asdfzxcvbn commented 3 months ago

can u show me how to do this?

Get the .deb from the linked actions. Get a Vanilla decrypted Spotify .ipa from somewhere (cough ArmConverter cough) Use Pyzule, Sideloadly, etc to inject the eeveeSpotify .deb into the Spotify .ipa. Sideload the output patched file with whatever method you want...

just to put this out there

the official IPAs are made with pyzule, and decrypted with the apptesters decrypt bot (free) or femboy.party (paid)

imo using pyzule would be easier than using sideloadly thanks to the new update, you no longer need to specify Orion deb to inject, just the EeveeSpotify and SwiftProtobuf debs

meepyboii commented 3 months ago

so i sign through esign dns method. how do i do that there?

asdfzxcvbn commented 3 months ago

so i sign through esign dns method. how do i do that there?

don't even try, use a PC to inject

whoeevee commented 3 months ago

v4.3 is out