Skip to content

Commit 1b8864a

Browse files
authored
Merge pull request #1302 from FineFindus/fix/throttling-function-regex
[YouTube] add new deobfuscation function name regex
2 parents ef1db0d + 12f7615 commit 1b8864a

3 files changed

Lines changed: 21 additions & 14 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeThrottlingParameterUtils.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,13 @@ final class YoutubeThrottlingParameterUtils {
2828

2929
// CHECKSTYLE:OFF
3030
private static final Pattern[] DEOBFUSCATION_FUNCTION_NAME_REGEXES = {
31+
/*
32+
* Matches the following text, where we want m85:
33+
*
34+
* m85=function( ... return Y[45]
35+
*/
36+
Pattern.compile("([A-Za-z0-9_\\$]{2,})=function.*return [A-Z]\\[\\d+\\]"),
37+
3138

3239
/*
3340
* Matches the following text, where we want SDa and the array index accessed:

extractor/src/test/resources/org/schabi/newpipe/extractor/services/youtube/extractor/parameterDeobf/generated_mock_0.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@
3535
"cross-origin"
3636
],
3737
"date": [
38-
"Tue, 11 Feb 2025 21:20:44 GMT"
38+
"Thu, 10 Jul 2025 21:45:34 GMT"
3939
],
4040
"expires": [
41-
"Tue, 11 Feb 2025 21:20:44 GMT"
41+
"Thu, 10 Jul 2025 21:45:34 GMT"
4242
],
4343
"origin-trial": [
4444
"AmhMBR6zCLzDDxpW+HfpP67BqwIknWnyMOXOQGfzYswFmJe+fgaI6XZgAzcxOrzNtP7hEDsOo1jdjFnVr2IdxQ4AAAB4eyJvcmlnaW4iOiJodHRwczovL3lvdXR1YmUuY29tOjQ0MyIsImZlYXR1cmUiOiJXZWJWaWV3WFJlcXVlc3RlZFdpdGhEZXByZWNhdGlvbiIsImV4cGlyeSI6MTc1ODA2NzE5OSwiaXNTdWJkb21haW4iOnRydWV9"
@@ -56,10 +56,10 @@
5656
"ESF"
5757
],
5858
"set-cookie": [
59-
"YSC\u003d-HZn8W-65YI; Domain\u003d.youtube.com; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone",
60-
"__Secure-ROLLOUT_TOKEN\u003dCNz89uH5v5DP1AEQ5bPQrsa8iwMY5bPQrsa8iwM%3D; Domain\u003dyoutube.com; Expires\u003dSun, 10-Aug-2025 21:20:44 GMT; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone; Partitioned",
61-
"VISITOR_INFO1_LIVE\u003drMJck_iy7Ks; Domain\u003d.youtube.com; Expires\u003dSun, 10-Aug-2025 21:20:44 GMT; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone",
62-
"VISITOR_PRIVACY_METADATA\u003dCgJERRIEEgAgEA%3D%3D; Domain\u003d.youtube.com; Expires\u003dSun, 10-Aug-2025 21:20:44 GMT; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone"
59+
"YSC\u003dEChAyDglccw; Domain\u003d.youtube.com; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone",
60+
"VISITOR_INFO1_LIVE\u003dxQ6sy5vZEp0; Domain\u003d.youtube.com; Expires\u003dTue, 06-Jan-2026 21:45:34 GMT; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone",
61+
"VISITOR_PRIVACY_METADATA\u003dCgJERRIEEgAgMA%3D%3D; Domain\u003d.youtube.com; Expires\u003dTue, 06-Jan-2026 21:45:34 GMT; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone",
62+
"__Secure-ROLLOUT_TOKEN\u003dCLzLgPuF46Pe9wEQncDu56GzjgMYncDu56GzjgM%3D; Domain\u003dyoutube.com; Expires\u003dTue, 06-Jan-2026 21:45:34 GMT; Path\u003d/; Secure; HttpOnly; SameSite\u003dnone; Partitioned"
6363
],
6464
"strict-transport-security": [
6565
"max-age\u003d31536000"
@@ -74,7 +74,7 @@
7474
"0"
7575
]
7676
},
77-
"responseBody": "var scriptUrl \u003d \u0027https:\\/\\/www.youtube.com\\/s\\/player\\/af7f576f\\/www-widgetapi.vflset\\/www-widgetapi.js\u0027;try{var ttPolicy\u003dwindow.trustedTypes.createPolicy(\"youtube-widget-api\",{createScriptURL:function(x){return x}});scriptUrl\u003dttPolicy.createScriptURL(scriptUrl)}catch(e){}var YT;if(!window[\"YT\"])YT\u003d{loading:0,loaded:0};var YTConfig;if(!window[\"YTConfig\"])YTConfig\u003d{\"host\":\"https://www.youtube.com\"};\nif(!YT.loading){YT.loading\u003d1;(function(){var l\u003d[];YT.ready\u003dfunction(f){if(YT.loaded)f();else l.push(f)};window.onYTReady\u003dfunction(){YT.loaded\u003d1;var i\u003d0;for(;i\u003cl.length;i++)try{l[i]()}catch(e){}};YT.setConfig\u003dfunction(c){var k;for(k in c)if(c.hasOwnProperty(k))YTConfig[k]\u003dc[k]};var a\u003ddocument.createElement(\"script\");a.type\u003d\"text/javascript\";a.id\u003d\"www-widgetapi-script\";a.src\u003dscriptUrl;a.async\u003dtrue;var c\u003ddocument.currentScript;if(c){var n\u003dc.nonce||c.getAttribute(\"nonce\");if(n)a.setAttribute(\"nonce\",\nn)}var b\u003ddocument.getElementsByTagName(\"script\")[0];b.parentNode.insertBefore(a,b)})()};\n",
77+
"responseBody": "var scriptUrl \u003d \u0027https:\\/\\/www.youtube.com\\/s\\/player\\/6e20d3a8\\/www-widgetapi.vflset\\/www-widgetapi.js\u0027;window[\u0027yt_embedsEnableIframeApiSendFullEmbedUrl\u0027] \u003d true ;window[\u0027yt_embedsEnableAutoplayAndVisibilitySignals\u0027] \u003d true ;window[\u0027yt_embedsEnableIframeApiVideoIdValidation\u0027] \u003d true ;try{var ttPolicy\u003dwindow.trustedTypes.createPolicy(\"youtube-widget-api\",{createScriptURL:function(x){return x}});scriptUrl\u003dttPolicy.createScriptURL(scriptUrl)}catch(e){}var YT;if(!window[\"YT\"])YT\u003d{loading:0,loaded:0};var YTConfig;if(!window[\"YTConfig\"])YTConfig\u003d{\"host\":\"https://www.youtube.com\"};\nif(!YT.loading){YT.loading\u003d1;(function(){var l\u003d[];YT.ready\u003dfunction(f){if(YT.loaded)f();else l.push(f)};window.onYTReady\u003dfunction(){YT.loaded\u003d1;var i\u003d0;for(;i\u003cl.length;i++)try{l[i]()}catch(e){}};YT.setConfig\u003dfunction(c){var k;for(k in c)if(c.hasOwnProperty(k))YTConfig[k]\u003dc[k]};var a\u003ddocument.createElement(\"script\");a.type\u003d\"text/javascript\";a.id\u003d\"www-widgetapi-script\";a.src\u003dscriptUrl;a.async\u003dtrue;var c\u003ddocument.currentScript;if(c){var n\u003dc.nonce||c.getAttribute(\"nonce\");if(n)a.setAttribute(\"nonce\",\nn)}var b\u003ddocument.getElementsByTagName(\"script\")[0];b.parentNode.insertBefore(a,b)})()};\n",
7878
"latestUrl": "https://www.youtube.com/iframe_api"
7979
}
8080
}

extractor/src/test/resources/org/schabi/newpipe/extractor/services/youtube/extractor/parameterDeobf/generated_mock_1.json

Lines changed: 7 additions & 7 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)