有道课程要过期了,研究一下怎么下载回放。
通过调试工具查看有道精品课页面元素,发现居然不是blob视频,video直接指向了一个mp4文件。 系统:Windows 浏览器:新版Microsoft Edge(Chromium内核) 工具:Windows PowerShell
正文开始
首先,尝试直接访问指向的mp4文件,发现403 Forbidden了... 看来还是做了防盗链的嘛...
![b3ca6bac1d529749b72f176b64313bbf.png](https://i-blog.csdnimg.cn/blog_migrate/399cfe8ea7c2b42da295f330f7c7cf8e.png)
回到播放页,F12切到网络选项卡刷新页面发现有个请求很长,半天都没停。点进去看看,果然是视频的缓存请求。
![3edbc584ce37d802452f79ab820562f4.png](https://i-blog.csdnimg.cn/blog_migrate/bf398e51605cf9dbd8984173a996f22c.jpeg)
右键这个请求,发现Edge提供了一个“复制为PowerShell”选项。
![77cfd4b811a28d173caf6feb01090f4e.png](https://i-blog.csdnimg.cn/blog_migrate/85d0e0fbba09669b9a8a0970f498f972.jpeg)
然后就复制出来这样一串东西
Invoke-WebRequest -Uri "https://stream.ydstatic.com/private/xuetang/202008/xxxx/xxxxx.mp4?r=xxxxxxxx" -Headers @{
"User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36 Edg/84.0.522.52"
"Accept"="*/*"
"Origin"="https://live.youdao.com"
"Sec-Fetch-Site"="cross-site"
"Sec-Fetch-Mode"="cors"
"Sec-Fetch-Dest"="empty"
"Referer"="https://live.youdao.com/live/index.html?courseId=xxxxx&lesson=xxxx&liveId=xxxx5&groupId=xxxx&token=xxxx"
"Accept-Encoding"="gzip, deflate, br"
"Accept-Language"="zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6"
}
(有些东西用xxx
代替,大家看得懂就行) 右键开始菜单,打开Windows PowerShell,直接把这一串粘进去运行,发现大概成这样
![9dec83555fe0fcac4e276f43abe53ff2.png](https://i-blog.csdnimg.cn/blog_migrate/36bff3470c6c3465ed509136c823fb4a.jpeg)
结果读取完了,啥都没有...... 网上查了一下,可以用-o
选项输出成文件。于是把指令大概改成这样试了下
Invoke-WebRequest -Uri "https://stream.ydstatic.com/private/xuetang/202008/xxxx/xxxxx.mp4?r=xxxxxxxx" -Headers @{
"User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36 Edg/84.0.522.52"
"Accept"="*/*"
"Origin"="https://live.youdao.com"
"Sec-Fetch-Site"="cross-site"
"Sec-Fetch-Mode"="cors"
"Sec-Fetch-Dest"="empty"
"Referer"="https://live.youdao.com/live/index.html?courseId=xxxxx&lesson=xxxx&liveId=xxxx5&groupId=xxxx&token=xxxx"
"Accept-Encoding"="gzip, deflate, br"
"Accept-Language"="zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6" -o "E:有道课程下载test.mp4"
}
(就是在末尾加了个空格,然后写上-o "文件路径"
,这里写的是-o "E:有道课程下载test.mp4"
)
把这一段重新粘贴到PowerShell里,等待写入字节完成,即可在路径里找到下载好的回放了
![3b5d7bda6c90af372eb76e13f0df3178.png](https://i-blog.csdnimg.cn/blog_migrate/e1da6fb73ca6fbe80c3e63228e7c99a9.jpeg)
![73655c207bd54053b986f0591e1a2568.png](https://i-blog.csdnimg.cn/blog_migrate/1dfd039e3c1c138566cfc80b305971ee.jpeg)
播放一下,发现这样下载下来还没有用户名水印 tql!
写在最后
本文所提供的方法仅用于个人学习用途,请勿用于违规盗链,二次出售等侵权行为!