Python скачать YouTube с конкретным именем файла

Я пытаюсь скачать YouTube видео с pytube сюда:

from pytube import YouTube
YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download()

но файл будет иметь то же имя, что и оригинальное имя видео. Как мне указать произвольное имя файла?

4 ответа

Решение

Это невозможно в текущей последней версии (v7.0.18). Функция была добавлена, но с тех пор не было выпущено ни одной новой версии. Если вы хотите иметь эту функцию, вам нужно скачать репозиторий pytube: https://github.com/NFicano/pytube

Если вы сделали это, вы можете использовать YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download(filename='filename')

Он автоматически добавит расширение имени файла, так что вам не нужно это включать.

Я нашел это, прочитав источник. Там я нашел объявление функции download в файле streams.py:

def download(self, output_path=None, filename=None):

Таким образом, вы также можете указать путь.

Для хорошего обхода см. Ответ Landogardner.

Чтобы добавить к ответу klutt, не похоже, что с момента добавления этой функции был выпущен новый выпуск pypi, сейчас вы можете либо загрузить код напрямую, как рекомендует klutt, либо, в качестве обходного пути, переименовать файл вручную после download() позвоните, например:

import os
from pytube import YouTube

yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
yt.streams.first().download()
os.rename(yt.streams.first().default_filename, 'new_filename.ext')`

Согласно документации , теперь вы можете указать имя потока, который хотите загрузить, используя аргумент «имя файла».

      download(output_path=[path], filename=[name you want file to be saved as])

из pytube импортировать YouTube //любое имя ссылки на видео = YouTube.YouTube('https://youtu.be/3ZAE7YU8dK8').titleYouTube('http://youtube.com/watchv=9bZkp7q19f0').streams.first().download(имя файла = (f'{имя}.mp4')

Другие вопросы по тегам