Skip to content
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

Tidal playback: Gstreamer error "Cannot recognize stream type" #824

Closed
jja2000 opened this issue Nov 8, 2021 · 6 comments
Closed

Tidal playback: Gstreamer error "Cannot recognize stream type" #824

jja2000 opened this issue Nov 8, 2021 · 6 comments

Comments

@jja2000
Copy link

jja2000 commented Nov 8, 2021

Describe the bug
I've redone the Tidal Login after an account switch and now on playing a song Gstreamer returns with the error:
image

To Reproduce
Strawberry succesfully logged into my Tidal account using OAuth and a token.
My settings are as follows:
image

Expected behavior
I expected the song I selected to play, but it did not.

System Information:

  • Operating system: Fedora 34
  • Strawberry Version: 1.0.0-87-g4daed007

Additional context
Like I said, I switched accounts. Specifically account region. After that it started happening even though I logged in succesfully

@jja2000 jja2000 changed the title Tidal playback: Gestreamer error "Cannot recognize stream type" Tidal playback: Gstreamer error "Cannot recognize stream type" Nov 8, 2021
@825i
Copy link

825i commented Nov 9, 2021

Same issue here. I can login but I get the following errors no matter what stream or quality I use:

This seems completely broken.

Account Created October 2021
Using oAuth key from Windows Desktop using Fiddler4

Quality:

Low:
Stream URL 1: Asset not ready for playback
Stream URL 2: Asset not ready for playback
Stream URL 3: This file contains no playable streams

High:
Stream URL 1: Asset not ready for playback
Stream URL 2: Asset not ready for playback
Stream URL 3: This file contains no playable streams

Lossless:
Stream URL 1: Could not determine type of Stream
Stream URL 2: Could not determine type of Stream
Stream URL 3: Could not determine type of Stream

High Res:
Stream URL 1: Could not determine type of Stream
Stream URL 2: Could not determine type of Stream
Stream URL 3: Could not determine type of Stream

Nothing works. So I would say this functionality is totally broken unless someone can prove otherwise.
Screenshot from 2021-11-09 15-23-45

@jonaski
Copy link
Member

jonaski commented Nov 9, 2021

@jja2000 Either Tidal is sending a stream URL with a unsupported format, missing a gstreamer plugin for the format, or Tidal is sending encrypted streams.

@pythonInRelay using the client ID from the Tidal windows desktop client won't work as the streams are encrypted, I think it also uses MPEG-DASH which I doubt will work.

@jja2000
Copy link
Author

jja2000 commented Nov 9, 2021

@jonaski then I'm running into the same problem as @pythonInRelay. I used the Windows method instead of Android, because I couldn't get the Token from the Android related cache files as mentioned in most tutorials for this. Should I open another issue with the Token fetching problem or should I put that somewhere else?

@825i
Copy link

825i commented Nov 9, 2021

Well this isn't going to help but I gave up with Tidal. Not only do I have to suffer with their constant Bluetooth issues on both the Desktop and Android app but their removal of the crossfade feature AND Last.fm integration, plus trying to monopoly albums like Beyonce' s Lemonade. It was already kind of the last straw. This being a PITA and them being the least transparent streaming service on the planet (and the one with the most nazi-like restrictions and weirdness). This was the straw that broke the camels back for me.

Not only is strawberry not really something I'd rather not use at all to use Tidal (seriously no offence guys) but there's no point me paying for this stupid proprietary, encrypted "Master" quality bull if it's only available on Windows basically and Windows doesn't even have high definition audio codecs like LDAC or HWA.

So I'm done with Tidal. I gave them multiple chances over the last 3 years to get it together. I cancelled my student HiFi and moved to Apple music. More music, same master quality lossless audio AND I can actually listen to that master quality from my smartphone with native DSD sampling from my DAC. Plus make use of LDAC/HWA. Not only that but student Apple Music is literally $5 a month which is half what Tidal is, and there's an app for Apple Music on the snap store which is being maintained.

I wish the best to the Strawberry devs and good luck to anyone else. After losing Freezer (free Deezer Premium HiFi) I figure it's time to pay for music, especially if it only costs $5 a month.

@jja2000
Copy link
Author

jja2000 commented Nov 11, 2021

@jonaski I updated my install and indeed it does trigger the error handled in 01f8129

Any suggestion as to what to do?

@jonaski
Copy link
Member

jonaski commented Nov 11, 2021

I think you need to seek help elsewhere, I don't really remember how I did it, and I don't really want to hand out these tokens or deal with support on how to obtain them. I made the Tidal integration without any support from Tidal or documentation, some things I just have to guess how it works. There was some talk here MusicPlayerDaemon/MPD#545 on how it could be obtained.
I think in the long run they will probably switch to encrypted streams for all applications. I've looked a bit into decrypting the streams, but I'm not an expert on encryption and it's not easy to guess what they use.
it looks like they use different AES based methods for encryption of the streams, when I use the streamurl method, a "encryptionKey" is sent back with the URL. This encryption key is base64 encoded, when it's decoded, the first part of it is a IV (used to decrypt the actual key) and the remaining part is an encrypted key, to decrypt the key itself (that you need to decrypt the streams) you need the IV (which we have) but also an additional key that is probably hard-coded in the application.

@jonaski jonaski closed this as completed Nov 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants