1
0
mirror of https://git.sr.ht/~cadence/NewLeaf synced 2024-11-14 12:07:30 +00:00

Add videoThumbnails

This commit is contained in:
Cadence Ember 2020-08-12 01:22:41 +12:00
parent 69a371fbc0
commit 984781ea3c
No known key found for this signature in database
GPG Key ID: 128B99B1B74A6412

View File

@ -100,6 +100,26 @@ def get_length_text_or_live_now(length_container):
else: else:
return "Live now" return "Live now"
def generate_video_thumbnails(id):
types = [
# quality, url part, width, height
["maxres", "maxresdefault", 1280, 720],
["maxresdefault", "maxresdefault", 180, 720],
["sddefault", "sddefault", 640, 480],
["high", "hqdefault", 480, 360],
["medium", "mqdefault", 320, 180],
["default", "default", 120, 90],
["start", "1", 120, 90],
["middle", "2", 120, 90],
["end", "3", 120, 90]
]
return [{
"quality": type[0],
"url": "https://i.ytimg.com/vi/{}/{}.jpg".format(id, type[1]),
"width": type[2],
"height": type[3]
} for type in types]
class Second(object): class Second(object):
def __init__(self): def __init__(self):
self.video_cache = TTLCache(maxsize=50, ttl=300) self.video_cache = TTLCache(maxsize=50, ttl=300)
@ -161,7 +181,7 @@ class Second(object):
"type": "video", "type": "video",
"title": info["title"], "title": info["title"],
"videoId": info["id"], "videoId": info["id"],
"videoThumbnails": [], "videoThumbnails": generate_video_thumbnails(info["id"]),
"storyboards": None, "storyboards": None,
"description": info["description"], "description": info["description"],
"descriptionHtml": info["description"], "descriptionHtml": info["description"],
@ -263,7 +283,7 @@ class Second(object):
result["recommendedVideos"] = list({ result["recommendedVideos"] = list({
"videoId": r["videoId"], "videoId": r["videoId"],
"title": r["title"]["simpleText"], "title": r["title"]["simpleText"],
"videoThumbnails": [], "videoThumbnails": generate_video_thumbnails(r["videoId"]),
"author": combine_runs(r["longBylineText"]), "author": combine_runs(r["longBylineText"]),
"authorUrl": r["longBylineText"]["runs"][0]["navigationEndpoint"]["commandMetadata"]["webCommandMetadata"]["url"], "authorUrl": r["longBylineText"]["runs"][0]["navigationEndpoint"]["commandMetadata"]["webCommandMetadata"]["url"],
"authorId": r["longBylineText"]["runs"][0]["navigationEndpoint"]["browseEndpoint"]["browseId"], "authorId": r["longBylineText"]["runs"][0]["navigationEndpoint"]["browseEndpoint"]["browseId"],
@ -403,7 +423,7 @@ class Second(object):
"author": info["uploader"], "author": info["uploader"],
"authorId": info["uploader_id"], "authorId": info["uploader_id"],
"authorUrl": info["uploader_url"], "authorUrl": info["uploader_url"],
"videoThumbnails": [], "videoThumbnails": generate_video_thumbnails(info["id"]),
"description": None, "description": None,
"descriptionHtml": None, "descriptionHtml": None,
"viewCount": None, "viewCount": None,
@ -455,7 +475,7 @@ class Second(object):
"author": combine_runs(video["longBylineText"]), "author": combine_runs(video["longBylineText"]),
"authorId": video["longBylineText"]["runs"][0]["navigationEndpoint"]["browseEndpoint"]["browseId"], "authorId": video["longBylineText"]["runs"][0]["navigationEndpoint"]["browseEndpoint"]["browseId"],
"authorUrl": video["longBylineText"]["runs"][0]["navigationEndpoint"]["commandMetadata"]["webCommandMetadata"]["url"], "authorUrl": video["longBylineText"]["runs"][0]["navigationEndpoint"]["commandMetadata"]["webCommandMetadata"]["url"],
"videoThumbnails": [], "videoThumbnails": generate_video_thumbnails(video["videoId"]),
"description": combine_runs(video["descriptionSnippet"]) if "descriptionSnippet" in video else "", "description": combine_runs(video["descriptionSnippet"]) if "descriptionSnippet" in video else "",
"descriptionHtml": combine_runs_html(video["descriptionSnippet"]) if "descriptionSnippet" in video else "", "descriptionHtml": combine_runs_html(video["descriptionSnippet"]) if "descriptionSnippet" in video else "",
"viewCount": get_view_count_or_recommended(video), "viewCount": get_view_count_or_recommended(video),
@ -484,7 +504,7 @@ class Second(object):
"author": None, "author": None,
"authorId": None, "authorId": None,
"authorUrl": None, "authorUrl": None,
"videoThumbnails": [], "videoThumbnails": generate_video_thumbnails(video["id"]),
"description": None, "description": None,
"descriptionHtml": None, "descriptionHtml": None,
"viewCount": None, "viewCount": None,