summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsyeopite <syeopite@syeopite.dev>2024-06-11 18:46:34 -0700
committersyeopite <syeopite@syeopite.dev>2024-06-11 18:46:34 -0700
commit5b519123a76879edca3d5fa5cff717b58482e7e5 (patch)
tree2ba99aeca81931923f7f25f3ea5b904390912915
parent0224162ad22dc19d58a73202d796eb3e99f0a71c (diff)
downloadinvidious-5b519123a76879edca3d5fa5cff717b58482e7e5.tar.gz
invidious-5b519123a76879edca3d5fa5cff717b58482e7e5.tar.bz2
invidious-5b519123a76879edca3d5fa5cff717b58482e7e5.zip
Raise error when transcript does not exist
-rw-r--r--src/invidious/videos/transcript.cr14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/invidious/videos/transcript.cr b/src/invidious/videos/transcript.cr
index 42f29f46..76fb8610 100644
--- a/src/invidious/videos/transcript.cr
+++ b/src/invidious/videos/transcript.cr
@@ -45,13 +45,19 @@ module Invidious::Videos
# Constructs a Transcripts struct from the initial YouTube response
def self.from_raw(initial_data : Hash(String, JSON::Any), language_code : String, auto_generated : Bool)
- body = initial_data.dig("actions", 0, "updateEngagementPanelAction", "content", "transcriptRenderer",
- "content", "transcriptSearchPanelRenderer", "body", "transcriptSegmentListRenderer",
- "initialSegments").as_a
+ segment_list = initial_data.dig("actions", 0, "updateEngagementPanelAction", "content", "transcriptRenderer",
+ "content", "transcriptSearchPanelRenderer", "body", "transcriptSegmentListRenderer"
+ )
+
+ if !segment_list["initialSegments"]?
+ raise NotFoundException.new("Requested transcript does not exist")
+ end
+
+ initial_segments = segment_list["initialSegments"].as_a
lines = [] of TranscriptLine
- body.each do |line|
+ initial_segments.each do |line|
if unpacked_line = line["transcriptSectionHeaderRenderer"]?
line_type = HeadingLine
else