diff --git a/src/main/java/com/github/felipeucelli/javatube/InnerTube.java b/src/main/java/com/github/felipeucelli/javatube/InnerTube.java index b004c42..c61b712 100644 --- a/src/main/java/com/github/felipeucelli/javatube/InnerTube.java +++ b/src/main/java/com/github/felipeucelli/javatube/InnerTube.java @@ -662,6 +662,8 @@ public void insetPoToken() throws JSONException { } public void insetPoToken(String poToken, String visitorData) throws JSONException { + this.accessPoToken = poToken; + this.accessVisitorData = visitorData; JSONObject context = new JSONObject( "{" + "\"context\": {" + diff --git a/src/main/java/com/github/felipeucelli/javatube/Youtube.java b/src/main/java/com/github/felipeucelli/javatube/Youtube.java index 67e2786..044c955 100644 --- a/src/main/java/com/github/felipeucelli/javatube/Youtube.java +++ b/src/main/java/com/github/felipeucelli/javatube/Youtube.java @@ -101,11 +101,25 @@ public Youtube(String url, boolean usePoToken, boolean allowCache) throws Except * */ public Youtube(String url, String clientName, boolean usePoToken, boolean allowCache) throws Exception { client = usePoToken ? "WEB" : clientName; - this.usePoToken = usePoToken; - this.allowCache = allowCache; - innerTube = new InnerTube(client, usePoToken, allowCache); + this.innerTube = new InnerTube(client, usePoToken, allowCache); urlVideo = url; watchUrl = "https://www.youtube.com/watch?v=" + getVideoId(); + this.usePoToken = usePoToken; + this.allowCache = allowCache; + if (this.usePoToken) { + String poToken = BotGuard.generatePoToken(getVideoId()); + String visitorData = getVisitorData(); + if (isValidToken(poToken) && isValidVisitorData(visitorData)) { + innerTube.insetPoToken(poToken, visitorData); + } + } + } + + private boolean isValidToken(String poToken) { + return poToken != null && !poToken.isBlank(); + } + private boolean isValidVisitorData(String visitorData) { + return visitorData != null && !visitorData.isBlank(); } private String setVideoId() throws RegexMatchError {