Рубрики
Без рубрики

Python Script для загрузки видео YouTube

Python Script для загрузки видео YouTube. Библиотека Pybube Python для загрузки видео YouTube. Мы можем скачать только аудио и все видео из списка воспроизведения.

Автор оригинала: Pankaj Kumar.

Мы можем использовать Pybyube Библиотека Python Чтобы загрузить видео Youtube. Это простой и легкий модуль Python без сторонних зависимостей.

Установка библиотеки PYTUBE

Если вы посмотрите на Pypi, есть два типа библиотек Pybeube: Pytube и Pybeube3. Когда я установил библиотеку Pybeube, я получил ошибку в импорте своего класса YouTube.

# pip install pytube

# python3.7

>>> from pytube import YouTube
Traceback (most recent call last):
  File "", line 1, in 
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pytube/__init__.py", line 16, in 
    from pytube.streams import Stream
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pytube/streams.py", line 17, in 
    from pytube import extract
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pytube/extract.py", line 7, in 
    from pytube.compat import quote
ImportError: cannot import name 'quote' from 'pytube.compat' (/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pytube/compat.py)
>>>

Я не сталкивался с любыми вопросами с библиотекой Pybeube3.

# pip install pytube3

# python3.7

>>> from pytube import YouTube
>>> 

Итак, я бы порекомендовал вам использовать библиотеку PYTUBE3. Я использую то же самое в этом руководстве.

Python Script для скачивания видео YouTube

Первый шаг – импортировать класс YouTube из модуля PYTUBE.

from pytube import YouTube

Следующий шаг – создать объект YouTube, передавая URL-адрес видео Youtube.

youtube_video_url = 'https://www.youtube.com/watch?v=DkU9WFj8sYo'

yt_obj = YouTube(youtube_video_url)

Объект YouTube открывает разные потоки от URL видео YouTube. Мы можем получить всю информацию по потоке, используя следующий код.

for stream in yt_obj.streams:
    print(stream)

Он будет производить следующий вывод.





















Немногие важные моменты:

  • «Прогрессивный» поток содержит файл, имеющий как аудио, так и видео.
  • «Адаптивный» поток содержит звук или видео.
  • Атрибуты «MIME_TYPE», «RES» и «FPS» могут использоваться для фильтрации потока, который мы хотим скачать.

Мы можем использовать функцию фильтра () для извлечения только определенных потоков. Это полезно, когда мы хотим скачать все разные разрешения видео Youtube.

filters = yt_obj.streams.filter(progressive=True, file_extension='mp4')

for mp4_filter in filters:
    print(mp4_filter)

Выход:



Есть несколько полезных функций, чтобы получить самые высокие и самые низкие видеоролики.

filters = yt_obj.streams.filter(progressive=True, file_extension='mp4')

filters.get_highest_resolution()
filters.get_lowest_resolution()

Последний шаг – вызвать метод загрузки () на определенный поток для загрузки видео YouTube.

filters.get_highest_resolution().download()

Видео будет загружено в текущем рабочем каталоге. Имя видеофайла будет названию видео YouTube.

Заполните код для загрузки самого высокого разрешения YouTube Video

from pytube import YouTube

youtube_video_url = 'https://www.youtube.com/watch?v=DkU9WFj8sYo'

try:
    yt_obj = YouTube(youtube_video_url)

    filters = yt_obj.streams.filter(progressive=True, file_extension='mp4')

    # download the highest quality video
    filters.get_highest_resolution().download()
    print('Video Downloaded Successfully')
except Exception as e:
    print(e)

Указание загруженного видео файла YouTube и имя

Функция Download () принимает разные параметры для изменения местоположения видеофайла и имени.

download(output_path='/Users/pankaj/temp', filename='yt_video.mp4')

Загрузка только аудио с URL YouTube Video

Иногда мы хотим только аудио с YouTube Video URL. Мы можем использовать get_audio_only () Функция для этого.

from pytube import YouTube

youtube_video_url = 'https://www.youtube.com/watch?v=DkU9WFj8sYo'

try:
    yt_obj = YouTube(youtube_video_url)

    yt_obj.streams.get_audio_only().download(output_path='/Users/pankaj/temp', filename='audio')
    print('YouTube video audio downloaded successfully')
except Exception as e:
    print(e)

Получение информации на Youtube видео метаданные

Мы также можем получить информацию о метаданных на YouTube, такую как название, описание, длина видео, рейтинг, имя автора, количество просмотров и т. Д.

from pytube import YouTube

try:
    yt_obj = YouTube('https://www.youtube.com/watch?v=DkU9WFj8sYo')

    print(f'Video Title is {yt_obj.title}')
    print(f'Video Length is {yt_obj.length} seconds')
    print(f'Video Description is {yt_obj.description}')
    print(f'Video Rating is {yt_obj.rating}')
    print(f'Video Views Count is {yt_obj.views}')
    print(f'Video Author is {yt_obj.author}')

except Exception as e:
    print(e)

Загрузка нескольких видео YouTube

Если вам нужно загрузить несколько видео, мы можем легко продлить программу.

from pytube import YouTube

list_urls = ['https://www.youtube.com/watch?v=DkU9WFj8sYo',
             'https://www.youtube.com/watch?v=D5NK5qMM14g']

for url in list_urls:

    try:
        yt_obj = YouTube(url)

        yt_obj.streams.get_highest_resolution().download()
    except Exception as e:
        print(e)
        raise Exception('Some exception occurred.')
    print('All YouTube videos downloaded successfully.')

Если вы указываете параметры имени файла и каталога в функции «Загрузить ()», убедитесь, что они отличаются для каждого видео, чтобы избежать переопределения.

Загрузите все видео с плейлиста YouTube

Мы можем использовать класс плейлиста для загрузки всех видео с плейлиста YouTube.

from pytube import Playlist

try:
    playlist = Playlist('https://www.youtube.com/playlist?list=PLcow8_btriE11hzMbT3-B1sBg4YIc-9g_')

    playlist.download_all(download_path='/Users/pankaj/temp')

except Exception as e:
    print(e)

Заключение

Библиотека Python Pytube проста и мощна. Мы можем скачать видео Youtube в разных разрешениях, только аудио и все видео из списка воспроизведения.

Ссылка : Pypi Pybyube3 страница