File tree Expand file tree Collapse file tree
extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44import org .schabi .newpipe .extractor .utils .JavaScript ;
55import org .schabi .newpipe .extractor .utils .Parser ;
66
7+ import java .util .HashMap ;
8+ import java .util .Map ;
79import java .util .regex .Pattern ;
810
911/**
2426public class YoutubeThrottlingDecrypter {
2527
2628 private static final String N_PARAM_REGEX = "[&?]n=([^&]+)" ;
29+ private static final Map <String , String > nParams = new HashMap <>();
2730
2831 private final String functionName ;
2932 private final String function ;
@@ -78,7 +81,12 @@ private String parseNParam(String url) throws Parser.RegexException {
7881 }
7982
8083 private String decryptNParam (String nParam ) {
81- return JavaScript .run (function , functionName , nParam );
84+ if (nParams .containsKey (nParam )) {
85+ return nParams .get (nParam );
86+ }
87+ final String decryptedNParam = JavaScript .run (function , functionName , nParam );
88+ nParams .put (nParam , decryptedNParam );
89+ return decryptedNParam ;
8290 }
8391
8492 private String replaceNParam (String url , String oldValue , String newValue ) {
You can’t perform that action at this time.
0 commit comments