获取Youtube视频详细信息时Pytube抛出错误

问题描述

运行代码时用于下载YouTube视频或获取视频详细信息。我遇到以下错误

    C:\Users\ankit\PycharmProjects\tube\venv\Scripts\python.exe C:/Users/ankit/PycharmProjects/tube/main.py
Traceback (most recent call last):
  File "C:\Users\ankit\PycharmProjects\tube\main.py",line 2,in <module>
    yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')
  File "C:\Users\ankit\PycharmProjects\tube\venv\lib\site-packages\pytube\__main__.py",line 91,in __init__
    self.prefetch()
  File "C:\Users\ankit\PycharmProjects\tube\venv\lib\site-packages\pytube\__main__.py",line 183,in prefetch
    self.js_url = extract.js_url(self.watch_html)
  File "C:\Users\ankit\PycharmProjects\tube\venv\lib\site-packages\pytube\extract.py",line 143,in js_url
    base_js = get_ytplayer_config(html)["assets"]["js"]
KeyError: 'assets'

Process finished with exit code 1

使用此代码

    from pytube import YouTube

yt = YouTube('http://youtube.com/watch?v=9bZkp7q19f0')

print(yt.title)

print(yt.streams)

解决方法

此错误现已在pytube存储库中修复。只需从存储库中进行重新安装就可以了。

const fse = require('fs-extra');

const srcDir = `path/to/file`;
const destDir = `path/to/destination/directory`;

// To copy a folder
fse.copySync(srcDir,destDir,function (err) {
  if (err) {
    console.error(err);
  } else {
    console.log("success!");
  }
});
,

我认为,当官方文档的前两个步骤失败时,您的库可能会损坏。我实际上无法重现您的错误,并且从库中的其他各个模块收到导入错误。

ImportError:无法从“ pytube.compat”导入名称“ quote”

当我解决这个问题时,我得到了:

ImportError:无法从“ pytube.compat”导入名称“ urlencode”

我放弃了这一点。

我似乎还记得以前在处理youtube内容时遇到过相同或相似的问题。您可以按照以下错误操作并尝试修复导入,也可以仅将其命名为一天并尝试使用“ youtube-dl”库:

点安装youtube_dl

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...