From 218f7be1a7ec6cb679d7d324be3e64c6d79da127 Mon Sep 17 00:00:00 2001 From: Emilien Devos Date: Sun, 7 Aug 2022 19:14:16 +0200 Subject: [PATCH] For android client send sdk version to youtube --- src/invidious/yt_backend/youtube_api.cr | 29 +++++++++++++++++-------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/invidious/yt_backend/youtube_api.cr b/src/invidious/yt_backend/youtube_api.cr index 2b3db742..30d7613b 100644 --- a/src/invidious/yt_backend/youtube_api.cr +++ b/src/invidious/yt_backend/youtube_api.cr @@ -8,6 +8,7 @@ module YoutubeAPI private DEFAULT_API_KEY = "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8" private ANDROID_APP_VERSION = "17.29.35" + private ANDROID_SDK_VERSION = 30_i64 private IOS_APP_VERSION = "17.30.1" # Enumerate used to select one of the clients supported by the API @@ -58,9 +59,10 @@ module YoutubeAPI # Android ClientType::Android => { - name: "ANDROID", - version: ANDROID_APP_VERSION, - api_key: "AIzaSyA8eiZmM1FaDVjRy-df2KTyQ_vz_yYM39w", + name: "ANDROID", + version: ANDROID_APP_VERSION, + api_key: "AIzaSyA8eiZmM1FaDVjRy-df2KTyQ_vz_yYM39w", + android_sdk_version: ANDROID_SDK_VERSION, }, ClientType::AndroidEmbeddedPlayer => { name: "ANDROID_EMBEDDED_PLAYER", # 55 @@ -68,10 +70,11 @@ module YoutubeAPI api_key: DEFAULT_API_KEY, }, ClientType::AndroidScreenEmbed => { - name: "ANDROID", # 3 - version: ANDROID_APP_VERSION, - api_key: DEFAULT_API_KEY, - screen: "EMBED", + name: "ANDROID", # 3 + version: ANDROID_APP_VERSION, + api_key: DEFAULT_API_KEY, + screen: "EMBED", + android_sdk_version: ANDROID_SDK_VERSION, }, # IOS @@ -172,6 +175,10 @@ module YoutubeAPI HARDCODED_CLIENTS[@client_type][:screen]? || "" end + def android_sdk_version : Int64? + HARDCODED_CLIENTS[@client_type][:android_sdk_version]? + end + # Convert to string, for logging purposes def to_s return { @@ -201,7 +208,7 @@ module YoutubeAPI "gl" => client_config.region || "US", # Can't be empty! "clientName" => client_config.name, "clientVersion" => client_config.version, - }, + } of String => String | Int64, } # Add some more context if it exists in the client definitions @@ -212,7 +219,11 @@ module YoutubeAPI if client_config.screen == "EMBED" client_context["thirdParty"] = { "embedUrl" => "https://www.youtube.com/embed/dQw4w9WgXcQ", - } + } of String => String | Int64 + end + + if android_sdk_version = client_config.android_sdk_version + client_context["client"]["androidSdkVersion"] = android_sdk_version end return client_context