Возможно ли многопоточное скачивание видео с ютуба через yt-dlp?
Качаю видео с ютуба через yt-dlp, вначале нормально а потом режет скорость до 1mb, местами прыгает до нормальных скоростей но в основном качает очень долго. Интересно можно ли качать видосы в многопоточном режиме через эту программу?
Вроде как есть варианты сделать нужное кол во копий этой программы и запускать скачивание, но проблема в том что видео будет качаться с нуля а не с нужных отрезков, потом еще делать что бы все с одной команды запускалось, потом что бы все отрезки соединялись, еще найти как сделать что бы качались нужные отрезки, короче муторно очень, есть у кого нормальные варианты, или может кто то уже решал такое?
youtube-dl не был написан с учетом какой-либо многопоточности. Для реализации этого потребуется переписать всю архитектуру.
yt-dlp по-прежнему остается однопоточным приложением, в котором все выполняется последовательно.
Viktor T2, Тк а если просто сделать копии программы и запускать с одной команды их все, только проблема в том что нужно будет качать отрезками, а это пока что не понятно как сделать
kaktak255,
" видео будет качаться с нуля а не с нужных отрезков, потом еще делать что бы все с одной команды запускалось, потом что бы все отрезки соединялись, еще найти как сделать что бы качались нужные отрезки"
- это весьма сложно сделать
В теории вроде и не сложно(но это не точно).
1) Нагуглить как качать отрезками, когда то давно искал и видел на каком то форуме писали об этом но решения не нашел там, может в итоге и нельзя качать отрезками
2) Нагуглить как получить длительность видео.
3) Получить вывод проги длительности видео с терминала, делить длительность на колво выбранных потоков, получаем отрезки откуда и до куда качать.
4) Создаем столько команд сколько надо потоков, с нужными отрезками и именами файлов, yt-dlp_1 .. yt-dlp_2 .. yt-dlp_3
5) Создаем штук 30 копий файлов один раз и включаем столько сколько нужно будет потоков.
6) Тут надо запускать но не знаю как сделать что бы запускались все и не было ожидания конца работы предыдущей команды, а так все команды готовы.
7) Если все прокатит и будет качаться как надо, то останется только склеить все видосы.
kaktak255,
"4) Создаем столько команд сколько надо потоков, с нужными отрезками и именами файлов, yt-dlp_1 .. yt-dlp_2 .. yt-dlp_3
5) Создаем штук 30 копий файлов один раз и включаем столько сколько нужно будет потоков."
Качать ютуб в несколько потоков с одного ip - скорей всего сразу черная метка от гугля.
Поэтому нужны будут прокси.
С проксями свои проблемы.
Прокси тоже детектят (есть разные способы) и банят.
PS
я тут два года назад все куки в браузере удалил,
потом 2 месяца капчи разгадывал, светофоры, велосипеды, ...
поэтому это еще вопрос, ты будешь бороться с гуглем или гугль уже поборол тебя
бери прямую ссылку на контент с помощью ключа --get-url и загружай своими инструментами по своим правилам
p.s. гугл борется с автоматизациями, ему это не выгодно так как рекламу показывать надо а качальщики и альтернативыные плееры это их убыток. поэтому сомневаюсь что готовые способы тебе предоставят
сомневаюсь что тебе будет достаточно многопоточности, ведь ограничение на скорость это серверное ограничение, вполне возможно что лимит устанвливается на сгенерированную ссылку плюс ip плюс еще что то
проверь, получается ли при повторном запросе с другого ip адреса другая ссылка? если да то шансы есть, вот только нет готового приложения по скачиванию файла в несколько потоков с подстановкой разных прокси серверов для каждого потока.
"p.s. гугл борется с автоматизациями, ему это не выгодно так как рекламу показывать надо а качальщики и альтернативыные плееры это их убыток. поэтому сомневаюсь что готовые способы тебе предоставят"
Это да, раньше нормально качалось и со временем стало медленно.
И главное режут скорость бывает даже когда с браузера смотрю видео, или это у них там проблемы какие
kaktak255, конечно проблемы, россия вышвырнула гугл из страны безумными штрафами, кеширующие сервера постепенно закрываются (или отжимаются, я хз как там бизнес строился) а значит теперь трафик пойдет через узкие каналы в мир.
kaktak255, гугл регулярно ломает скорость в yt-dlp и в нём регулярно пытаются это починить. Поэтому первый очень важный совет - время от времени его надо обновлять.
kaktak255, если это от времени суток зависит, то вряд ли дело в yt-dlp. Скорее, это проблема из-за отключения Google Cloud Cache у провайдера или из-за того, что нужное видео не найдено в кэше и качается через не очень быстрый аплинк в зарубежье.