由于 Twitter 不支持手动调节视频画质,再加上谜一般的画质选择规则,至少我自己在使用 Twitter 时大部分情况下看到的视频都是渣画质。于是我就写了个很简单的脚本来让 Twitter 强制播放最高画质的视频。
只有 Twitter 的 Service Worker 没有注册的时候可以加载正常使用本脚本,取消 Service Worker 的注册以后 Twitter 页面的加载速度会变慢。Greasyfork 上其他针对 twitter.com 的脚本也都存在这个问题。
Twitter 网页版是使用HLS来播放视频的。对一个视频的请求会返回一个 master playlist,其中包含多个不同画质 /编码的视频 index,网页根据网络、屏幕分辨率等条件来选择要播放的画质。
脚本通过修改返回的 master playlist 、删除其中的低画质 index 来确保 Twitter 只能选择最高画质。
我对 Service Worker 不太了解,不知道有没有办法可以在 Twitter 注册了 Service Worker 的情况下使用用户脚本,希望有大佬可以交流分享。
另外取消 Service Worker 注册和脚本自身的功能应该可以合在一起做成一个扩展,也欢迎大家在此脚本基础上或者使用类似的思路开发更好用的工具。
由于最开始只在Firefox上旧版本的Tampermonkey测试过,得出了用户脚本无法注册了Service Worker(SW)的Twitter上执行的错误结论,下面是我在Chrome和Firefox最新版上使用各个用户脚本管理器的测试结果:
tampermonkey(4.10): 不需要禁用SW,脚本可以正常执行
violentmonkey(2.12.7): 不需要禁用SW,脚本可以正常执行
如果出现CSP错误,可以尝试将高级设置里的 Modify existing content security policy (CSP) headers 选项改为 Remove entirely (possibly unsecure)
violentmonkey(2.12.7): 无论是否禁用SW都有CSP错误,脚本无法正常工作
greasemonkey(4.9): 无论是否禁用SW都有CSP错误,Twitter页面加载不出
1
codehz 2020-08-14 20:29:36 +08:00
不只是加载变慢吧。。还会导致没有推送了
|
2
learningman 2020-08-14 20:36:31 +08:00
pwa 被取消了影响还是挺大的吧
|
3
flyhaozi OP |
4
flyhaozi OP |