Как скачать видео ютуб на питон?
Как скачать видео ютубе на питон?
Я пытался скачать видео через pytube, youtube_dl - либо ошибка или было что видео с звуком, но без картинки или просто видео файл без нечего (разные коды)
os linux ubuntu 20.04. Буду благодарен за ответ.
Ответы (3 шт):
Автор решения: Robot
→ Ссылка
from pytube import YouTube
yt = YouTube('https://www.youtube.com/watch?v=o5wC0QqqN1c') #ссылка на видео.
# yt.stream показывает какое видео ты можешь скачать
# (mp4(720) + audio или только mp4(1080) без звука).
# Сейчас стоит фильтр по mp4.
print(yt.streams.filter(file_extension='mp4'))
stream = yt.streams.get_by_itag(22) #выбираем по тегу, в каком формате будем скачивать.
stream.download() #загружаем видео.
Автор решения: FanaticExplorer
→ Ссылка
Советую перейти форк youtube-dl - yt-dlp. Синтаксис полностью идентичен youtube-dl. К тому же, разработчики youtube-dl бросили проект и сказали всем перейти на yt-dlp. Так же у него немного больше функций, больше поддерживаемых сайтов для загрузки и больше скорость.
import yt_dlp
def download(link, name='%(title)s'):
ydl_opts = {
'format': 'bestvideo+bestaudio/best', #берем самое лучшее качество видео и фото
'outtmpl': '{}.%(ext)s'.format(name), #наше выбраное имя, если его не было, то стандартное - название видео на самом сайте
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info_dict = ydl.extract_info(link, download=True)
downloaded_file_path = ydl.prepare_filename(info_dict)
print(f"Видео {downloaded_file_path} успешно загружено!")
return downloaded_file_path
print(download('https://www.youtube.com/watch?v=uHgt8giw1LY', 'Привет!'))
Вы можете ознакомиться с документацией здесь
P.S. Возможно, я немного перегнул палку. Без возвращения пути и функции можно облегчить код до:
import yt_dlp
ydl_opts = {'format': 'bestvideo+bestaudio/best'}
URLS = ['https://www.youtube.com/watch?v=uHgt8giw1LY']
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download(URLS)
Автор решения: Glagol_SpirinS
→ Ссылка
import os
from pytube import YouTube
link = input("Enter YouTube link: ")
yt = YouTube(link)
available_streams = yt.streams.filter(file_extension='mp4')
print("Available streams:")
for stream in available_streams:
resolution = stream.resolution if stream.resolution else "audio only"
fps = f", fps: {stream.fps}" if hasattr(stream, 'fps') else ""
print(f"itag: {stream.itag}, resolution: {resolution}{fps}, type: {stream.mime_type}")
itag_value = int(input("Enter itag value of desired stream: "))
stream = yt.streams.get_by_itag(itag_value)
if stream:
output_path = 'C:/Users/root/Videos'
if not os.path.exists(output_path):
os.makedirs(output_path)
stream.download(output_path=output_path)
print("Download completed!")
else:
print("Error: Stream with the specified itag value is not available.")