八月 10, 2024

AbemaTV 网页版强制 1080p

最近在abema.tv上看番的时候总觉得画面糊成一坨,打开F12一看,好家伙abema给我加载480P的清晰度。

官网是这样说的:

ご利用のインターネット通信回線が混雑している場合やネットワーク接続が不安定な場合など、通信環境の変化に応じて、映像が止まらないよう画質を落として再生される場合もあります。

根据通信环境的变化,例如当您使用的互联网通信线路拥挤或网络连接不稳定时,图像质量也可能会降低,以防止视频停止。

这玩意儿的动态分辨率的初衷大概是为了任何网络环境条件下都能流畅播放,于是就自作主张地判断你网速够不够,然后给你播放带宽相应的清晰度。

就是,难不成我100Mbps都看不起720p?码率可真高啊。

那,你不给我看1080p的,我强行改成1080p看看跑步跑的动呗,跑不动再说。

网上一搜你别说,还确实有人和我遇到了一样的问题。

https://gist.github.com/prinsss/0c7730cdac336dfeddd3f22da6ad08a5

作者用油猴脚本劫持了fetch,把其他清晰度的M3U8全部改成了1080P的
也感谢Abema请求的真规律,要是乱码决定清晰度可就猜不出来了

// ==UserScript==
// @name Abema 强制 1080p
// @description 把其他清晰度的播放列表强制指向1080p
// @version 1.1.0
// @run-at document-start
// @namespace Violentmonkey Scripts
// @match https://abema.tv/*
// @grant none
// ==/UserScript==

const originalFetch = window.fetch

window.fetch = (...args) => {
  const regex = /\/\d+\/playlist\.m3u8/

  if (typeof args[0] === 'string' && args[0].match(regex)) {
    args[0] = args[0].replace(regex, '/1080/playlist.m3u8')

    // console.log(args[0])
}

return originalFetch(...args)
}

确实,非常的好用,值得推荐