@ -1,3 +1,10 @@
class ChannelSearchException < InfoException
getter channel : String
def initialize ( @channel )
end
end
def channel_search ( query , page , channel )
def channel_search ( query , page , channel )
response = YT_POOL . client & . get ( " /channel/ #{ channel } " )
response = YT_POOL . client & . get ( " /channel/ #{ channel } " )
@ -5,8 +12,8 @@ def channel_search(query, page, channel)
response = YT_POOL . client & . get ( " /user/ #{ channel } " )
response = YT_POOL . client & . get ( " /user/ #{ channel } " )
response = YT_POOL . client & . get ( " /c/ #{ channel } " ) if response . status_code == 404
response = YT_POOL . client & . get ( " /c/ #{ channel } " ) if response . status_code == 404
initial_data = extract_initial_data ( response . body )
initial_data = extract_initial_data ( response . body )
ucid = initial_data [" header " ] [ " c4TabbedHeaderRenderer " ]? . try & . [ " channelId " ] . as_s?
ucid = initial_data .dig? ( " header " , " c4TabbedHeaderRenderer " , " channelId " ) . try ( & . as_s? )
raise InfoException. new ( " Impossible to extract channel ID from page " ) if ! ucid
raise ChannelSearchException. new ( channel ) if ! ucid
else
else
ucid = channel
ucid = channel
end
end