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')