Python下载具有特定文件名的youtube

时间:2017-12-05 08:54:47

标签: python youtube pytube

我尝试以pytube方式下载YouTube视频:

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

但该文件的名称与原始视频名称相同。如何指定自定义文件名?

2 个答案:

答案 0 :(得分:7)

这在当前最新版本(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的答案。

编辑:

现在添加了该功能。您现在可以使用上述功能而无需下载存储库。

答案 1 :(得分:2)

为了补充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')`