diff options
| author | syeopite <syeopite@syeopite.dev> | 2021-09-28 14:57:48 -0700 |
|---|---|---|
| committer | syeopite <syeopite@syeopite.dev> | 2021-11-12 03:47:57 -0800 |
| commit | b0f127d4d89bc1a001c9ad37b27eec8d9d8e7961 (patch) | |
| tree | 68b799e6577ff218254a82ec93c53dd449f48e41 /src | |
| parent | d379a36c0e89c66d47fe7faa005371e8b633a74a (diff) | |
| download | invidious-b0f127d4d89bc1a001c9ad37b27eec8d9d8e7961.tar.gz invidious-b0f127d4d89bc1a001c9ad37b27eec8d9d8e7961.tar.bz2 invidious-b0f127d4d89bc1a001c9ad37b27eec8d9d8e7961.zip | |
Fix gzip decompression with HTTP::Client
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/yt_backend/youtube_api.cr | 11 |
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}") |
