ytdl-core无法下载YouTube视频,抛出Invalid or unexpected token错误
问题原因与解决方法
核心原因
- YouTube更新了视频签名的加密算法,当前使用的ytdl-core版本无法适配新的签名逻辑,导致解析视频格式时抛出语法错误。ytdl-core依赖逆向工程YouTube的签名机制,而YouTube会频繁更新这部分逻辑反爬,旧版本工具自然会失效。
- 其次可能是本地依赖缓存损坏,导致sig.js文件加载异常,但这种情况概率远低于前者。
解决步骤
升级ytdl-core到最新版本
打开项目终端,执行对应命令:# npm 用户 npm install ytdl-core@latest # yarn 用户 yarn add ytdl-core@latest新版本通常会同步适配YouTube最新的签名算法。
清理依赖缓存并重新安装
如果升级后问题依旧,可能是本地依赖缓存损坏,执行以下步骤:- 删除项目根目录下的
node_modules文件夹 - 删除
package-lock.json(npm)或yarn.lock(yarn)文件 - 重新执行
npm install或yarn install
- 删除项目根目录下的
验证Node.js版本兼容性
确保Node.js版本符合ytdl-core最新版要求(官方推荐v16及以上),当前使用的v20.3.0满足要求,此步骤用于排除极端兼容问题。
内容的提问来源于stack exchange,提问作者Abdul Wadood
相关产品推荐
相关产品推荐

