Но в ответ либо не приходит ничего, либо ошибка HTTP Error 429: Too Many Requests.
Однако, если отправлять этот запрос через браузер, то всё работает. https://www.programmersforum.rocks/t/http-error-429-too-many-requests/2533
В этой теме выяснилось, что меня благополучно забанили на ютубе. Там же сказали, что надо использовать куки браузера.
Но я понятия не имею, что это значит. Куки это, вроде, текстовые файлы. Но что с ними делать, чтобы запрос пошел? Их же там куча, наверное. Какой из них мне нужен и что с ним вообще делать?
Объясните последовательность действий (не код).
Это просто заголовок в запросе. Обычно сервер присылает заголовок Set-Cookie (или еще через JS можно), браузер сохраняет значение куда-то, и потом в запросах к этому домену отправляет это в заголовке Cookie.
Ну и можно экспортировать их из браузера например в виде текстового файла.
Если прикладывать контейнер к вебклиенту как в примере выше, то да, должно формировать заголовок на основе содержимого контейнера, и добавлять/перезаписывать если сервер попросит.
Так по ссылке youtube-dl описывает это.
Ну сколько сайт хочет, столько и ставит.
Стандартно обычно есть кука с ID сессии на сервере (там данные об авторизации и прочем состоянии) и куки всяких гуглоаналитиков, яндекс.метрик если они стоят.
Так что надо распарсить тот формат, в котором экспортированы, и добавлять. Ну и при завершении программы можно аналогично сохранять текущие куки в файл.