diff options
| author | Samantaz Fox <coding@samantaz.fr> | 2023-08-07 21:29:35 +0200 |
|---|---|---|
| committer | Samantaz Fox <coding@samantaz.fr> | 2023-08-07 21:29:35 +0200 |
| commit | 34508966027fce3f460d9670eeecef67b92565a0 (patch) | |
| tree | 3bd36e33d5e34096ec2b2d8a9178b47e3280e92c | |
| parent | 4195dcd3cf26e08a7f6c607e17799998636439b1 (diff) | |
| parent | 2f6b2688bb8042c29942e46767dc78836f21fb57 (diff) | |
| download | invidious-34508966027fce3f460d9670eeecef67b92565a0.tar.gz invidious-34508966027fce3f460d9670eeecef67b92565a0.tar.bz2 invidious-34508966027fce3f460d9670eeecef67b92565a0.zip | |
Use workaround for fetching streaming URLs (#4037)
| -rw-r--r-- | src/invidious/videos/parser.cr | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/invidious/videos/parser.cr b/src/invidious/videos/parser.cr index 9cc0ffdc..2a09d187 100644 --- a/src/invidious/videos/parser.cr +++ b/src/invidious/videos/parser.cr @@ -55,8 +55,9 @@ def extract_video_info(video_id : String, proxy_region : String? = nil) client_config = YoutubeAPI::ClientConfig.new(proxy_region: proxy_region) # Fetch data from the player endpoint - # 8AEB param is used to fetch YouTube stories - player_response = YoutubeAPI.player(video_id: video_id, params: "8AEB", client_config: client_config) + # CgIQBg is a workaround for streaming URLs that returns a 403. + # See https://github.com/iv-org/invidious/issues/4027#issuecomment-1666944520 + player_response = YoutubeAPI.player(video_id: video_id, params: "CgIQBg", client_config: client_config) playability_status = player_response.dig?("playabilityStatus", "status").try &.as_s @@ -135,8 +136,9 @@ end def try_fetch_streaming_data(id : String, client_config : YoutubeAPI::ClientConfig) : Hash(String, JSON::Any)? LOGGER.debug("try_fetch_streaming_data: [#{id}] Using #{client_config.client_type} client.") - # 8AEB param is used to fetch YouTube stories - response = YoutubeAPI.player(video_id: id, params: "8AEB", client_config: client_config) + # CgIQBg is a workaround for streaming URLs that returns a 403. + # See https://github.com/iv-org/invidious/issues/4027#issuecomment-1666944520 + response = YoutubeAPI.player(video_id: id, params: "CgIQBg", client_config: client_config) playability_status = response["playabilityStatus"]["status"] LOGGER.debug("try_fetch_streaming_data: [#{id}] Got playabilityStatus == #{playability_status}.") |
