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