Python 下载具有特定文件名的 youtube
Python download youtube with specific filename
我正在尝试通过 pytube
下载 YouTube 视频:
from pytube import YouTube
YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download()
但文件名称将与原始视频名称相同。如何指定自定义文件名?
更新:
该功能现已添加。您现在可以在不下载存储库的情况下使用下面提到的功能。
旧答案:
这在当前最新版本 (v7.0.18) 中是不可能的。该功能已添加,但此后没有发布新版本。如果你想拥有这个功能,你需要下载pytube仓库:https://github.com/NFicano/pytube
如果你这样做了,你可以使用YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download(filename='filename')
它会自动添加文件扩展名,因此您不必包含它。
我是看源码找到的。在那里,我在文件 streams.py
:
中找到了函数 download
的声明
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')`
我正在尝试通过 pytube
下载 YouTube 视频:
from pytube import YouTube
YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download()
但文件名称将与原始视频名称相同。如何指定自定义文件名?
更新:
该功能现已添加。您现在可以在不下载存储库的情况下使用下面提到的功能。
旧答案:
这在当前最新版本 (v7.0.18) 中是不可能的。该功能已添加,但此后没有发布新版本。如果你想拥有这个功能,你需要下载pytube仓库:https://github.com/NFicano/pytube
如果你这样做了,你可以使用YouTube('http://youtube.com/watch?v=9bZkp7q19f0').streams.first().download(filename='filename')
它会自动添加文件扩展名,因此您不必包含它。
我是看源码找到的。在那里,我在文件 streams.py
:
download
的声明
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')`