使用Udemy-dl下载Udemy已购课程时access token不识别及403报错如何解决
Udemy-dl 403报错及Cloudflare验证码问题解决步骤
无token场景Cloudflare验证码报错解决
- 优先更新udemy-dl到最新版本,旧版本对Udemy新上线的Cloudflare防护规则兼容性极差,直接覆盖本地旧版脚本文件即可。
- 本地安装与你火狐浏览器版本匹配的geckodriver驱动,执行脚本前先手动打开火狐访问Udemy官网,完成Cloudflare人机验证后保持浏览器后台运行,再启动脚本,脚本会复用浏览器的验证状态。
- 仍触发验证的话,在启动参数中添加
--captcha solver调用本地浏览器环境自动完成验证,无需接入第三方付费验证码服务。
带token场景API接口403报错解决
该报错是Udemy近期更新API校验规则导致,并非token过期,按以下步骤调整即可:
- 修正执行命令的课程链接:删除链接中的lecture、时间戳、锚点等后缀,仅保留纯课程主页地址即可,你当前使用的带lecture后缀的链接会导致脚本的课程搜索匹配逻辑异常,触发接口拦截。修正后的命令示例:
python udemy-dl.py https://www.udemy.com/course/python-course/ -k token.txt -q 1080 -o "C:\My Files" - 调整token.txt内容:不要仅存储access_token,完整复制浏览器中Udemy请求的Cookie头全部内容,包含
client_id、udemy_cache、csrf_token等所有字段,仅传access_token已不符合当前Udemy的接口校验要求。 - 保证脚本请求IP和你浏览器登录Udemy时的IP一致,Udemy会校验登录IP与接口请求IP的匹配性,IP跳变会直接返回403,若使用代理需保证浏览器和脚本使用同一个代理节点。
- 替换脚本默认请求头的User-Agent字段为你本地火狐浏览器的真实UA,udemy-dl默认UA已被Udemy加入拦截黑名单。
内容的提问来源于stack exchange,提问作者Sam Sung
相关产品推荐
相关产品推荐

