ehs*_*adi 5 python youtube pytube
我正在尝试通过pytube以下方式下载YouTube视频:
from pytube import YouTube
YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download()
Run Code Online (Sandbox Code Playgroud)
但该文件将具有与原始视频名称相同的名称。如何指定自定义文件名?
更新:
该功能现已添加。您现在可以使用下面提到的功能,而无需下载资源库。
旧答案:
在当前最新版本(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):
Run Code Online (Sandbox Code Playgroud)
因此,您显然也可以指定路径。
有关良好的解决方法,请参见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')`
Run Code Online (Sandbox Code Playgroud)