[用户脚本] 强制 Twitter 网页版播放最高画质视频

2020-08-14 20:22:07 +08:00
 flyhaozi

由于 Twitter 不支持手动调节视频画质,再加上谜一般的画质选择规则,至少我自己在使用 Twitter 时大部分情况下看到的视频都是渣画质。于是我就写了个很简单的脚本来让 Twitter 强制播放最高画质的视频。

Greasyfork | Github

使用

  1. 首先需要一个用户脚本管理器,比如Tampermonkey
  2. 使用上面的链接安装脚本
  3. 安装 Block Service Workers (Chrome) 或者 Service Worker Control (Firefox) 等扩展来取消 Twitter 的Service Worker并且阻止其再注册
  4. 重新打开 Twitter 网页,如果脚本加载成功,网页右下角会出现"HD"标志,控制台也会在视频加载时输出相关的信息

限制

只有 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 注册和脚本自身的功能应该可以合在一起做成一个扩展,也欢迎大家在此脚本基础上或者使用类似的思路开发更好用的工具。

6868 次点击
所在节点    分享创造
4 条回复
codehz
2020-08-14 20:29:36 +08:00
不只是加载变慢吧。。还会导致没有推送了
learningman
2020-08-14 20:36:31 +08:00
pwa 被取消了影响还是挺大的吧
flyhaozi
2020-08-14 20:51:37 +08:00
@codehz
@learningman

我刚刚在注册了 service worker 的情况下用 violentmonkey 加载成功脚本了😂
看起来可能是用户脚本管理器的问题,之前应该多试几个的
flyhaozi
2020-08-14 21:10:55 +08:00
@codehz
@learningman

我发现我脚本的问题还是很大,别把我上面说的所有东西当真😂
让帖子先沉一沉,我再想想要怎么改

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/698341

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX