我有一个名为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'```
答案 0 :(得分:0)
您使用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()
参数的值。