HTTP Error 429: Too Many Requests

и что эта обёртка делала бы?

То, что надо автору. Просто видео скачивать через вызов youtube-dl, а не самому велосипедить.

ну я так и делал сначала.
но это ведь такая лютая кривь. Это толком не работает.

Почему? :thinking:

например, как получить информацию о видео, зная только его ID?

Там есть разные флаги упрощающие парсинг вывода, есть вывод инфы о видео в JSON:

-j, --dump-json ... print JSON information. See the "OUTPUT TEMPLATE" for a description of available keys.

https://github.com/ytdl-org/youtube-dl/blob/master/README.md#embedding-youtube-dl

youtube-dl makes the best effort to be a good command-line program, and thus should be callable from any programming language. If you encounter any problems parsing its output, feel free to create a report.

Ну и уже есть библиотеки-обертки для разных языков. Можно их взять или делать на их основе.
google.com/search?q=youtube-dl+c%23

            YouTubeDL ytdl = new YouTubeDL();
            var result = await ytdl.ExtractInfoAsync("https://www.youtube.com/watch?v=BaW_jenozKc") // extracts info and downloads

            if (result is Video video)
            {
                Console.WriteLine(video.Title);
            }

А если на Питоне делать, то можно сразу сам youtube-dl как библиотеку использовать.

ok, предположим, что обертку написать возможно.
Но это ведь не отменяет возможность возникновения проблемы, с которой, собственно, и началась данная тема.
Тогда в чём разница? :thinking: C чего вы взяли, что при использовании обёртки такой проблемы не будет?

Ну да, для нее предлагается только куки браузера давать.
Но наверняка других решенных проблем хватает ) Или если вдруг ютуб что-то поменяет и старый алгоритм скачивания перестанет работать, то скорее всего достаточно быстро выйдет обновление, не надо самому разбираться.

У youtube-dl есть фатальный косяк. На ютубе есть видео, которые, зачем-то, разбиты на чанки. При скачивании таких видео, youtube-dl иногда начинает сыпать ошибками 404, но всё-равно продолжать скачивать. В результате, у скачанного файла не сходится хэш. Но если скачать это видео заново, то ошибок уже не будет и хэш сойдётся :thinking: Почему он не может остановиться при ошибках или заново перекачать битый чанк - мне искренне не понятно :scream: Я считаю это неприемлемым (даже с учётом гитхабности и я никому ничем не обязанности). Особенно для программы, которая существует и активно обновляется, как вы сказали, уже 10 лет :scream: Ну это просто позор :man_facepalming: Что, за 10 лет никто в интернете хэш не додумался проверить :dizzy_face: И ладно бы когда ты об этом знаешь. Но если ты об этом не знаешь, ты видишь ошибки. Скачал, открыл - видео открылось - доволен. А на самом деле оно в каких-то местах битое, а ты об этом даже не догадываешься. Ну как так-то? :man_facepalming:
И еще youtube-dl не может перехватывать стримы. Там есть какая-то команда, которая должна выдавать ссылку на плейлист m3u8. Она его и выдаёт. Только это нифига не он :clkollol: Если скачать этот файл и переименовать его из .m3u8 в .ts, то мы получим последний двухсекундный чанк текущего стрима :dizzy_face: Это что, автор так прикололся или не справился с управлением? Зачем делать функцию, которая не работает? :thinking:
Еще, до кучи, нельзя скачать начало стрима, который сейчас идет.
А моя программа делает это как Танос с перчаткой и камнями бесконечности.
(тут должна быть пафосная фотка щёлкающего Таноса, но я не нашел нормальную)
Только без перчатки и без камней :grinning:
Почему этого не мог сделать автор youtube-dl - не понятно. Там даже никакого API не надо. Всё нужное есть на странице с видео. Просто скачать страницу и распарсить.
По-этому, я никому не рекомендую писать и использовать уже написанные обёртки над youtube-dl :grinning: Лучше напишите нормальную программу :grinning:

Наверно стоит сообщить им о нем ) Issues · ytdl-org/youtube-dl · GitHub
И/или самому разобраться, исправить, отправить pull request.

Справедливости ради, следует отметить, что у 4K video downloaderа раньше тоже был такой косяк. Он выдавал ошибки, но продолжал пытаться скачивать. Рядом со скачанным файлом иногда оставались tmp-файлы. Это было признаком того, что видео скачалось криво. Но я-то этого не знал! Я открываю видос, смотрю, он открылся. Думаю, ок. И, ничего не подозревая, удаляю эти tmp-файлы. Это я уже потом посмотрел скачанный стрим и узнал об этом. Хотел перекачать, а его уже удалили. И это в программе, за которую просят 700 рублей! :scream: Разработчик, ты чё, ку-ку, или как?! :man_shrugging: У меня свой бесплатный говнокод, на коленке собранный, работает лучше, чем ваше профессиональное решение за 700 рублей! :man_facepalming:
В недавних версиях они это, вроде как, пофиксили. Стали качаться те видео, которые раньше не качались. Судя по всему, они где-то прознали про способ со скачиванием и парсингом страницы :slight_smile:
Но почему они за 700 рублей не прикрутили куки или, хотя-бы, ручную вставку кода страницы (как у меня) - не ясно. Теперь, из-за капчи, 4K video downloader тоже не работает.

Слушайте, меня паходу разбанили :dizzy_face: Такое может быть? Запросы снова пошли!

А чего б нет? Что ютуб хочет, то и делает.
Наверно не навсегда банит, чтобы потом нормальным юзерам с тем же IP не мешать.

Вот, кстати, никогда не понимал бана по IP. Если забанили одного, то забанены будут все.

Бан временный. Обычно есть лимит, количество дневных запросов что-то около 100 в час, 1000 в день и 5 000 в месяц. Ещё есть бан на на VPN когда много разных клиентов с одного IP.

Каптча оставлена для нормальных юзеров если их много за NAT, но там тоже не все так хорошо.

Я уже 4 месяца этой своей программой качаю, а забанили только сейчас. Качать стало очень удобно. Получил список видео канала и просто тыкай по кнопке :slight_smile:
Странно только, что банан выписали ночью, а не в момент, когда запросы активно шли :thinking:
Надо будет в программе счётчик запросов запилить :slight_smile: