| Nsig/sig - Special tokens which must be passed to API calls, generated by code in base.js (player code). This is what has broken for yt-dlp and other third party clients. Instead of extracting the code that generates those tokens (eg using regular expressions) like we used to, we now need to run the whole base.js player code to get these tokens because the code is spread out all over the player code. PoToken - Proof of origin token which Google has lately been enforcing for all clients, or video requests will fail with a 403. On android it uses DroidGuard, for IOS, it uses built in app integrity apis. For the web it requires that you run a snippet of javascript code (the challenge) in the browser to prove that you are not a bot. Previously, you needed an external tool to generate these PoTokens but with the Deno change yt-dlp should be capable of producing these tokens by itself in the near future. SABR - Server side adaptive bitrate streaming, used alongside Google's UMP protocol to allow the server to have more control over buffering, given data from the client about the current playback position, buffered ranges, and more. This technology is also used to do server-side ad injection. Work is still being done to make 3rd party clients work with this technology (sometimes works, sometimes doesn't). Nsig/sig extraction example: - https://github.com/yt-dlp/yt-dlp/blob/4429fd0450a3fbd5e89573... - https://github.com/yt-dlp/yt-dlp/blob/4429fd0450a3fbd5e89573... PoToken generation: - https://github.com/yt-dlp/yt-dlp/wiki/PO-Token-Guide - https://github.com/LuanRT/BgUtils SABR: - https://github.com/LuanRT/googlevideo EDIT2: Addeded more links to specific code examples/guides |
Now you know.