summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/invidious.cr7
-rw-r--r--src/invidious/playlists.cr4
2 files changed, 7 insertions, 4 deletions
diff --git a/src/invidious.cr b/src/invidious.cr
index 2e599864..bc85bb74 100644
--- a/src/invidious.cr
+++ b/src/invidious.cr
@@ -390,9 +390,8 @@ get "/playlist" do |env|
page = env.params.query["page"]?.try &.to_i?
page ||= 1
- playlist = fetch_playlist(plid)
-
begin
+ playlist = fetch_playlist(plid)
videos = fetch_playlist_videos(plid, page, playlist.video_count)
rescue ex
error_message = ex.message
@@ -2823,9 +2822,9 @@ get "/api/v1/playlists/:plid" do |env|
page = env.params.query["page"]?.try &.to_i?
page ||= 1
- playlist = fetch_playlist(plid)
-
+
begin
+ playlist = fetch_playlist(plid)
videos = fetch_playlist_videos(plid, page, playlist.video_count)
rescue ex
error_message = {"error" => "Playlist is empty"}.to_json
diff --git a/src/invidious/playlists.cr b/src/invidious/playlists.cr
index 6afb7a79..e14a7709 100644
--- a/src/invidious/playlists.cr
+++ b/src/invidious/playlists.cr
@@ -142,6 +142,10 @@ def fetch_playlist(plid)
end
response = client.get("/playlist?list=#{plid}&disable_polymer=1")
+ if response.status_code != 200
+ raise "Invalid playlist."
+ end
+
body = response.body.gsub(<<-END_BUTTON
<button class="yt-uix-button yt-uix-button-size-default yt-uix-button-link yt-uix-expander-head playlist-description-expander yt-uix-inlineedit-ignore-edit" type="button" onclick=";return false;"><span class="yt-uix-button-content"> less <img alt="" src="/yts/img/pixel-vfl3z5WfW.gif">
</span></button>