diff options
| author | saltycrys <73420320+saltycrys@users.noreply.github.com> | 2020-12-03 21:02:52 +0100 |
|---|---|---|
| committer | saltycrys <73420320+saltycrys@users.noreply.github.com> | 2020-12-03 21:02:52 +0100 |
| commit | cc684ff0b1bfb358f5ef567865e23a532b168132 (patch) | |
| tree | e7b3bee447a6f34b6d9195f7b716839345daf393 /src | |
| parent | c98c7d47db5d4767681a8af2ce3a3228060eb0c3 (diff) | |
| download | invidious-cc684ff0b1bfb358f5ef567865e23a532b168132.tar.gz invidious-cc684ff0b1bfb358f5ef567865e23a532b168132.tar.bz2 invidious-cc684ff0b1bfb358f5ef567865e23a532b168132.zip | |
Fix redirect channels
Redirect channels may use JS to redirect now, instead of only a response header
as it used to be. This fix reads the channel to redirect to from `ytInitialData`.
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/channels.cr | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/invidious/channels.cr b/src/invidious/channels.cr index 93507c56..444a6eda 100644 --- a/src/invidious/channels.cr +++ b/src/invidious/channels.cr @@ -801,6 +801,10 @@ def get_about_info(ucid, locale) raise InfoException.new(error_message) end + if browse_endpoint = initdata["onResponseReceivedActions"]?.try &.[0]?.try &.["navigateAction"]?.try &.["endpoint"]?.try &.["browseEndpoint"]? + raise ChannelRedirect.new(channel_id: browse_endpoint["browseId"].to_s) + end + author = initdata["metadata"]["channelMetadataRenderer"]["title"].as_s author_url = initdata["metadata"]["channelMetadataRenderer"]["channelUrl"].as_s author_thumbnail = initdata["metadata"]["channelMetadataRenderer"]["avatar"]["thumbnails"][0]["url"].as_s |
