PlayPlay endpoint reversing - Working Discussion #421
Replies: 10 comments 80 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 ? |
|
@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 |
|
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.) |
|
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. |
|
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? |
|
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? |
|
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. |
|
@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. |
|
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 |
|
I found another decompilation here: https://github.com/es3n1n/re-unplayplay/blob/master/src/lib/reversals/decrypt_key.cpp |

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
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.
All reactions