Turns out, request without playbackContext and, in particular,signatureTimestamp always lead to 403 "Access Denied" after decrypting signature. This value seems like doesn't change too often, so temporarily hard-coding it just to fix problem as soon as possible. But later need to fetch it from youtube. Also browser metadata isn't mandatory for request, instead its better to specify language so server responses always be same
Turns out, request without playbackContext and, in particular,signatureTimestamp always lead to 403 "Access Denied" after decrypting signature. This value seems like doesn't change too often, so temporarily hard-coding it just to fix problem as soon as possible. But later need to fetch it from youtube.
Also browser metadata isn't mandatory for request, instead its better to specify language so server responses always be same

kkdai/youtube