This commit is contained in:
Owen Roberts 2022-12-05 14:57:02 -07:00
parent 0727b97119
commit 3c0d03abe8
1 changed files with 3 additions and 24 deletions

View File

@ -71,7 +71,6 @@ import java.util.Optional;
import java.util.Random; import java.util.Random;
import java.util.Set; import java.util.Set;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Stream;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -607,7 +606,7 @@ public final class YoutubeParsingHelper {
final JsonArray serviceTrackingParams = initialData.getObject("responseContext") final JsonArray serviceTrackingParams = initialData.getObject("responseContext")
.getArray("serviceTrackingParams"); .getArray("serviceTrackingParams");
clientVersion = getClientVersionFromServiceTrackingParams( clientVersion = getClientVersionFromServiceTrackingParam(
serviceTrackingParams, "CSI", "cver"); serviceTrackingParams, "CSI", "cver");
if (clientVersion == null) { if (clientVersion == null) {
@ -621,7 +620,7 @@ public final class YoutubeParsingHelper {
// Fallback to get a shortened client version which does not contain the last two // Fallback to get a shortened client version which does not contain the last two
// digits // digits
if (isNullOrEmpty(clientVersion)) { if (isNullOrEmpty(clientVersion)) {
clientVersion = getClientVersionFromServiceTrackingParams( clientVersion = getClientVersionFromServiceTrackingParam(
serviceTrackingParams, "ECATCHER", "client.version"); serviceTrackingParams, "ECATCHER", "client.version");
} }
@ -648,7 +647,7 @@ public final class YoutubeParsingHelper {
} }
@Nullable @Nullable
private static String getClientVersionFromServiceTrackingParams( private static String getClientVersionFromServiceTrackingParam(
@Nonnull final JsonArray serviceTrackingParams, @Nonnull final JsonArray serviceTrackingParams,
@Nonnull final String serviceName, @Nonnull final String serviceName,
@Nonnull final String clientVersionKey) { @Nonnull final String clientVersionKey) {
@ -667,26 +666,6 @@ public final class YoutubeParsingHelper {
return null; return null;
} }
@Nullable
private static String getClientVersionFromServiceTrackingParam(
@Nonnull final Stream<JsonObject> serviceTrackingParamsStream,
@Nonnull final String serviceName,
@Nonnull final String clientVersionKey) {
return serviceTrackingParamsStream.filter(serviceTrackingParam ->
serviceTrackingParam.getString("service", "")
.equals(serviceName))
.flatMap(serviceTrackingParam -> serviceTrackingParam.getArray("params")
.stream())
.filter(JsonObject.class::isInstance)
.map(JsonObject.class::cast)
.filter(param -> param.getString("key", "")
.equals(clientVersionKey))
.map(param -> param.getString("value"))
.filter(paramValue -> !isNullOrEmpty(paramValue))
.findFirst()
.orElse(null);
}
/** /**
* Get the client version used by YouTube website on InnerTube requests. * Get the client version used by YouTube website on InnerTube requests.
*/ */