fix: Handle nil value for genreUcid in Video struct

This commit is contained in:
meatball 2024-05-30 21:56:33 +02:00
parent 1ae14cc224
commit 31ad708206
2 changed files with 3 additions and 3 deletions

View file

@ -250,7 +250,7 @@ struct Video
end end
def genre_url : String? def genre_url : String?
info["genreUcid"]? ? "/channel/#{info["genreUcid"]}" : nil info["genreUcid"].try &.as_s? ? "/channel/#{info["genreUcid"]}" : nil
end end
def is_vr : Bool? def is_vr : Bool?

View file

@ -327,7 +327,7 @@ def parse_video_info(video_id : String, player_response : Hash(String, JSON::Any
if metadata_title == "Category" if metadata_title == "Category"
contents = contents.try &.dig?("runs", 0) contents = contents.try &.dig?("runs", 0)
genre = contents.try &.["text"]? genre = contents.try &.["text"]?
genre_ucid = contents.try &.dig?("navigationEndpoint", "browseEndpoint", "browseId") genre_ucid = contents.try &.dig?("navigationEndpoint", "browseEndpoint", "browseId")
elsif metadata_title == "License" elsif metadata_title == "License"
@ -424,7 +424,7 @@ def parse_video_info(video_id : String, player_response : Hash(String, JSON::Any
"shortDescription" => JSON::Any.new(short_description.try &.as_s || nil), "shortDescription" => JSON::Any.new(short_description.try &.as_s || nil),
# Video metadata # Video metadata
"genre" => JSON::Any.new(genre.try &.as_s || ""), "genre" => JSON::Any.new(genre.try &.as_s || ""),
"genreUcid" => JSON::Any.new(genre_ucid.try &.as_s || ""), "genreUcid" => JSON::Any.new(genre_ucid.try &.as_s || nil),
"license" => JSON::Any.new(license.try &.as_s || ""), "license" => JSON::Any.new(license.try &.as_s || ""),
# Music section # Music section
"music" => JSON.parse(music_list.to_json), "music" => JSON.parse(music_list.to_json),