ytConfigHacks

To provide a way to hack the yt.config_ such as EXPERIMENT_FLAGS

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/475632/1361351/ytConfigHacks.js

Author
𝖢𝖸 𝖥𝗎𝗇𝗀
Version
0.4.3
Created
2023-09-19
Updated
2024-04-16
License
MIT

The script must be included from a userscript with the following metablocks

  • // @match https://www.youtube.com/*
  • // @run-at document-start
  • // @inject-into page
  • // @grant none

Then an array window._ytConfigHacks will be provided and push your function into the array.

Testing

// ==UserScript==
// @name        New1235
// @namespace   Violentmonkey Scripts
// @match       https://greasyfork.org/*
// @grant       none
// @version     1.0
// @author      -
// @description 9/19/2023, 10:41:12 AM
// @require https://update.greasyfork.org/scripts/475632/1361351/ytConfigHacks.js
// ==/UserScript==


console.log(window._ytConfigHacks)

window._ytConfigHacks.add(function(){
  console.log('test OK')
});


window.ytcsi={
  tick:function(){}
}

window.yt={}
window.yt.config_={};

ytcsi.tick;

Real Example


// ==UserScript==
// @name        YouTube: Force Animated-Rolling-Number for Live
// @namespace   Violentmonkey Scripts
// @match       https://www.youtube.com/*
// @grant       none
// @version     1.0
// @author      -
// @description 9/19/2023, 9:32:49 AM
// @run-at      document-start
// @inject-into page
// @unwrap
// @require https://update.greasyfork.org/scripts/475632/1361351/ytConfigHacks.js
// ==/UserScript==

(() => {

  let mex = 0;

  window._ytConfigHacks.add((config_) => {


    let EXPERIMENT_FLAGS = null;
    EXPERIMENT_FLAGS = config_.EXPERIMENT_FLAGS || 0;

    if (EXPERIMENT_FLAGS) {

      if (!mex) {
        mex = 1;
        console.log('EXPERIMENT_FLAGS detected')
      }

      EXPERIMENT_FLAGS.web_enable_dynamic_metadata = true;
      EXPERIMENT_FLAGS.dynamic_metadata_update_interaction_delay_period_sec = 8;


    }

  });

})();

Scripts Using this Library