Replies: 10 comments 77 replies
-
CacheID? Or do you mean token, the requests I've seen only have a token, but not a CacheID. Can you give an example ? |
Beta Was this translation helpful? Give feedback.
-
@iscle in the interests of avoiding stepping on any toes, it might be a good idea to replace a chunk of the file ID/decryption keys above with |
Beta Was this translation helpful? Give feedback.
-
Any updates on this? Has this already been done or has it encountered a roadblock? (Nevermind, I got notified about the DMCA takedown after a deobfuscation algorithm was created.) |
Beta Was this translation helpful? Give feedback.
-
since the above user contacted me privately, I would like to add some context to this comment:
no one to my knowledge has reversed the PlayPlay code, at least not publicly. @SuisChan was close, but they only captured a binary blob rather than implementing or reversing a solution. to anyone reading this page, I would recommend to use the old Shannon code, or to pursue a Widevine solution. Any questions feel free to contact me privately. |
Beta Was this translation helpful? Give feedback.
-
Did anyone get further with this? @SuisChan do you perhaps still have the extracted code / could share what methods and tools you used to find it? |
Beta Was this translation helpful? Give feedback.
-
I was wondering if it'd be possible to use the same approach as the official Web Playback SDK (login through API key, WS communication), but handle the DRM playback through official means, like the FairPlay support in AVPlayer on Apple, some libwidevine on Linux, etc. What do you think? |
Beta Was this translation helpful? Give feedback.
-
OK according to this: the https://github.com/p0rterB/YAD/blob/cbaa733f5bf569822bf62f88ead4f0d6435b7e04/Sources/YAD.swift#L15 has anyone tried this yet? seems too good to be true. |
Beta Was this translation helpful? Give feedback.
-
@3052 I think in that code the aes part is just the file decryption, the important bit would be the unwrapKey function, seemingly implemented in c++ (decompiled) which might get taken down just like the previous guy's code. |
Beta Was this translation helpful? Give feedback.
-
Is this what you have to do decrypt the file?:
My problem is that the file_id isn't 16 bytes long (I'm guessing the |
Beta Was this translation helpful? Give feedback.
-
I found another decompilation here: https://github.com/es3n1n/re-unplayplay/blob/master/src/lib/reversals/decrypt_key.cpp |
Beta Was this translation helpful? Give feedback.
-
Hi everyone, I'm opening this thread for those who would like to participate in the reversing of the new Spotify endpoint playplay.
The points to clarify are as follows:
All these data are sent in the playplay proto (See the playplay branch).
NOTE: No of these data is mandatory ! When sniffing HTTP request from client, i noticed that some songs only send GET request so no data at all.
Actually, I could find several hash and obfuscation functions in the decompiled sources of the mobile application but without finding a direct link with playplay.
Any help will be welcome. Thanks to all who will participate.
Beta Was this translation helpful? Give feedback.
All reactions