我正在尝试用pytube下载youtube视频:
pytube
from pytube import YouTube YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download()
但是这个文件将和原来的视频同名。2我如何指定一个自定义文件名?
kyxcudwk1#
此功能现已添加。您现在可以使用下面提到的功能,而无需下载存储库。
这在当前最新的版本(v7.0.18)中是不可能的。这个特性已经被添加,但是从那以后没有新的版本发布。如果你想拥有这个特性,你需要下载pytube仓库:https://github.com/NFicano/pytube如果您已经这样做了,则可以使用YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download(filename='filename')它会自动添加文件扩展名,所以你不必包括它。我通过阅读源代码找到了它,在streams.py文件中找到了函数download的声明:
YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download(filename='filename')
streams.py
download
def download(self, output_path=None, filename=None):
所以你也可以指定一个路径。一个好的解决方案,请看landogardner的回答。
yquaqz182#
为了补充klutt的回答,自从添加了这个特性后,似乎没有新的pypi版本,所以现在你可以按照klutt的建议直接下载代码,或者,作为一个解决方案,在download()调用后手动重命名文件,例如:
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')`
zujrkrfu3#
根据文档,现在可以使用“filename”参数为要下载的流指定名称。
download(output_path=[path], filename=[name you want file to be saved as])
t40tm48m4#
从pytube导入YouTube //任何视频链接名称= YouTube.YouTube(“https://youtu.be/3ZAE7YU8dK8”).标题YouTube(“http://youtube.com/watchv=9bZkp7q19f0 ').流.第一个().下载(文件名=(f'{name} .mp4 ')
4条答案
按热度按时间kyxcudwk1#
此功能现已添加。您现在可以使用下面提到的功能,而无需下载存储库。
这在当前最新的版本(v7.0.18)中是不可能的。这个特性已经被添加,但是从那以后没有新的版本发布。如果你想拥有这个特性,你需要下载pytube仓库:https://github.com/NFicano/pytube
如果您已经这样做了,则可以使用
YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download(filename='filename')
它会自动添加文件扩展名,所以你不必包括它。
我通过阅读源代码找到了它,在
streams.py
文件中找到了函数download
的声明:所以你也可以指定一个路径。
一个好的解决方案,请看landogardner的回答。
yquaqz182#
为了补充klutt的回答,自从添加了这个特性后,似乎没有新的pypi版本,所以现在你可以按照klutt的建议直接下载代码,或者,作为一个解决方案,在
download()
调用后手动重命名文件,例如:zujrkrfu3#
根据文档,现在可以使用“filename”参数为要下载的流指定名称。
t40tm48m4#
从pytube导入YouTube //任何视频链接名称= YouTube.YouTube(“https://youtu.be/3ZAE7YU8dK8”).标题YouTube(“http://youtube.com/watchv=9bZkp7q19f0 ').流.第一个().下载(文件名=(f'{name} .mp4 ')