尝试执行yt = YouTube(URL)时,pytube模块出错

时间:2019-06-18 22:03:14

标签: python 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'```

1 个答案:

答案 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()参数的值。