summaryrefslogtreecommitdiffstats
path: root/gallery_dl/extractor/weibo.py
diff options
context:
space:
mode:
Diffstat (limited to 'gallery_dl/extractor/weibo.py')
-rw-r--r--gallery_dl/extractor/weibo.py32
1 files changed, 20 insertions, 12 deletions
diff --git a/gallery_dl/extractor/weibo.py b/gallery_dl/extractor/weibo.py
index bdbdc8c..189c0c5 100644
--- a/gallery_dl/extractor/weibo.py
+++ b/gallery_dl/extractor/weibo.py
@@ -99,13 +99,14 @@ class WeiboExtractor(Extractor):
else:
yield pic["largest"].copy()
- if "page_info" in status:
- page_info = status["page_info"]
- if "media_info" not in page_info or not self.videos:
- return
- media = max(page_info["media_info"]["playback_list"],
- key=lambda m: m["meta"]["quality_index"])
- yield media["play_info"].copy()
+ if "page_info" in status and self.videos:
+ try:
+ media = max(status["page_info"]["media_info"]["playback_list"],
+ key=lambda m: m["meta"]["quality_index"])
+ except KeyError:
+ pass
+ else:
+ yield media["play_info"].copy()
def _status_by_id(self, status_id):
url = "{}/ajax/statuses/show?id={}".format(self.root, status_id)
@@ -147,14 +148,17 @@ class WeiboExtractor(Extractor):
return
yield from statuses
- if "next_cursor" in data:
+ if "next_cursor" in data: # videos, newvideo
params["cursor"] = data["next_cursor"]
- elif "page" in params:
+ elif "page" in params: # home, article
params["page"] += 1
- elif data["since_id"]:
+ elif data["since_id"]: # album
params["sinceid"] = data["since_id"]
- else:
- params["since_id"] = statuses[-1]["id"] - 1
+ else: # feed, last album page
+ try:
+ params["since_id"] = statuses[-1]["id"] - 1
+ except KeyError:
+ return
def _sina_visitor_system(self, response):
self.log.info("Sina Visitor System")
@@ -366,6 +370,10 @@ class WeiboStatusExtractor(WeiboExtractor):
"pattern": r"https://g\.us\.sinaimg.cn/o0/qNZcaAAglx07Wuf921CM0104"
r"120005tc0E010\.mp4\?label=gif_mp4",
}),
+ # missing 'playback_list' (#2792)
+ ("https://weibo.com/2909128931/4409545658754086", {
+ "count": 9,
+ }),
("https://m.weibo.cn/status/4339748116375525"),
("https://m.weibo.cn/5746766133/4339748116375525"),
)