使用 Python 和 pafy 下载 YouTube 媒体/音频
在本文中,我们将了解如何使用 **pafy** 模块提取 **Youtube** 视频的详细信息并在不同格式中下载它们。 请访问链接以获取官方文档。
使用以下命令安装 **pafy** 模块
pip install pafy
如果您运行上述命令,则在成功安装 **pafy** 模块后,将生成以下结果。
Collecting pafy Using cached https://files.pythonhosted.org/packages/b0/e8/3516f761558525b00d3eaf73744eed5c267db 20650b7b660674547e3e506/pafy-0.5.4-py2.py3-none-any.whl Installing collected packages: pafy Successfully installed pafy-0.5.4
通过运行以下命令检查您是否可以导入 **pafy** 模块。
import pafy
如果您没有发现任何错误,则说明已完成。 否则,安装以下模块以解决问题。
pip install youtube-dl
如果您运行上述命令,则在成功安装 **youtube-dl** 模块后,将生成以下结果。
Collecting youtube-dl Using cached https://files.pythonhosted.org/packages/b1/ec/fe552181d6bd05a9e5b6b51f6f7ea4fed9f12 1ce595d788217e59318e47c/youtube_dl-2019.7.30-py2.py3-none-any.whl Installing collected packages: youtube-dl Successfully installed youtube-dl-2019.7.30
Youtube 视频详细信息
使用链接提取视频详细信息的步骤。
导入 **pafy** 模块
将视频链接存储在一个变量中。
调用 **pafy.new(url)** 方法并将结果存储在一个变量中。
使用上述变量获取有关视频的所有信息。
让我们看一个例子。
## importing the module import pafy ## url of the video url = "https://www.youtube.com/watch?v=cr3-J5wDLsM" ## calling the new method of pafy result = pafy.new(url) ## getting details like title, rating, viewcount, author, length, likes, etc.., print(f"Title: {result.title}") print(f"Viewcount {result.viewcount}") print(f"Author: {result.author}") print(f"Video Length: {result.length}") print(f"Likes: {result.likes}") print(f"Dislikes: {result.dislikes}") print(f"Description: {result.description}")
如果您运行上述程序,您将获得以下结果。
Title: Indexing Overview Viewcount 862 Author: Tutorials Point (India) Pvt. Ltd. Video Length: 167 Likes: 6 Dislikes: 1 Description: Indexing Overview Watch more Videos at https://tutorialspoint.com/videotutorials/index.htm Lecture By: Mr. Arnab Chakraborty, Tutorials Point India Private Limited
下载最佳质量的视频
导入 **pafy** 模块
将视频链接存储在一个变量中。
调用 **pafy.new(url)** 方法并将结果存储在一个变量中。
使用上述变量使用 **getbest** 方法获取视频的最佳质量,并将其存储在一个变量中。
在前面的变量上调用 **download** 方法。
请参阅以下示例。
## importing the module import pafy ## url of the video url = "https://www.youtube.com/watch?v=cr3-J5wDLsM" ## calling the new method of pafy result = pafy.new(url) ## getting the best quality of video from the 'result' using the getbest() best_quality_video = result.getbest() ## you can print it to see the quality of the video print(best_quality_video) ## download it using the download() best_quality_video.download()
如果您运行上述程序,您将获得以下结果。
normal:mp4@1280x720 26,638,008 Bytes [100.00%] received. Rate: [ 820 KB/s]. ETA: [0 secs]
您可以使用 **getbest()** 方法绕过 preftype(如 3gp、mp4、WebM 等)下载任何类型的视频,请参阅以下语法并自行尝试。
## previous steps are same best_quality_video = result.getbest(preftype = "mp4") ## next steps are same
下载最佳质量的音频
按照我们下载视频时所做的相同步骤操作。 调用 **getbestaudio()** 而不是 **getbest()**,然后使用 **download()** 方法下载它。 首先,请自行尝试。 如果您发现很难查看以下代码。## 导入模块
import pafy ## url of the video url = "https://www.youtube.com/watch?v=cr3-J5wDLsM" ## calling the new method of pafy result = pafy.new(url) ## getting the best quality of video from the 'result' using the getbest() best_quality_audio = result.getbestaudio() ## you can print it to see the quality of the video print(best_quality_audio) ## download it using the download() best_quality_audio.download()
如果您运行上述程序,您将获得以下结果。
audio:m4a@128k 27,518 Bytes [100.00%] received. Rate: [ 306 KB/s]. ETA: [0 secs] 'Indexing Overview.m4a'
广告