python - 尝试执行 yt = YouTube(url) 时 pytube 模块出错
问题描述
我有一个名为 downloadSong 的函数,用于在给定 url 时从 youtube 下载歌曲,但它会出现错误
我试过搜索文档并阅读我,但我没有看到任何提到这个错误
def downloadSong(url):
yt = YouTube(str(url))
video = yt.streams.first()
downloadedVideo = video.download('/MusicCache')
return downloadedVideo,yt.title
预期的结果是它下载了歌曲,但它绘制了如下所示的错误:
File "C:\Users\USER\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\bot.py", line 859, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\USER\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 725, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "C:\Users\USER\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 88, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: KeyError: 's'```
解决方案
您对 pytube 的使用很好,但是有一个错误,如果您没有为要保存 youtube 视频的文件指定名称,它会崩溃,因为 pytube 无法创建默认名称。我有一个类似的问题。
尝试这个:
from pytube import Youtube
def downloadSong(url):
yt = YouTube(str(url))
video = yt.streams.first()
downloadedVideo = video.download(output_path='/MusicCache', filename='MySong')
return downloadedVideo, yt.title
如果这不起作用,可以尝试使用要保存歌曲的文件夹的绝对路径来获取函数中output_path
参数的值download()
。
推荐阅读
- mysql - 一对一映射获取空值 Spring boot JPA Hibernate
- python-3.x - 如何从一个句子中只打印python中的int?
- kubernetes - 也无法在具有最新 kubernetes 版本的 gke 集群中使用高级行为配置
- python - 在 sqlalchemy 中使用 sum 和 case 时出错
- flutter - 如何在底部和所有侧面创建带有盒子阴影的容器
- github - 在 Github Desktop 中意外删除了存储 - 不知道如何取回它
- firebase - Flutter 如何将多个身份验证提供者链接到一个 Firebase 帐户?
- javascript - 尝试在 `emcc -s ONLY_MY_CODE` 时设置不存在的设置
- pandas - 遍历两个 Pandas Dataframes + 创建新列
- jestjs - 使用 Jest 模拟 Fetch API 中的问题