Как выбрать другой метод загрузки в YoutubeDL?

Добрый день! Если загрузить через youtube_dl видео какого-либо DASH формата (в моём случае 298) сразу:
from youtube_dl import YoutubeDL
with YoutubeDL({'outtmpl': 'test.mp4', 'format': '298'}) as ydl:
	ydl.download(["https://www.youtube.com/watch?v=LXb3EKWsInQ'])
, то все 90 Мб загрузятся за пару секунд.

Но если сначала получить прямую ссылку на видео этого же формата и загрузить её:
with YoutubeDL({'outtmpl': 'test.mp4'}) as ydl:
	info_dict = ydl.extract_info('https://www.youtube.com/watch?v=LXb3EKWsInQ', download=False)
	url = [i for i in info_dict['formats'] if i['format_id'] == '298'][0]['url']
	ydl.download([url])
, то эти же самые 90 Мб будут загружаться несколько минут.

Вот я и думаю, что в первом случае youtube_dl выбрал подходящий способ загрузки для видео, а во втором - не смог. Можно ли как-то самому выбрать нужный метод и загрузить через него?
  • Вопрос задан
  • 408 просмотров
Решения вопроса 1
@Setaz213 Автор вопроса
В youtube_dl решил это так:
filename = 'test.mp4'
url = '...' # Прямая ссылка на нужный формат видео
youtube_dl.downloader.HttpFD(YoutubeDL({}), {}).download(filename, {'url': url, 'downloader_options': {'http_chunk_size': 10485760}})

Загружает быстро, как мне и нужно было
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Лучше загружать видео с YouTube через библиотеку pytube. Она работает немного быстрее, чем youtube_dl. Да и кода писать всего одну строчку (не считая импорта и input'а).
from pytube import YouTube
link = input()
YouTube(link).streams.first().download()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы