Update extract plid

This commit is contained in:
syeopite 2021-03-28 00:38:34 -07:00
parent a7624d4724
commit ec6bf2ad4d
No known key found for this signature in database
GPG Key ID: 6FA616E5A5294A82

View File

@ -18,10 +18,10 @@ def fetch_trending(trending_type, region, locale)
initial_data = extract_initial_data(response)
url = initial_data["contents"]["twoColumnBrowseResultsRenderer"]["tabs"][trending_type]["tabRenderer"]["endpoint"]["commandMetadata"]["webCommandMetadata"]["url"]
url = "#{url}&gl=#{region}&hl=en"
bp = initial_data["contents"]["twoColumnBrowseResultsRenderer"]["tabs"][trending_type]["tabRenderer"]["endpoint"]["browseEndpoint"]["params"].to_s
trending = YT_POOL.client &.get(url).body
plid = extract_plid(url)
trending = YT_POOL.client &.get("#{url}&gl=#{region}&hl=en").body
plid = extract_plid(bp)
else
trending = YT_POOL.client &.get("/feed/trending?gl=#{region}&hl=en").body
end
@ -32,12 +32,10 @@ def fetch_trending(trending_type, region, locale)
return {trending, plid}
end
def extract_plid(url)
return url.try { |i| URI.parse(i).query }
.try { |i| HTTP::Params.parse(i)["bp"] }
.try { |i| URI.decode_www_form(i) }
def extract_plid(bp)
return bp.try { |i| URI.decode_www_form(i) }
.try { |i| Base64.decode(i) }
.try { |i| IO::Memory.new(i) }
.try { |i| Protodec::Any.parse(i) }
.try &.["44:0:embedded"]?.try &.["2:1:string"]?.try &.as_s
.try &.["44:0:embedded"]?.try &.["3:0:string"]?.try &.as_s
end