summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOmar Roth <omarroth@protonmail.com>2019-11-01 12:00:59 -0400
committerOmar Roth <omarroth@protonmail.com>2019-11-01 12:00:59 -0400
commitb58950c574fae491b7194594d93df13c3c972c3c (patch)
tree7b29ab0ee446e03d1dd6d13e787154c044e6d80e
parent833a60f29cda7ce38c8d732b44d27bc075e37357 (diff)
downloadinvidious-b58950c574fae491b7194594d93df13c3c972c3c.tar.gz
invidious-b58950c574fae491b7194594d93df13c3c972c3c.tar.bz2
invidious-b58950c574fae491b7194594d93df13c3c972c3c.zip
Fix decoding for channel playlists extractor
-rw-r--r--src/invidious/channels.cr6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/invidious/channels.cr b/src/invidious/channels.cr
index c5381863..2d911089 100644
--- a/src/invidious/channels.cr
+++ b/src/invidious/channels.cr
@@ -526,10 +526,12 @@ end
def extract_channel_playlists_cursor(url, auto_generated)
cursor = URI.parse(url).query_params
- .try { |i| Base64.decode(i["continuation"]) }
+ .try { |i| URI.decode_www_form(i["continuation"]) }
+ .try { |i| Base64.decode(i) }
.try { |i| IO::Memory.new(i) }
.try { |i| Protodec::Any.parse(i) }
- .try { |i| i["80226972:0:embedded"]["3:1:base64"]["15:7:string"].as_s }
+ .try { |i| i["80226972:0:embedded"]["3:1:base64"].as_h.find { |k, v| k.starts_with?("15:") } }
+ .try &.[1].as_s || ""
if !auto_generated
cursor = URI.decode_www_form(cursor)