summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsyeopite <syeopite@syeopite.dev>2021-09-28 14:57:48 -0700
committersyeopite <syeopite@syeopite.dev>2021-11-12 03:47:57 -0800
commitb0f127d4d89bc1a001c9ad37b27eec8d9d8e7961 (patch)
tree68b799e6577ff218254a82ec93c53dd449f48e41
parentd379a36c0e89c66d47fe7faa005371e8b633a74a (diff)
downloadinvidious-b0f127d4d89bc1a001c9ad37b27eec8d9d8e7961.tar.gz
invidious-b0f127d4d89bc1a001c9ad37b27eec8d9d8e7961.tar.bz2
invidious-b0f127d4d89bc1a001c9ad37b27eec8d9d8e7961.zip
Fix gzip decompression with HTTP::Client
-rw-r--r--src/invidious/yt_backend/youtube_api.cr11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/invidious/yt_backend/youtube_api.cr b/src/invidious/yt_backend/youtube_api.cr
index 8ab2fe46..8904b589 100644
--- a/src/invidious/yt_backend/youtube_api.cr
+++ b/src/invidious/yt_backend/youtube_api.cr
@@ -404,10 +404,17 @@ module YoutubeAPI
url = "#{endpoint}?key=#{client_config.api_key}"
headers = HTTP::Headers{
- "Content-Type" => "application/json; charset=UTF-8",
- "Accept-Encoding" => "gzip",
+ "Content-Type" => "application/json; charset=UTF-8",
}
+ # The normal HTTP client automatically applies accept-encoding: gzip,
+ # and decompresses. However, explicitly applying it will remove this functionality.
+ #
+ # https://github.com/crystal-lang/crystal/issues/11252#issuecomment-929594741
+ {% unless flag?(:disable_quic) %}
+ headers["Accept-Encoding"] = "gzip"
+ {% end %}
+
# Logging
LOGGER.debug("YoutubeAPI: Using endpoint: \"#{endpoint}\"")
LOGGER.trace("YoutubeAPI: ClientConfig: #{client_config}")