Commit 2ff236b

benny-dou <60535774+benny-dou@users.noreply.github.com>
2025-07-15 04:00:17
fix(social): use `stream` for media downloading of weibo and xiaohongshu
1 parent 2f83bd1
Changed files (2)
src/preview/weibo.py
@@ -174,16 +174,16 @@ async def parse_weibo_info(post_id: str, data: dict | None = None, **kwargs) ->
         video_url = x.get("videoSrc")
         if mtype == "livephoto":
             # media.append({"photo": download_file(photo_url, **kwargs)})  # main photo
-            media.append({"video": download_file(video_url, path=f"{DOWNLOAD_DIR}/{pid}.mov", headers={"user-agent": TELEGRAM_UA}, proxy=PROXY.WEIBO, **kwargs)})
+            media.append({"video": download_file(video_url, path=f"{DOWNLOAD_DIR}/{pid}.mov", headers={"user-agent": TELEGRAM_UA}, proxy=PROXY.WEIBO, stream=True, **kwargs)})
         elif mtype in ["video", "gifvideos"]:
-            media.append({"video": download_file(video_url, suffix=".mp4", headers={"user-agent": TELEGRAM_UA}, proxy=PROXY.WEIBO, **kwargs)})
+            media.append({"video": download_file(video_url, suffix=".mp4", headers={"user-agent": TELEGRAM_UA}, proxy=PROXY.WEIBO, stream=True, **kwargs)})
         else:
-            media.append({"photo": download_file(photo_url, headers={"user-agent": TELEGRAM_UA}, proxy=PROXY.WEIBO, **kwargs)})
+            media.append({"photo": download_file(photo_url, headers={"user-agent": TELEGRAM_UA}, proxy=PROXY.WEIBO, stream=True, **kwargs)})
     if page_info := data.get("page_info", {}):
         videos = page_info.get("urls", {})
         if video_urls := [videos.get(quality) for quality in ["mp4_720p_mp4", "mp4_hd_mp4", "mp4_ld_mp4"] if videos.get(quality)]:
             # This maybe already downloaded by the above loop (for loop in data['pics'])
-            media.append({"video": download_first_success_urls(video_urls, skip_exist=True, suffix=".mp4", headers={"user-agent": TELEGRAM_UA}, proxy=PROXY.WEIBO, **kwargs)})
+            media.append({"video": download_first_success_urls(video_urls, skip_exist=True, suffix=".mp4", headers={"user-agent": TELEGRAM_UA}, proxy=PROXY.WEIBO, stream=True, **kwargs)})
     info["post_id"] = glom(data, "id", default=post_id)
     info["author"] = glom(data, "user.screen_name", default="")
     info["author_url"] = f"https://m.weibo.cn/detail/{post_id}"  # for weibo post, use post url as author url
src/preview/xiaohongshu.py
@@ -69,7 +69,7 @@ async def preview_xhs(client: Client, message: Message, url: str = "", db_key: s
                     video_urls.append(x["masterUrl"])
                 if x.get("backupUrls"):
                     video_urls.extend(x.get("backupUrls", []))
-        media.append({"video": download_first_success_urls(video_urls, suffix=".mp4", proxy=PROXY.XHS, **kwargs)})
+        media.append({"video": download_first_success_urls(video_urls, suffix=".mp4", proxy=PROXY.XHS, stream=True, **kwargs)})
     else:
         for img_info in note.get("imageList", []):
             img_url = img_info.get("urlDefault") or img_info.get("url") or ""
@@ -82,9 +82,9 @@ async def preview_xhs(client: Client, message: Message, url: str = "", db_key: s
                             video_urls.append(x["masterUrl"])
                         if x.get("backupUrls"):
                             video_urls.extend(x.get("backupUrls", []))
-                media.append({"livephoto": download_first_success_urls(video_urls, suffix=".mp4", proxy=PROXY.XHS, **kwargs)})
+                media.append({"livephoto": download_first_success_urls(video_urls, suffix=".mp4", proxy=PROXY.XHS, stream=True, **kwargs)})
             else:
-                media.append({"photo": download_file(img_url, suffix=".jpg", proxy=PROXY.XHS, **kwargs)})
+                media.append({"photo": download_file(img_url, suffix=".jpg", proxy=PROXY.XHS, stream=True, **kwargs)})
 
     title = note.get("title", "")
     author = note.get("user", {}).get("nickname", "")