- YT uBO debugging
- when it's doing fake buffering, the first
/videoplayback is short and doesn't have video content, otherwise it's big and has video contents
- set breakpoint at
(r.backoffTimeMs || 0) in base.js
- getting
r.backoffTimeMs of 12000 when doing fake buffering
- only non-
undefined in first request, after that it's always undefined
- if client makes another request before backoff is over the response is just another backoff with the remaining time left
- i.e. not another 12 seconds, but however much time you would need to wait if you had complied with the initial backoff
- Figured it out:
- When playing a video with an ad, the client requests
/videoplayback for both the ad video and actual video right away
- When an 15s ad is served with the video, the actual video response gets a 12s backoff (even if no adblocker is detected!)
- -> even with ad blocker, client still has to wait
- ad data is in
ytInitialPlayerResponse in the watch page!
- fix?
- warm video navigation queries
https://www.youtube.com/youtubei/v1/player?prettyPrint=false
- gRPC-based: invalid request gives
Invalid value at 'context.ad_signals_info' (type.googleapis.com/youtube.api.pfiinnertube.YoutubeApiInnertube.AdSignalsInfo), \"i love ubo\"
- YT Kids
- Parents get shown an intro video on first use
- Loaded using
https://www.youtubekids.com/youtubei/v1/player?prettyPrint=false
- Yes ads on normal YT
- No ads on Kids
- The unlisted intro video has 219M views: https://www.youtube.com/watch?v=kSJOLmWBelE
- Request differences
- YTK using
youtubekids.com domain
- YTK missing
context.adSignalsInfo.bid
- still has actual signals though
- YTK missing PO token
- Can still get ads without PO token
- YTK has
context.client.kidsAppInfo: {}