钉钉云课堂实现倍速播放 & 提取视频文件 & 提取直播回放

前言

钉钉的云课堂比较反人类,不仅有水印影响观看体验而且不支持倍速播放。看讲课比较慢的老师的视频,无疑是一种煎熬。过于慢的速度,反而会影响效率。

今天因为实在忍不了原速了,稍微研究了一下钉钉的微应用,然后就有了这篇博文。

思路

云课堂的本质是一个(套壳的)网页,限制特别多,例如不允许开控制台等等。我们可以从另一个角度入手,中间人注入 js 来实现目的。

提示

该方法仅 PC 端可用(其实手机也不是不行)。

对于有相关基础的读者应该没什么难度。

对于没有相关基础的读者,按照步骤一步步走就可以,本博文会尽可能面向新手详细地写明每一步。

开始

一、安装 Fiddler

如果你已经安装了 Fiddler,可以跳过此步骤。

到官网下载并安装 Fiddler,或者也可以点击这里来下载 Fiddler。

如果你不知道什么是 Fiddler,那么可以看下面这段话,当然略过也没有关系。

Fiddler 是一个用于 HTTP 调试的代理服务器应用程序,最初由微软 Internet Explorer 开发团队的前程序经理 Eric Lawrence 编写。Fiddler 能捕获 HTTP 和 HTTPS 流量,并将其记录下来供用户查看。它通过使用自签名证书实现中间人攻击来进行日志记录。

– Wikipedia

二、设置 Fiddler 捕获 HTTPS 流量

打开 Fiddler,点击顶栏 “Tools”,在弹出的菜单中点击 “Options…”。

在弹出的窗口中切换到顶部的 “HTTPS” 菜单,勾选 “Capture HTTPS CONNECTs” 和 “Decrypt HTTPS traffic” 复选框,然后点击 OK。

勾选后会弹出安装证书的窗口,确认即可。

三、中间人注入

在 Fiddler 中按下 Ctrl+R。弹出一个代码编辑器窗口。

在代码编辑器窗口按下 Ctrl+F,在弹出的窗口中输入 OnBeforeResponse 并按下回车。代码编辑器窗口会跳转到相关的位置。找到 OnBeforeResponse 函数。


复制下面的代码,并粘贴到下图中的位置,然后按下 Ctrl+S 来保存

var sToInsert = "<script src='https://res.wx.qq.com/mmbizwap/zh_CN/htmledition/js/vconsole/3.0.0/vconsole.min.js'></script><script>var vConsole = new VConsole();</script>"
oSession.utilDecodeResponse();
oSession.utilReplaceOnceInResponse('</head>', sToInsert + '</head>', 0);

四、直接在钉钉内倍速播放

打开钉钉的云课堂,点开一个视频,可以看到右下角多了一个绿色按钮。点击它。

点击之后,弹出了一个菜单。

将下面的代码粘贴进下图中标明的位置并点击右侧的 “OK” 按钮。

在点击右下角绿色按钮弹出的控制台按照上一步的方法输入以下代码:

document.querySelector("video").playbackRate=2.0

点击 OK。可以将钉钉内的视频变为二倍速。代码中的 2.0 可以换成其他的数字。

五、获取视频地址和下载视频

还是右下角的绿色按钮弹出的菜单,输入下面的代码

console.log(document.querySelector("video").src);

点击 OK 后,上面的列表出现了一个地址,这个地址就是该云课堂视频的源文件地址。复制这个地址,在浏览器打开即可下载该视频。或者,也可以用 Potplayer 直接打开该地址来倍速播放。

附:提取直播回放

  1. 完成前文的步骤一和二
  2. 打开直播回放
  3. 在 Fiddler 中按 下 Ctrl+F,搜索 .m3u8,按回车,找到高亮的 m3u8 文件。
  4. 右键复制地址,随便找一个 m3u8 下载器下载即可。

附:使用 Potplayer 倍速观看视频

推荐使用 Potplayer 来倍速观看视频。Potplayer 是一款很好用的播放器。

下载并安装 Potplayer 后,在 Potplayer 的左上角点击如图的菜单,或者直接按下 Ctrl+U

在弹出的窗口中粘贴刚才的复制的那个视频链接,点击确定。

可以看到,视频已经开始播放。

按下 C 键来加速,按下 X 键来减速,按下 Z 键来恢复原速。

按下按键后在视频左上角可以看到当前的倍速速率。

你也可以使用 IDM 等下载工具下载视频以后在本地观看。

附 2:一劳永逸地实现倍速播放

感谢评论区读者提供的改进:直接注入视频增强脚本来一劳永逸地实现倍速播放,而不用每次都输代码。

方法请参考 www.cnblogs.com/1024th/p/12317158.html

 

评论

  1. 匿名
    Windows Chrome

    为什么在右下角没有出现绿色按钮呢

    5月前
    2020-3-02 11:26:14
  2. 匿名
    Windows Chrome

    牛逼牛逼

    6月前
    2020-2-22 0:35:12
  3. CWorld
    Windows Chrome

    所有问题都解决了,但是好像不好复制出来,控制台点不动

    6月前
    2020-2-19 20:22:35
  4. 匿名
    Windows Chrome

    楼主知道第三步操作完以后打开视频没出现绿色按钮是怎么了嘛

    6月前
    2020-2-18 21:03:44
    • 匿名
      Windows Chrome

      我也是同样问题!

      5月前
      2020-3-02 11:41:06
  5. 匿名
    Windows Firefox

    感谢作者提供思路,这里给出一个一劳永逸的办法:https://www.cnblogs.com/1024th/p/12317158.html

    6月前
    2020-2-16 16:24:53
    • solstice23 博主
      Windows Chrome

      Orz,这样直接注入那个视频增强的脚本会更方便一点,已经补充在文末,感谢

      6月前
      2020-2-16 16:46:34
  6. 匿名
    Windows Chrome

    console.log(document.querySelector(“video”).src);
    blob:https://saas.daxue.dingtalk.com/e0f9dec1-5483-48a7-95a7-4a10ac7c3f6d
    undefined
    最后解析出这个,有点懵,大佬晓得是那个地方出问题了吗

    6月前
    2020-2-15 8:39:34
    • solstice23 博主
      Windows Chrome

      可能钉钉不同的视频用了不同的解析方案,我这里不是分段解析的。
      把最后一段代码换成 document.querySelector("video").playbackRate=2.0,直接在钉钉窗口内 2.0 倍速播放

      6月前
      2020-2-15 11:45:14
      • yy
        Windows Chrome

        谢谢,可以了

        6月前
        2020-2-15 15:16:07
  7. DING
    Windows Edge

    请问为什么再操作完第三步后,打开钉钉的结果是“服务错误”??

    6月前
    2020-2-14 18:41:32
    • solstice23 博主
      Windows Chrome

      先登录钉钉再打开 Fiddler,登录钉钉的时候不要打开 Fiddler

      6月前
      2020-2-17 14:06:45
  8. even
    Android Chrome

    牛逼,反手就是一个赞,简直拯救人类,我代表全国人民感谢你

    6月前
    2020-2-14 18:36:05
  9. yuy
    Windows Chrome

    支持

    6月前
    2020-2-14 16:41:14

发送评论 编辑评论


				
上一篇
下一篇