YouTube JS Engine Tamer

To enhance YouTube performance by modifying YouTube JS Engine

目前為 2023-08-29 提交的版本,檢視 最新版本

作者
𝖢𝖸 𝖥𝗎𝗇𝗀
評價
0 0 0
版本
0.4.1
建立日期
2023-08-26
更新日期
2023-08-29
尺寸
42.1 KB
授權條款
MIT
腳本執行於

This script changes core mechanisms of the YouTube JS engine.

This script is experimental and subject to further changes.

This might boost your YouTube performance.

CAUTION: This might break your YouTube.

Note: PERF_471489_ option

  • This PERF_471489_ option refers to @nopeless's Youtube Player perf
  • The idea was good but the implementation was buggy.
  • I use a more gentle way to deal with the function to make sure no visual difference in daily usage.
  • Not performance guarantee as that script.

Technical Information quoted from from Youtube Player perf

g: the youtube player object

g.update calls g.updateValue and this is used to change aria-* for the progress bar (as well as other things)

My script adds a cache to this to check for changing values. It marks dirty=true if a value is changed. For example, if you are watching at 1:30 mark, then this value is updated to the same value, "1:30" every time you have a new frame. If you get 1:31, a variable is marked dirty and the userscript considers updating the progress bar.

g.Un is used to change the progress bar's transform (which is both a css and dom reflow, Yuck!) so this is suppressed until dirty is true. There are exactly 4 transforms used for the progress bar update, and its sequential. We can shave a few more cpu resources by checking the count of this function call instead of checking the names.

This has an effect of updating the progress bar every 1 second. As a great side effect of my amazing code the progress bar is updated on the same frame as the timestamp is updated, so it updates EXACTLY once per second, nice!

Note: The information described might not be 100% correct. This is just what nopeless discovered.