首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当我尝试使用pytube仅下载Youtube视频的音频时,为什么我一直收到错误消息?

当我尝试使用pytube仅下载Youtube视频的音频时,为什么我一直收到错误消息?
EN

Stack Overflow用户
提问于 2020-10-26 12:23:07
回答 2查看 105关注 0票数 0

我正在尝试使用pytube下载视频的音频,但我一直收到一个我不理解的错误。

我的代码是:

代码语言:javascript
运行
复制
from pytube import YouTube
lista_de_videos = ["https://www.youtube.com/watch?v=iYYRH4apXDo"]

for video in lista_de_videos:
    yt = YouTube(video)
    yt.streams.get_audio_only().download('/Users/applemacosx/Downloads')

我一直收到的错误是:

代码语言:javascript
运行
复制
/Users/applemacosx/PycharmProjects/pythonProject6/venv/bin/python /Users/applemacosx/PycharmProjects/pythonProject6/download.py
Traceback (most recent call last):
  File "/Users/applemacosx/PycharmProjects/pythonProject6/venv/lib/python3.8/site-packages/pytube/extract.py", line 288, in apply_descrambler
    stream_data[key] = [
  File "/Users/applemacosx/PycharmProjects/pythonProject6/venv/lib/python3.8/site-packages/pytube/extract.py", line 290, in <listcomp>
    "url": format_item["url"],
KeyError: 'url'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/applemacosx/PycharmProjects/pythonProject6/download.py", line 84, in <module>
    yt = YouTube(video)
  File "/Users/applemacosx/PycharmProjects/pythonProject6/venv/lib/python3.8/site-packages/pytube/__main__.py", line 92, in __init__
    self.descramble()
  File "/Users/applemacosx/PycharmProjects/pythonProject6/venv/lib/python3.8/site-packages/pytube/__main__.py", line 132, in descramble
    apply_descrambler(self.player_config_args, fmt)
  File "/Users/applemacosx/PycharmProjects/pythonProject6/venv/lib/python3.8/site-packages/pytube/extract.py", line 300, in apply_descrambler
    cipher_url = [
  File "/Users/applemacosx/PycharmProjects/pythonProject6/venv/lib/python3.8/site-packages/pytube/extract.py", line 301, in <listcomp>
    parse_qs(formats[i]["cipher"]) for i, data in enumerate(formats)
KeyError: 'cipher'

Process finished with exit code 1

有人能给我解释一下我哪里做错了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-03 15:54:18

keyerror:'cipher'问题在很久以前就已经在pytube存储库中修复了。您只需从存储库链接重新安装pytube

代码语言:javascript
运行
复制
pip uninstall pytube
pip install git+https://github.com/nficano/pytube
票数 1
EN

Stack Overflow用户

发布于 2020-10-26 13:57:03

这样试试:

代码语言:javascript
运行
复制
from pytube import YouTube
yt=YouTube(link)
t=yt.streams.filter(only_audio=True).all()
t[0].download(/path)

参考资料:- Download audio from YouTube using pytube

你要做的第一件事是:

代码语言:javascript
运行
复制
pip3 uninstall pytube
`pip3 install pytube3`

您也可以尝试使用pytubex

在到处找这个之后。这是我找到的唯一有解决方案的线索。这个问题似乎是由于pytube3文件夹中的两个文件造成的,即extract.py和ciphers.py。你需要修改其中的一些代码。访问https://github.com/nficano/pytube/issues/641

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64531494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档