YtAPI: Remove API keys like official clients (#4655)

This PR removes API keys from innertube requests, as the official clients
did it too.
This commit is contained in:
Samantaz Fox 2024-07-10 22:19:51 +02:00
commit 99c7e9e800
No known key found for this signature in database
GPG key ID: F42821059186176E

View file

@ -5,9 +5,6 @@
module YoutubeAPI module YoutubeAPI
extend self extend self
private DEFAULT_API_KEY = "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8"
private ANDROID_API_KEY = "AIzaSyA8eiZmM1FaDVjRy-df2KTyQ_vz_yYM39w"
# For Android versions, see https://en.wikipedia.org/wiki/Android_version_history # For Android versions, see https://en.wikipedia.org/wiki/Android_version_history
private ANDROID_APP_VERSION = "19.14.42" private ANDROID_APP_VERSION = "19.14.42"
private ANDROID_USER_AGENT = "com.google.android.youtube/19.14.42 (Linux; U; Android 12; US) gzip" private ANDROID_USER_AGENT = "com.google.android.youtube/19.14.42 (Linux; U; Android 12; US) gzip"
@ -52,7 +49,6 @@ module YoutubeAPI
name: "WEB", name: "WEB",
name_proto: "1", name_proto: "1",
version: "2.20240304.00.00", version: "2.20240304.00.00",
api_key: DEFAULT_API_KEY,
screen: "WATCH_FULL_SCREEN", screen: "WATCH_FULL_SCREEN",
os_name: "Windows", os_name: "Windows",
os_version: WINDOWS_VERSION, os_version: WINDOWS_VERSION,
@ -62,7 +58,6 @@ module YoutubeAPI
name: "WEB_EMBEDDED_PLAYER", name: "WEB_EMBEDDED_PLAYER",
name_proto: "56", name_proto: "56",
version: "1.20240303.00.00", version: "1.20240303.00.00",
api_key: DEFAULT_API_KEY,
screen: "EMBED", screen: "EMBED",
os_name: "Windows", os_name: "Windows",
os_version: WINDOWS_VERSION, os_version: WINDOWS_VERSION,
@ -72,7 +67,6 @@ module YoutubeAPI
name: "MWEB", name: "MWEB",
name_proto: "2", name_proto: "2",
version: "2.20240304.08.00", version: "2.20240304.08.00",
api_key: DEFAULT_API_KEY,
os_name: "Android", os_name: "Android",
os_version: ANDROID_VERSION, os_version: ANDROID_VERSION,
platform: "MOBILE", platform: "MOBILE",
@ -81,7 +75,6 @@ module YoutubeAPI
name: "WEB", name: "WEB",
name_proto: "1", name_proto: "1",
version: "2.20240304.00.00", version: "2.20240304.00.00",
api_key: DEFAULT_API_KEY,
screen: "EMBED", screen: "EMBED",
os_name: "Windows", os_name: "Windows",
os_version: WINDOWS_VERSION, os_version: WINDOWS_VERSION,
@ -94,7 +87,6 @@ module YoutubeAPI
name: "ANDROID", name: "ANDROID",
name_proto: "3", name_proto: "3",
version: ANDROID_APP_VERSION, version: ANDROID_APP_VERSION,
api_key: ANDROID_API_KEY,
android_sdk_version: ANDROID_SDK_VERSION, android_sdk_version: ANDROID_SDK_VERSION,
user_agent: ANDROID_USER_AGENT, user_agent: ANDROID_USER_AGENT,
os_name: "Android", os_name: "Android",
@ -105,13 +97,11 @@ module YoutubeAPI
name: "ANDROID_EMBEDDED_PLAYER", name: "ANDROID_EMBEDDED_PLAYER",
name_proto: "55", name_proto: "55",
version: ANDROID_APP_VERSION, version: ANDROID_APP_VERSION,
api_key: "AIzaSyCjc_pVEDi4qsv5MtC2dMXzpIaDoRFLsxw",
}, },
ClientType::AndroidScreenEmbed => { ClientType::AndroidScreenEmbed => {
name: "ANDROID", name: "ANDROID",
name_proto: "3", name_proto: "3",
version: ANDROID_APP_VERSION, version: ANDROID_APP_VERSION,
api_key: DEFAULT_API_KEY,
screen: "EMBED", screen: "EMBED",
android_sdk_version: ANDROID_SDK_VERSION, android_sdk_version: ANDROID_SDK_VERSION,
user_agent: ANDROID_USER_AGENT, user_agent: ANDROID_USER_AGENT,
@ -123,7 +113,6 @@ module YoutubeAPI
name: "ANDROID_TESTSUITE", name: "ANDROID_TESTSUITE",
name_proto: "30", name_proto: "30",
version: ANDROID_TS_APP_VERSION, version: ANDROID_TS_APP_VERSION,
api_key: ANDROID_API_KEY,
android_sdk_version: ANDROID_SDK_VERSION, android_sdk_version: ANDROID_SDK_VERSION,
user_agent: ANDROID_TS_USER_AGENT, user_agent: ANDROID_TS_USER_AGENT,
os_name: "Android", os_name: "Android",
@ -137,7 +126,6 @@ module YoutubeAPI
name: "IOS", name: "IOS",
name_proto: "5", name_proto: "5",
version: IOS_APP_VERSION, version: IOS_APP_VERSION,
api_key: "AIzaSyB-63vPrdThhKuerbB2N_l7Kwwcxj6yUAc",
user_agent: IOS_USER_AGENT, user_agent: IOS_USER_AGENT,
device_make: "Apple", device_make: "Apple",
device_model: "iPhone14,5", device_model: "iPhone14,5",
@ -149,7 +137,6 @@ module YoutubeAPI
name: "IOS_MESSAGES_EXTENSION", name: "IOS_MESSAGES_EXTENSION",
name_proto: "66", name_proto: "66",
version: IOS_APP_VERSION, version: IOS_APP_VERSION,
api_key: DEFAULT_API_KEY,
user_agent: IOS_USER_AGENT, user_agent: IOS_USER_AGENT,
device_make: "Apple", device_make: "Apple",
device_model: "iPhone14,5", device_model: "iPhone14,5",
@ -161,7 +148,6 @@ module YoutubeAPI
name: "IOS_MUSIC", name: "IOS_MUSIC",
name_proto: "26", name_proto: "26",
version: "6.42", version: "6.42",
api_key: "AIzaSyBAETezhkwP0ZWA02RsqT1zu78Fpt0bC_s",
user_agent: "com.google.ios.youtubemusic/6.42 (iPhone14,5; U; CPU iOS 17_4 like Mac OS X;)", user_agent: "com.google.ios.youtubemusic/6.42 (iPhone14,5; U; CPU iOS 17_4 like Mac OS X;)",
device_make: "Apple", device_make: "Apple",
device_model: "iPhone14,5", device_model: "iPhone14,5",
@ -176,13 +162,11 @@ module YoutubeAPI
name: "TVHTML5", name: "TVHTML5",
name_proto: "7", name_proto: "7",
version: "7.20240304.10.00", version: "7.20240304.10.00",
api_key: DEFAULT_API_KEY,
}, },
ClientType::TvHtml5ScreenEmbed => { ClientType::TvHtml5ScreenEmbed => {
name: "TVHTML5_SIMPLY_EMBEDDED_PLAYER", name: "TVHTML5_SIMPLY_EMBEDDED_PLAYER",
name_proto: "85", name_proto: "85",
version: "2.0", version: "2.0",
api_key: DEFAULT_API_KEY,
screen: "EMBED", screen: "EMBED",
}, },
} }
@ -237,11 +221,6 @@ module YoutubeAPI
HARDCODED_CLIENTS[@client_type][:version] HARDCODED_CLIENTS[@client_type][:version]
end end
# :ditto:
def api_key : String
HARDCODED_CLIENTS[@client_type][:api_key]
end
# :ditto: # :ditto:
def screen : String def screen : String
HARDCODED_CLIENTS[@client_type][:screen]? || "" HARDCODED_CLIENTS[@client_type][:screen]? || ""
@ -606,7 +585,7 @@ module YoutubeAPI
client_config ||= DEFAULT_CLIENT_CONFIG client_config ||= DEFAULT_CLIENT_CONFIG
# Query parameters # Query parameters
url = "#{endpoint}?key=#{client_config.api_key}&prettyPrint=false" url = "#{endpoint}?prettyPrint=false"
headers = HTTP::Headers{ headers = HTTP::Headers{
"Content-Type" => "application/json; charset=UTF-8", "Content-Type" => "application/json; charset=UTF-8",