Почему не работает библиотека pytube: "'YouTube' object has no attribute 'get'"

Не работает код, программа должна скачать видео

from pytube import YouTube

video_link = 'https://www.youtube.com/watch?v=8ZpVwAeLzm4'

yt = YouTube("https://www.youtube.com/watch?v=90KZnwrVMgY")
video = yt.get('mp4', '720p')
video.download('/download/')

pip install pytube3 делал


Ответы (1 шт):

Автор решения: gil9red

Когда-то метод get был в нем: https://github.com/nficano/pytube/blob/442786af48a411006a2c302410a6c2abce8ac82b/pytube/api.py#L221 но уже c октября 2017 того метода там нет, поэтому нужно использовать другие методы.

Пример:

from pytube import YouTube

url = 'https://www.youtube.com/watch?v=90KZnwrVMgY'

yt = YouTube(url)
print(f'Download video {yt.title!r}: {url}')

streams = yt.streams\
    .filter(progressive=True, file_extension='mp4', resolution='720p')\
    .order_by('resolution')

video = streams[-1]
print('Stream url:', video.url)
video.download()

PS.

Хотел бы отметить, что:

  • Нужно именно pip install pytube3 --upgrade, а не pip install pytube3, иначе будет ошибка при импорте: ImportError: cannot import name 'quote' from 'pytube.compat'
  • Нужно указывать атрибут progressive=True, чтобы получить поток с видео и аудио в одном файле
  • Лучше проверять streams, т.к. он может быть пустым, если по фильтру не нашлось потоков (см. в примере)
→ Ссылка