4 ms·
I didn't say client, I said frontend (ie; invidious, which is not a webview nor a client), but the likely reason its easier to pretend to be android is they hav
by throwaway67743 3y ago
I didn't say client, I said frontend (ie; invidious, which is not a webview nor a client), but the likely reason its easier to pretend to be android is they have to support older versions for a long time, once you've emulated the behaviour its difficult for them to fix that
- gruez 3y ago>but the likely reason its easier to pretend to be android is they have to support older versions for a long time, once you've emulated the behaviour its difficult for them to fix that 1. Needing to support older versions is specifically why most of the client logic isn't in the app itself, it's in a javascript bundle that it receives from the server. At this point you can't pretend to be an android app making HTTP api calls. You have to either provide a fully functioning javascript execution environment, or deal with all the API changes that they throw your way through the updated javascript bundles[1]. 2. Pretending to be android is harder than you think. There's tens of thousands of system APIs available that you can call, to check for inconsistencies or implementation quirks. You can even try to fingeprint/profile the hardware (eg. GPU or DSP) itself, or the java execution environment. DRMs use the same principles to bind activation tokens to a given machine, so you can't crack a game by taking one valid token and sharing it with everyone else. [1] eg. https://github.com/ytdl-org/youtube-dl/issues/29326#issuecomment-866674128 https://github.com/ytdl-org/youtube-dl/issues/29326#issuecom...