YouTube: Force html5_exponential_memory_for_sticky

To prevent YouTube to change the video quality automatically during YouTube Live Streaming.

目前為 2024-04-28 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

作者
𝖢𝖸 𝖥𝗎𝗇𝗀
評價
0 0 0
版本
0.5.8
建立日期
2023-07-17
更新日期
2024-04-28
尺寸
3.8 KB
授權條款
MIT
腳本執行於

This script is the first script on Greasy Fork to focus on the setting html5_exponential_memory_for_sticky in WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_WATCH.

During YouTube live streaming, the video quality might change as YouTube engine detected your browser might be not that powerful (network slow) to handle the high video quality, but indeed the cause might be due to the overwhelmed chat messages in chat iframe (e.g. Pekora Ch. 兎田ぺこら's popular 生配信).

This script will enable the hidden feature html5_exponential_memory_for_sticky for the player settings such that the video quality will not freely automatically changed.

You can still change the video quality settings using the buttons in the player.

Compatible with YouTube EXPERIMENT_FLAGS Tamer

Notes

Turn ON the following:

  • html5_exponential_memory_for_sticky becomes true

Turn OFF the following:

  • html5_perf_cap_override_sticky
  • html5_ustreamer_cap_override_sticky
  • html5_always_apply_default_quality_cap
  • html5_apply_pbr_cap_for_drm
  • manifestless_post_live_ufph
  • manifestless_post_live
  • hls_for_vod
  • mweb_remove_360p_cap

Testing

((s)=>[...yt.config_.WEB_PLAYER_CONTEXT_CONFIGS.WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_WATCH.serializedExperimentFlags.matchAll(
    new RegExp(`\\b(${s})=([^&=]+)\\b`,"g")
)].map(e=>e.slice(1,3))
)(`
  html5_exponential_memory_for_sticky|h5_expr_b9Nkc|html5_perf_cap_override_sticky|html5_ustreamer_cap_override_sticky|
  html5_always_apply_default_quality_cap|html5_apply_pbr_cap_for_drm|manifestless_post_live_ufph|manifestless_post_live|
  hls_for_vod|mweb_remove_360p_cap
`.replace(/\s+/g,'').replace(/\|+/g,'|'));