Add support for "vmap" videos
This commit is contained in:
parent
ac8d0e2052
commit
13dc5efcf6
|
@ -100,7 +100,12 @@ proc parseConversation*(node: XmlNode): Conversation =
|
||||||
|
|
||||||
proc parseVideo*(node: JsonNode): Video =
|
proc parseVideo*(node: JsonNode): Video =
|
||||||
let track = node{"track"}
|
let track = node{"track"}
|
||||||
|
let contentType = track["contentType"].to(string)
|
||||||
|
|
||||||
|
case contentType
|
||||||
|
of "media_entity":
|
||||||
result = Video(
|
result = Video(
|
||||||
|
contentType: m3u8,
|
||||||
thumb: node["posterImage"].to(string),
|
thumb: node["posterImage"].to(string),
|
||||||
id: track["contentId"].to(string),
|
id: track["contentId"].to(string),
|
||||||
length: track["durationMs"].to(int),
|
length: track["durationMs"].to(int),
|
||||||
|
@ -108,3 +113,12 @@ proc parseVideo*(node: JsonNode): Video =
|
||||||
url: track["playbackUrl"].to(string),
|
url: track["playbackUrl"].to(string),
|
||||||
available: track{"mediaAvailability"}["status"].to(string) == "available"
|
available: track{"mediaAvailability"}["status"].to(string) == "available"
|
||||||
)
|
)
|
||||||
|
of "vmap":
|
||||||
|
result = Video(
|
||||||
|
contentType: vmap,
|
||||||
|
thumb: node["posterImage"].to(string),
|
||||||
|
url: track["vmapUrl"].to(string),
|
||||||
|
length: track["durationMs"].to(int),
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
echo "Can't parse video of type ", contentType
|
||||||
|
|
|
@ -31,12 +31,16 @@ db("cache.db", "", "", ""):
|
||||||
.}: Time
|
.}: Time
|
||||||
|
|
||||||
type
|
type
|
||||||
|
VideoType* = enum
|
||||||
|
vmap, m3u8
|
||||||
|
|
||||||
Video* = object
|
Video* = object
|
||||||
id*: string
|
contentType*: VideoType
|
||||||
url*: string
|
url*: string
|
||||||
thumb*: string
|
thumb*: string
|
||||||
length*: int
|
id*: string
|
||||||
views*: string
|
views*: string
|
||||||
|
length*: int
|
||||||
available*: bool
|
available*: bool
|
||||||
|
|
||||||
Gif* = object
|
Gif* = object
|
||||||
|
|
Loading…
Reference in New Issue