网上流传有很多不同的方法,大都失效了,闲暇之余看了看,找了两种可行的办法,这里分享下过程和思路(内容针对网页端)。
首先,找到一个网盘视频开始播放,然后打开开发者工具,在Elements面板下用左侧小箭头点选视频区域,以便定位到播放视频的元素。如下图所示,定位到一个video标签
我先尝试直接修改video标签的playbackRate属性来改变播放速度:在Console面板输入 $0.playbackRate=2,结果没有任何反馈,读取 $0.playbackRate发现还是1。
有时候读取playbackRate也会返回2,但是视频播放速度并没有变化。(这里之所以用$0而不是document.querySelector(‘video’)之类的选择器,是因为某度对video标签做了封装,在控制台没有办法获取到。)
于是,我在页面加载的js文件中查找了一下与视频相关的,发现它貌似是使用定时器不断的检查并矫正视频的播放速度。 然后我想着用fiddler进行抓包改包,把这段代码改成我想要修改的速度,但结果在刷新页面重新加载时却报了跨域错误。
这里我没有再坚持改包js文件,而是尝试去修改用户信息数据,因为如果是Svip的话就可以直接使用倍速播放了,毕竟倍速播放这种功能几乎100%是前端页面去实现的,服务器只是用一些权限信息借助前台的js代码控制了它的使用权。所以只要功能的实现处在前台,那最多只要修改服务器发来的指令就行了。经过寻找,锁定了一个接口 pan.某度.com/rest/2.0/membership/user它的返回值中包含了用户的权限信息。
接下来,我在Fiddler中添加断点,在请求返回后将is_vip和is_svip都修改为1。这时在页面中就可以正常使用倍速播放功能了。
另一种方法是偶然间突发奇想来的,当看着播放器的控制条上某度的定制菜单时,我想某度的控制条不允许我修改速度,那我用原生的行不行,于是我在页面中将video标签的control设置为true,此时在某度控制条下方看到了被遮挡的原生控制条,接着修改了下video的样式,把原生控制条置顶,通过它修改播放速度,发现成功了。代码我整理了下,可以在选中video标签后在控制台执行,以修改video的位置和样式。
[JavaScript] 纯文本查看 复制代码 let videoObj = $0
videoObj.style = 'position:fixed;width:100%;height:100%;left:0;top:0;z-index:999;background:#000'
videoObj.controls = true
document.body.append(videoObj)
【视频展示】https://www.bilibili.com/video/BV1Hd4y127Tb/
另外,最近还做了几个视频,其中有些也与pojie相关的,有兴趣的可以指导交流哈
文档的复制与下载 hhttps://www.bilibili.com/video/BV1kR4y1X79y/
视频播放之狸猫换太子 https://www.bilibili.com/video/BV1dt4y1u7SY/
一些只值半提的小限制 https://www.bilibili.com/video/BV1bP4y1m7Xx/
解题“js混淆源码乱码” https://www.bilibili.com/video/BV1fv4y1D7PX/
逆向Electron程序打开控制台 https://www.bilibili.com/video/BV16d4y1r794/
|