Or use an alternative frontend, or download the videos first? Why would I pay for content that isn't monetised and thus the "creator" (for lack of a better word) gets nothing anyway? I'm not going to fund Google, they already get some from reading my (spam) emails.
They do, and invariably fail but I'd argue trying to hide an adblocker is going to be more tricky than pretending to be android, for example.
But both downloading and alternative frontends still work fine, I just got the message on youtube for the first time (only on desktop though, not android, firefox on both), minor inconvenience to run yt-dlp in an internet accessible folder and means I retain the content should their random behaviour make it unavailable in the future.
> They do, and invariably fail but I'd argue trying to hide an adblocker is going to be more tricky than pretending to be android, for example.
AFAIK thirdparty youtube clients are just a glorified webview. Also, if anything pretending to be android is way harder than pretending to be a browser. There's way more fingerprinting/attestation that's available on android than through javascript APIs.
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
>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.
I did update but it turns out the version in debian is hopelessly outdated anyway. Eventually I figured out how to install the latest version which does indeed work.