feat: extract author info from aweme items

This commit is contained in:
wangshaoqing 2026-05-06 17:18:24 +08:00
parent c56c54d35d
commit 96f96c2295
2 changed files with 31 additions and 0 deletions

View File

@ -199,11 +199,18 @@ def parse_aweme_items(body: Any) -> list[dict[str, str]]:
continue continue
title = str(aweme.get("desc") or "").strip() or "untitled" title = str(aweme.get("desc") or "").strip() or "untitled"
author = aweme.get("author") or {}
author_name = str(author.get("nickname") or "").strip() or "unknown"
author_id = str(author.get("uid") or "").strip() or "unknown"
items.append( items.append(
{ {
"title": title, "title": title,
"video_id": video_id, "video_id": video_id,
"video_url": choose_video_url([str(url) for url in url_list]), "video_url": choose_video_url([str(url) for url in url_list]),
"author_name": author_name,
"author_id": author_id,
} }
) )

View File

@ -254,6 +254,30 @@ class DouyinModuleTests(unittest.TestCase):
browser_port=None, browser_port=None,
) )
def test_parse_aweme_items_extracts_author_info(self) -> None:
module = importlib.import_module("Douyin")
payload = {
"aweme_list": [
{
"aweme_id": "7619989983668240802",
"desc": "测试视频",
"author": {
"nickname": "测试博主",
"uid": "123456789"
},
"video": {
"play_addr": {
"url_list": ["https://v26-web.douyinvod.com/example/video.mp4"]
}
},
}
]
}
items = module.parse_aweme_items(payload)
self.assertEqual(len(items), 1)
self.assertEqual(items[0]["author_name"], "测试博主")
self.assertEqual(items[0]["author_id"], "123456789")
def test_build_video_page_url_uses_aweme_id(self) -> None: def test_build_video_page_url_uses_aweme_id(self) -> None:
module = importlib.import_module("Douyin") module = importlib.import_module("Douyin")
self.assertEqual( self.assertEqual(