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

Posted

技术标签:

【中文标题】Python下载具有特定文件名的youtube【英文标题】:Python download youtube with specific filename 【发布时间】:2018-05-18 20:57:21 【问题描述】:

我正在尝试以这种方式使用pytube 下载 youtube 视频:

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

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

【问题讨论】:

下载后为什么不重命名文件? 我认为应该有办法做到这一点......重命名不是首选 【参考方案1】:

更新:

该功能现已添加。您现在可以使用下面提到的功能而无需下载存储库。

旧答案:

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

【讨论】:

【参考方案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')`

【讨论】:

以上是关于Python下载具有特定文件名的youtube的主要内容,如果未能解决你的问题,请参考以下文章

python使用正则表达式寻找具有特定后缀的文件

Python请求发送具有特定部分的文件

Python获取具有特定扩展名的目录中的最新文件

如何在Python中的目录中查找具有特定文件扩展名的所有文件

python 查找具有特定扩展名的目录中的所有文件

使用 Python 读取 Excel 文件,如何获取具有指定列名的特定列的值?