Pytube. Скачать несколько разные вариантов видео, определенный качеств и аудио

Как в pytube cкачать аудио лучше качество из возможного и скачать отдельно видео с самым лучшим качеством, 480p. Всего должно получиться скаченных 3 файла

для примера вот видео: https://www.youtube.com/watch?v=ldNTlFebTqE https://www.youtube.com/watch?v=x8gBfEDoEbY


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

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

Вы можете воспользоваться методами filter и order_by.

Пример:

from pytube import YouTube


yt = YouTube('https://www.youtube.com/watch?v=ldNTlFebTqE')
streams = yt.streams

video_best = streams.order_by('resolution').desc().first()
video_480 = streams.filter(res='480p').desc().first()
audio_best = streams.filter(only_audio=True).desc().first()

Для скачивания вызовите метод download. Советую сохранять под разными именами, чтобы случайно не перезаписать скачанный ранее Stream:

video_best.download()
video_480_res.download()
audio_best.download()


P. S.:
Видео в максимальном разрешении часто не имеет аудиодорожки, поэтому Вам придётся вставлять её вручную, если это необходимо.

На примере ffmpeg (из консоли):

ffmpeg -i video.webm -i audio.webm -map 0:v -map 1:a -c copy out.webm

UPD:
Лучшее видео (до 720p), имеющее аудиодорожку, можно получить так:

video = streams.filter(progressive=True).desc().first()
→ Ссылка
Автор решения: Андрей

возможно с помощью pytube скачать видео с YouTube через свой аккаунт?

→ Ссылка