diff --git a/src/invidious.cr b/src/invidious.cr
index 0c05b1ec..d655363e 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -1487,7 +1487,7 @@ get "/feed/channel/:ucid" do |env|
end
page = 1
- videos, count = get_60_videos(ucid, page, auto_generated, proxies)
+ videos, count = get_60_videos(ucid, page, auto_generated)
host_url = make_host_url(Kemal.config.ssl || CONFIG.https_only, env.request.headers["Host"]?)
path = env.request.path
@@ -1732,7 +1732,7 @@ get "/channel/:ucid" do |env|
end
end
- videos, count = get_60_videos(ucid, page, auto_generated, proxies)
+ videos, count = get_60_videos(ucid, page, auto_generated)
templated "channel"
end
@@ -1885,6 +1885,7 @@ get "/api/v1/comments/:id" do |env|
proxy_client.read_timeout = 10.seconds
proxy_client.connect_timeout = 10.seconds
+ proxy = list.sample(1)[0]
proxy = HTTPProxy.new(proxy_host: proxy[:ip], proxy_port: proxy[:port])
proxy_client.set_proxy(proxy)
@@ -1893,10 +1894,13 @@ get "/api/v1/comments/:id" do |env|
proxy_headers["cookie"] = response.cookies.add_request_headers(headers)["cookie"]
proxy_html = response.body
- if !proxy_html.match(//)
+ if proxy_html.match(//)
+ bypass_channel.send(nil)
+ else
bypass_channel.send({proxy_html, proxy_client, proxy_headers})
- break
end
+
+ break
rescue ex
end
end
@@ -2489,7 +2493,7 @@ get "/api/v1/channels/:ucid" do |env|
end
page = 1
- videos, count = get_60_videos(ucid, page, auto_generated, proxies)
+ videos, count = get_60_videos(ucid, page, auto_generated)
client = make_client(YT_URL)
channel_html = client.get("/channel/#{ucid}/about?disable_polymer=1").body
@@ -2627,7 +2631,7 @@ end
halt env, status_code: 404, response: error_message
end
- videos, count = get_60_videos(ucid, page, auto_generated, proxies)
+ videos, count = get_60_videos(ucid, page, auto_generated)
result = JSON.build do |json|
json.array do
diff --git a/src/invidious/channels.cr b/src/invidious/channels.cr
index f7cae749..0ab8dd9b 100644
--- a/src/invidious/channels.cr
+++ b/src/invidious/channels.cr
@@ -176,7 +176,7 @@ def produce_channel_videos_url(ucid, page = 1, auto_generated = nil)
continuation = Base64.urlsafe_encode(continuation)
continuation = URI.escape(continuation)
- url = "/browse_ajax?continuation=#{continuation}&gl=US&hl=en"
+ url = "/browse_ajax?continuation=#{continuation}"
return url
end
@@ -216,7 +216,7 @@ def get_about_info(ucid)
return {author, ucid, auto_generated, sub_count}
end
-def get_60_videos(ucid, page, auto_generated, proxies)
+def get_60_videos(ucid, page, auto_generated)
count = 0
videos = [] of SearchVideo
@@ -235,49 +235,6 @@ def get_60_videos(ucid, page, auto_generated, proxies)
count += 30
end
- if !json["load_more_widget_html"]?.try &.as_s.empty? && nodeset.size < 30
- bypass_channel = Channel(XML::NodeSet | Nil).new
-
- proxies.each do |region, list|
- spawn do
- list.each do |proxy|
- begin
- proxy_client = HTTPClient.new(YT_URL)
- proxy_client.read_timeout = 10.seconds
- proxy_client.connect_timeout = 10.seconds
-
- proxy = HTTPProxy.new(proxy_host: proxy[:ip], proxy_port: proxy[:port])
- proxy_client.set_proxy(proxy)
-
- proxy_response = proxy_client.get(url)
- json = JSON.parse(proxy_response.body)
-
- document = XML.parse_html(json["content_html"].as_s)
- nodeset = document.xpath_nodes(%q(//li[contains(@class, "feed-item-container")]))
-
- if nodeset.size == 30
- bypass_channel.send(nodeset)
- break
- end
- rescue ex
- end
- end
-
- if nodeset.size != 30
- bypass_channel.send(nil)
- end
- end
- end
-
- proxies.size.times do
- response = bypass_channel.receive
- if response
- nodeset = response
- break
- end
- end
- end
-
if auto_generated
videos += extract_videos(nodeset)
else
diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr
index 1d823cc4..ddee9441 100644
--- a/src/invidious/videos.cr
+++ b/src/invidious/videos.cr
@@ -573,8 +573,11 @@ def fetch_video(id, proxies)
info = HTTP::Params.parse(client.get("/get_video_info?video_id=#{id}&ps=default&eurl=&gl=US&hl=en&disable_polymer=1").body)
if !info["reason"]?
bypass_channel.send(proxy)
- break
+ else
+ bypass_channel.send(nil)
end
+
+ break
rescue ex
end
end