From d1b8a6a7d546fda7ff46fb7acb48c406b07663cf Mon Sep 17 00:00:00 2001 From: hibutwhy <112614297+hibutwhy@users.noreply.github.com> Date: Mon, 24 Aug 2026 01:08:04 -0700 Subject: [PATCH] Validate byline browseId as non-empty string before channel selection CodeRabbit finding: empty, null, or non-string browseId values could cause invalid channel selection. Only accept runs with valid non-empty string browseId; retain first-run fallback. --- src/invidious/videos/parser.cr | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/invidious/videos/parser.cr b/src/invidious/videos/parser.cr index 3fc5e34eb..7d7f1bbb2 100644 --- a/src/invidious/videos/parser.cr +++ b/src/invidious/videos/parser.cr @@ -27,7 +27,9 @@ module Invidious::Videos::Parser .try &.dig?("runs").try &.as_a channel_info = byline_runs.try &.find do |run| - run.dig?("navigationEndpoint", "browseEndpoint", "browseId") + browse_id = run.dig?("navigationEndpoint", "browseEndpoint", "browseId") + text_id = browse_id.try &.as_s? + !text_id.nil? && !text_id.empty? end || byline_runs.try &.[0]? author = channel_info.try &.dig?("text")