|
|
|
@ -570,6 +570,10 @@ struct Video
|
|
|
|
|
info["authorThumbnail"]?.try &.as_s || ""
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def author_verified : Bool
|
|
|
|
|
info["authorVerified"].as_bool
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def sub_count_text : String
|
|
|
|
|
info["subCountText"]?.try &.as_s || "-"
|
|
|
|
|
end
|
|
|
|
@ -822,6 +826,7 @@ def parse_related_video(related : JSON::Any) : Hash(String, JSON::Any)?
|
|
|
|
|
.try &.dig?("runs", 0)
|
|
|
|
|
|
|
|
|
|
author = channel_info.try &.dig?("text")
|
|
|
|
|
authorVerified = channel_info.try &.dig?("ownerBadges") != nil
|
|
|
|
|
ucid = channel_info.try { |ci| HelperExtractors.get_browse_id(ci) }
|
|
|
|
|
|
|
|
|
|
# "4,088,033 views", only available on compact renderer
|
|
|
|
@ -845,6 +850,7 @@ def parse_related_video(related : JSON::Any) : Hash(String, JSON::Any)?
|
|
|
|
|
"length_seconds" => JSON::Any.new(length || "0"),
|
|
|
|
|
"view_count" => JSON::Any.new(view_count || "0"),
|
|
|
|
|
"short_view_count" => JSON::Any.new(short_view_count || "0"),
|
|
|
|
|
"author_verified" => JSON::Any.new(authorVerified),
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@ -1037,7 +1043,7 @@ def extract_video_info(video_id : String, proxy_region : String? = nil, context_
|
|
|
|
|
|
|
|
|
|
author_info = video_secondary_renderer.try &.dig?("owner", "videoOwnerRenderer")
|
|
|
|
|
author_thumbnail = author_info.try &.dig?("thumbnail", "thumbnails", 0, "url")
|
|
|
|
|
|
|
|
|
|
params["authorVerified"] = JSON::Any.new(author_info.try &.["badges"]? != nil)
|
|
|
|
|
params["authorThumbnail"] = JSON::Any.new(author_thumbnail.try &.as_s || "")
|
|
|
|
|
|
|
|
|
|
params["subCountText"] = JSON::Any.new(author_info.try &.["subscriberCountText"]?
|
|
|
|
|