diff options
| author | syeopite <syeopite@syeopite.dev> | 2024-06-11 18:46:34 -0700 |
|---|---|---|
| committer | syeopite <syeopite@syeopite.dev> | 2024-06-11 18:46:34 -0700 |
| commit | 5b519123a76879edca3d5fa5cff717b58482e7e5 (patch) | |
| tree | 2ba99aeca81931923f7f25f3ea5b904390912915 /src | |
| parent | 0224162ad22dc19d58a73202d796eb3e99f0a71c (diff) | |
| download | invidious-5b519123a76879edca3d5fa5cff717b58482e7e5.tar.gz invidious-5b519123a76879edca3d5fa5cff717b58482e7e5.tar.bz2 invidious-5b519123a76879edca3d5fa5cff717b58482e7e5.zip | |
Raise error when transcript does not exist
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/videos/transcript.cr | 14 |
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 |
