youtube - replace js rules with scriptlets

This commit is contained in:
Andrey Meshkov
2020-10-12 19:00:32 +03:00
parent 43ab0488c8
commit f14aaeeddc
2 changed files with 9 additions and 21 deletions

View File

@@ -14,11 +14,8 @@
! @@||youtube.com/get_video_info
! !#endif
! YT fix using json-prune, prune only 1 level
! Commented out - not needed anymore
! youtube.com#%#//scriptlet("json-prune", "adPlacements playerAds")
! These two rules seem to be working okay.
! Commented out for now in order to test the smart override function
! ||youtube.com/*/base.js$replace=/(playerResponse\.adPlacements|playerResponse\.playerAds)/_ad/
! ||youtube.com/*/base.js$replace=/(playerAds|adPlacement[a-zA-Z]+)/_da/
! This one handles an XHR request for YT player data
! smart JSON override: https://gist.github.com/ameshkov/0c5148f243ffe9d8e40fd9ee11f142f4
! smartJSONParseOverride('adPlacements', [], /.*/);
! smartJSONParseOverride('playerAds', [], /.*/);
! youtube-nocookie.com,youtube.com#%#(function(){var overrideObject=function(obj,propertyName,overrideValue){var overriden=false;for(var key in obj)if(obj.hasOwnProperty(key)&&key===propertyName){obj[key]=overrideValue;overriden=true}else if(obj.hasOwnProperty(key)&&typeof obj[key]==="object")if(overrideObject(obj[key],propertyName,overrideValue))overriden=true;return overriden};var smartJSONParseOverride=function(propertyName,overrideValue,reStack){var realParse=JSON.parse;JSON.parse=function(text,reviver){var obj=realParse(text,reviver);if(!obj)return obj;var stackTrace=(new Error).stack;if(reStack.test(stackTrace))if(overrideObject(obj,propertyName,overrideValue));return obj}};smartJSONParseOverride("adPlacements",[],/.*/);smartJSONParseOverride("playerAds",[],/.*/)})();