redfox-python-sdk 0.7.4__py3-none-any.whl → 0.7.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
redfox/client.py CHANGED
@@ -34,6 +34,9 @@ from .endpoints.tools import ToolsAPI
34
34
  from .endpoints.weibo import WeiboAPI
35
35
  from .endpoints.baijiahao import BaijiahaoAPI
36
36
  from .endpoints.zhihu import ZhihuAPI
37
+ from .endpoints.facebook import FacebookAPI
38
+ from .endpoints.gemini_image import GeminiImageAPI
39
+ from .endpoints.account import RedFoxAccountAPI
37
40
 
38
41
  logger = logging.getLogger("redfox")
39
42
 
@@ -239,6 +242,9 @@ class RedFoxClient(_RequestMixin):
239
242
  self.weibo = WeiboAPI(self)
240
243
  self.baijiahao = BaijiahaoAPI(self)
241
244
  self.zhihu = ZhihuAPI(self)
245
+ self.facebook = FacebookAPI(self)
246
+ self.gemini_image = GeminiImageAPI(self)
247
+ self.account = RedFoxAccountAPI(self)
242
248
 
243
249
  def request(
244
250
  self,
@@ -462,6 +468,9 @@ class AsyncRedFoxClient(_RequestMixin):
462
468
  self.weibo = WeiboAPI(self)
463
469
  self.baijiahao = BaijiahaoAPI(self)
464
470
  self.zhihu = ZhihuAPI(self)
471
+ self.facebook = FacebookAPI(self)
472
+ self.gemini_image = GeminiImageAPI(self)
473
+ self.account = RedFoxAccountAPI(self)
465
474
 
466
475
  async def request(
467
476
  self,
@@ -0,0 +1,50 @@
1
+ """红狐平台账户 API 端点(余额 / 调用记录)"""
2
+
3
+ from typing import Optional, Dict, Any
4
+
5
+
6
+ class RedFoxAccountAPI:
7
+ """
8
+ 红狐平台账户 API 集合
9
+
10
+ 包含账户余额查询、接口调用记录查询等接口。
11
+ """
12
+
13
+ def __init__(self, client):
14
+ self._client = client
15
+
16
+ def balance(self, source: str = "用户余额查询-SDK") -> dict:
17
+ """
18
+ 查询账户余额
19
+
20
+ :return: 余额字典,包含 totalAvailablePoints(剩余积分)、
21
+ freeAvailablePoints(剩余免费积分)、paidAvailablePoints(剩余付费积分)
22
+ """
23
+ return self._client.get(
24
+ "/story/web/points/api-key/balance",
25
+ params={"apiKey": self._client.api_key},
26
+ source=source,
27
+ )
28
+
29
+ def consume_flows(
30
+ self,
31
+ page_num: int = 1,
32
+ page_size: int = 20,
33
+ source: str = "接口调用记录查询-SDK",
34
+ ) -> dict:
35
+ """
36
+ 查询接口调用记录
37
+
38
+ :param page_num: 页码,默认 1
39
+ :param page_size: 每页条数,默认 20
40
+ :return: 调用记录字典,包含 total/pages/records(含消耗积分、原因、调用时间)
41
+ """
42
+ return self._client.get(
43
+ "/story/web/points/api-key/consume-flows",
44
+ params={
45
+ "apiKey": self._client.api_key,
46
+ "pageNum": str(page_num),
47
+ "pageSize": str(page_size),
48
+ },
49
+ source=source,
50
+ )
@@ -9,6 +9,8 @@ class AISearchAPI:
9
9
 
10
10
  支持 Kimi、豆包、Deepseek、元宝、千问、百度六种 AI 搜索引擎。
11
11
  每种引擎均为异步模式:先 submit 提交任务,再 result 查询结果。
12
+
13
+ 另含 Kimi K3 纯文字搜索,以及豆包/千问含商品卡信息的纯文本搜索。
12
14
  """
13
15
 
14
16
  def __init__(self, client):
@@ -157,3 +159,72 @@ class AISearchAPI:
157
159
  return self._client.post(
158
160
  "/story/api/deepSearch/bdResult", data={"taskId": task_id}, source=source
159
161
  )
162
+
163
+ # ─── Kimi K3 ────────────────────────────────────────────
164
+
165
+ def kimi_k3_submit(self, inquiry_text: str, source: str = "Kimi K3 纯文字搜索-提交任务-SDK") -> dict:
166
+ """
167
+ kimi-K3 纯文字搜索 - 提交任务
168
+
169
+ :param inquiry_text: 输入文本(必填)
170
+ :return: 包含 taskId 的字典
171
+ """
172
+ return self._client.post(
173
+ "/story/api/kimi/submitK3", data={"inquiryText": inquiry_text}, source=source
174
+ )
175
+
176
+ # ─── 豆包(含商品卡信息) ─────────────────────────────────
177
+
178
+ def doubao_goods_submit(
179
+ self, inquiry_text: str, source: str = "豆包纯文本搜索(含商品卡)-提交任务-SDK"
180
+ ) -> dict:
181
+ """
182
+ 豆包纯文本搜索(含商品卡信息) - 提交任务
183
+
184
+ :param inquiry_text: 搜索文本(必填)
185
+ :return: 包含 taskId 的字典
186
+ """
187
+ return self._client.post(
188
+ "/story/api/deepSearch/dbaSubmit", data={"inquiryText": inquiry_text}, source=source
189
+ )
190
+
191
+ def doubao_goods_result(
192
+ self, task_id: str, source: str = "豆包纯文本搜索(含商品卡)-查询结果-SDK"
193
+ ) -> dict:
194
+ """
195
+ 豆包纯文本搜索(含商品卡信息) - 查询任务结果
196
+
197
+ :param task_id: 任务 ID(由 doubao_goods_submit 返回)
198
+ :return: 任务结果字典,包含参考文档 searchGuid、主回答 content、商品卡 cardData
199
+ """
200
+ return self._client.post(
201
+ "/story/api/deepSearch/dbaResult", data={"taskId": task_id}, source=source
202
+ )
203
+
204
+ # ─── 千问(含商品卡信息) ─────────────────────────────────
205
+
206
+ def qianwen_goods_submit(
207
+ self, inquiry_text: str, source: str = "千问纯文本搜索(含商品卡)-提交任务-SDK"
208
+ ) -> dict:
209
+ """
210
+ 千问纯文本搜索(含商品卡信息) - 提交任务
211
+
212
+ :param inquiry_text: 搜索文本(必填)
213
+ :return: 包含 taskId 的字典
214
+ """
215
+ return self._client.post(
216
+ "/story/api/deepSearch/qwaSubmit", data={"inquiryText": inquiry_text}, source=source
217
+ )
218
+
219
+ def qianwen_goods_result(
220
+ self, task_id: str, source: str = "千问纯文本搜索(含商品卡)-查询结果-SDK"
221
+ ) -> dict:
222
+ """
223
+ 千问纯文本搜索(含商品卡信息) - 查询任务结果
224
+
225
+ :param task_id: 任务 ID(由 qianwen_goods_submit 返回)
226
+ :return: 任务结果字典,包含 AI 导购结果 result、商品卡片 cardData
227
+ """
228
+ return self._client.post(
229
+ "/story/api/deepSearch/qwaResult", data={"taskId": task_id}, source=source
230
+ )
@@ -7,7 +7,7 @@ class BilibiliAPI:
7
7
  """
8
8
  哔哩哔哩平台 API 集合
9
9
 
10
- 包含 B 站账号查询、作品搜索、作品详情等接口。
10
+ 包含 B 站账号查询、作品搜索、作品详情、视频字幕提取等接口。
11
11
  """
12
12
 
13
13
  def __init__(self, client):
@@ -160,3 +160,16 @@ class BilibiliAPI:
160
160
  return self._client.post(
161
161
  "/story/api/parseWork/bilibiliSubtitle/result", data={"taskId": task_id}, source=source
162
162
  )
163
+
164
+ def get_subtitles(self, url: str, source: str = "哔哩哔哩视频字幕提取-SDK") -> dict:
165
+ """
166
+ 哔哩哔哩视频字幕提取
167
+
168
+ 输入 B 站视频链接,返回视频信息及各语言、各格式的字幕下载地址。
169
+
170
+ :param url: 视频链接(必填),如 https://www.bilibili.com/video/BV1ZmrxB6Eyy
171
+ :return: 字幕信息字典,包含 title/duration/subtitles(按语言分组)
172
+ """
173
+ return self._client.post(
174
+ "/story/api/parseWork/videoSubtitle/bili", data={"url": url}, source=source
175
+ )
@@ -7,7 +7,7 @@ class DongchediAPI:
7
7
  """
8
8
  懂车帝平台 API 集合
9
9
 
10
- 包含懂车帝作品搜索、作品详情、用户作品列表、用户搜索等接口。
10
+ 包含懂车帝作品搜索、作品详情、用户作品列表、用户搜索、账号详情+作品列表等接口。
11
11
  """
12
12
 
13
13
  def __init__(self, client):
@@ -76,3 +76,16 @@ class DongchediAPI:
76
76
  data={"keyword": keyword, "offset": offset},
77
77
  source=source,
78
78
  )
79
+
80
+ def get_account_works(self, user_id: str, source: str = "懂车帝账号详情+作品列表-SDK") -> dict:
81
+ """
82
+ 懂车帝账号详情+作品列表
83
+
84
+ :param user_id: 用户 ID(必填)
85
+ :return: 账号详情与作品列表字典,包含 account/workList
86
+ """
87
+ return self._client.post(
88
+ "/story/api/dongchedi/accountWorks",
89
+ data={"userId": user_id},
90
+ source=source,
91
+ )
@@ -74,3 +74,63 @@ class DoubaoVideoAPI:
74
74
  data={"taskId": task_id},
75
75
  source=source,
76
76
  )
77
+
78
+ # ─── Seedance 2.0(新端点) ──────────────────────────────
79
+
80
+ def seedance_submit(
81
+ self,
82
+ prompt: str,
83
+ aspect_ratio: str = "adaptive",
84
+ duration: int = 5,
85
+ resolution: str = "720p",
86
+ generate_audio: bool = True,
87
+ return_last_frame: bool = False,
88
+ image_with_roles: Optional[List[Dict[str, Any]]] = None,
89
+ source: str = "豆包 Seedance 2.0 视频生成(新端点)-SDK",
90
+ ) -> dict:
91
+ """
92
+ 提交 Seedance 2.0 视频生成任务(新端点)
93
+
94
+ 支持文生视频、首帧/首尾帧图生视频、多模态参考生视频。
95
+
96
+ :param prompt: 生成提示词(必填)
97
+ :param aspect_ratio: 视频宽高比:21:9、16:9、4:3、1:1、3:4、9:16、
98
+ adaptive(由上游根据输入素材自动选择)
99
+ :param duration: 视频时长(秒),取值范围 4-15
100
+ :param resolution: 视频分辨率:480p、720p,默认 720p
101
+ :param generate_audio: 是否自动生成配音/背景音乐
102
+ :param return_last_frame: 是否返回视频最后一帧图片
103
+ :param image_with_roles: 参考图片列表,每项如
104
+ {"url": "图片URL", "role": "first_frame/last_frame/reference_image"},
105
+ first_frame/last_frame 最多 1 张,reference_image 最多 9 张
106
+ :return: 含 taskId 的字典
107
+ """
108
+ data: Dict[str, Any] = {
109
+ "prompt": prompt,
110
+ "aspectRatio": aspect_ratio,
111
+ "duration": duration,
112
+ "resolution": resolution,
113
+ "generateAudio": generate_audio,
114
+ "returnLastFrame": return_last_frame,
115
+ }
116
+ if image_with_roles:
117
+ data["imageWithRoles"] = image_with_roles
118
+ return self._client.post(
119
+ "/story/api/parseWork/videoGen/seedanceSubmit", data=data, source=source
120
+ )
121
+
122
+ def seedance_result(
123
+ self, task_id: str, source: str = "查询 Seedance 2.0 视频生成结果(新端点)-SDK"
124
+ ) -> dict:
125
+ """
126
+ 查询 Seedance 2.0 视频生成结果(新端点)
127
+
128
+ :param task_id: 任务 ID(由 seedance_submit 返回)
129
+ :return: 视频生成结果字典,包含 status/progress/videoUrl/failReason 等。
130
+ status 取值 completed/processing/failed
131
+ """
132
+ return self._client.post(
133
+ "/story/api/parseWork/videoGen/seedanceResult",
134
+ data={"taskId": task_id},
135
+ source=source,
136
+ )
@@ -0,0 +1,84 @@
1
+ """Facebook 平台 API 端点"""
2
+
3
+ from typing import Optional, Dict, Any
4
+
5
+
6
+ class FacebookAPI:
7
+ """
8
+ Facebook 平台 API 集合
9
+
10
+ 包含 Facebook 主页信息、主页帖子列表、帖子详情、帖子评论等接口。
11
+ """
12
+
13
+ def __init__(self, client):
14
+ self._client = client
15
+
16
+ def get_user(self, url: str, source: str = "Facebook获取主页信息-SDK") -> dict:
17
+ """
18
+ Facebook获取主页信息
19
+
20
+ :param url: Facebook 主页 URL(必填),如 https://www.facebook.com/Meta
21
+ :return: 主页详细信息字典,包含分类、粉丝数、简介等
22
+ """
23
+ return self._client.post("/story/api/fb/userInfo", data={"url": url}, source=source)
24
+
25
+ def get_user_posts(
26
+ self,
27
+ url: str = None,
28
+ page_id: str = None,
29
+ cursor: str = None,
30
+ source: str = "Facebook获取主页帖子列表-SDK",
31
+ ) -> dict:
32
+ """
33
+ Facebook获取主页帖子列表
34
+
35
+ url 和 page_id 至少传一个,传 page_id 查询更快。
36
+
37
+ :param url: Facebook 主页 URL
38
+ :param page_id: Facebook 主页 ID(由 get_user 接口返回)
39
+ :param cursor: 分页 cursor,传上一页响应中的 paginationToken 翻页
40
+ :return: 帖子列表字典,包含 items/paginationToken
41
+ """
42
+ data: Dict[str, Any] = {}
43
+ if url:
44
+ data["url"] = url
45
+ if page_id:
46
+ data["pageId"] = page_id
47
+ if cursor:
48
+ data["cursor"] = cursor
49
+ return self._client.post("/story/api/fb/userPosts", data=data, source=source)
50
+
51
+ def get_post(self, url: str, source: str = "Facebook获取帖子详情-SDK") -> dict:
52
+ """
53
+ Facebook获取帖子详情
54
+
55
+ :param url: Facebook 帖子 URL(必填),如 https://www.facebook.com/reel/1746412686633900
56
+ :return: 帖子详情字典,包含 reactions 细分、预估触达、互动率等
57
+ """
58
+ return self._client.post("/story/api/fb/postDetail", data={"url": url}, source=source)
59
+
60
+ def get_post_comments(
61
+ self,
62
+ url: str = None,
63
+ feedback_id: str = None,
64
+ cursor: str = None,
65
+ source: str = "Facebook获取帖子评论-SDK",
66
+ ) -> dict:
67
+ """
68
+ Facebook获取帖子评论
69
+
70
+ url 和 feedback_id 至少传一个,传 feedback_id 查询更快。
71
+
72
+ :param url: Facebook 帖子 URL
73
+ :param feedback_id: 评论线程 feedback_id(由 get_post 接口返回)
74
+ :param cursor: 分页 cursor,传上一页响应中的 paginationToken 翻页
75
+ :return: 评论列表字典,包含 comments/paginationToken
76
+ """
77
+ data: Dict[str, Any] = {}
78
+ if url:
79
+ data["url"] = url
80
+ if feedback_id:
81
+ data["feedbackId"] = feedback_id
82
+ if cursor:
83
+ data["cursor"] = cursor
84
+ return self._client.post("/story/api/fb/postComment", data=data, source=source)
@@ -0,0 +1,74 @@
1
+ """Gemini 图片生成工具 API 端点(Nano Banana 2.1)"""
2
+
3
+ from typing import Optional, Dict, Any, List
4
+
5
+
6
+ class GeminiImageAPI:
7
+ """
8
+ Gemini 图片生成工具 API 集合(Nano Banana 2.1)
9
+
10
+ 支持 1K/2K/4K 分辨率输出。异步执行:submit() 返回 taskId,
11
+ 再轮询 result() 取 imageUrls。
12
+ """
13
+
14
+ # 服务端支持的输出分辨率档位
15
+ RESOLUTIONS = ("1K", "2K", "4K")
16
+
17
+ # 服务端支持的输出宽高比
18
+ SIZES = (
19
+ "1:1", "3:2", "2:3", "4:3", "3:4", "16:9", "9:16",
20
+ "5:4", "4:5", "21:9", "1:4", "4:1", "1:8", "8:1",
21
+ )
22
+
23
+ # result() 的 status 取值,仅后两者为终态
24
+ TERMINAL_STATUSES = ("completed", "failed")
25
+
26
+ def __init__(self, client):
27
+ self._client = client
28
+
29
+ def submit(
30
+ self,
31
+ prompt: str,
32
+ size: str = "16:9",
33
+ resolution: str = "2K",
34
+ image_urls: Optional[List[str]] = None,
35
+ metadata: Optional[Dict[str, Any]] = None,
36
+ source: str = "Gemini Nano Banana 2.1 图片生成-SDK",
37
+ ) -> dict:
38
+ """
39
+ 提交 Gemini Nano Banana 2.1 图片生成任务
40
+
41
+ :param prompt: 图片生成提示词(必填)
42
+ :param size: 输出图像宽高比,支持 1:1、3:2、2:3、4:3、3:4、16:9、9:16、
43
+ 5:4、4:5、21:9、1:4、4:1、1:8、8:1
44
+ :param resolution: 输出图像分辨率,支持 1K/2K/4K(大写 K)
45
+ :param image_urls: 参考图片 URL 列表,用于图生图场景,不传则为纯文生图
46
+ :param metadata: 附加元数据,如 {"retouchTool": "crop"}(可选)
47
+ :return: 包含 taskId 的字典
48
+ """
49
+ data: Dict[str, Any] = {
50
+ "prompt": prompt,
51
+ "size": size,
52
+ "resolution": resolution,
53
+ }
54
+ if image_urls:
55
+ data["imageUrls"] = image_urls
56
+ if metadata is not None:
57
+ data["metadata"] = metadata
58
+ return self._client.post(
59
+ "/story/api/parseWork/imageGen/geminiBanana21Submit", data=data, source=source
60
+ )
61
+
62
+ def result(self, task_id: str, source: str = "查询 Gemini 图片生成任务结果-SDK") -> dict:
63
+ """
64
+ 查询 Gemini Nano Banana 2.1 图片生成结果
65
+
66
+ :param task_id: 任务 ID(由 submit 接口返回)
67
+ :return: 任务结果字典,包含 status/progress/imageUrls/failReason 等。
68
+ status 取值 queued/in_progress/completed/failed,仅后两者为终态
69
+ """
70
+ return self._client.post(
71
+ "/story/api/parseWork/imageGen/geminiBanana21Result",
72
+ data={"taskId": task_id},
73
+ source=source,
74
+ )
@@ -7,7 +7,7 @@ class GPTImageAPI:
7
7
  """
8
8
  GPT 图片生成工具 API 集合
9
9
 
10
- 基于 gpt-image-2 模型,支持文生图和参考图生图(最多 2 张参考图)。
10
+ 基于 gpt-image-2 / gpt-image-2.5 模型,支持文生图和参考图生图。
11
11
  异步执行:submit() 返回 taskId,再轮询 result() 取 imageUrls。
12
12
  """
13
13
 
@@ -71,3 +71,64 @@ class GPTImageAPI:
71
71
  return self._client.post(
72
72
  "/story/api/parseWork/imageGen/gptImage2Result", data={"taskId": task_id}, source=source
73
73
  )
74
+
75
+ # ─── GPT-Image-2.5 ──────────────────────────────────────
76
+
77
+ # GPT-Image-2.5 支持的输出分辨率档位
78
+ RESOLUTIONS_25 = ("1K", "2K", "4K")
79
+
80
+ # GPT-Image-2.5 支持的输出宽高比
81
+ SIZES_25 = (
82
+ "1:1", "3:2", "2:3", "4:3", "3:4", "5:4",
83
+ "4:5", "16:9", "9:16", "21:9",
84
+ )
85
+
86
+ def submit_25(
87
+ self,
88
+ prompt: str,
89
+ resolution: str = "1K",
90
+ size: str = "1:1",
91
+ reference_images: Optional[List[str]] = None,
92
+ background: str = None,
93
+ source: str = "GPT-Image-2.5 图片生成-SDK",
94
+ ) -> dict:
95
+ """
96
+ 提交 GPT-Image-2.5 图片生成任务
97
+
98
+ 支持文生图和参考图生图,异步执行,提交后返回任务 ID。
99
+
100
+ :param prompt: 提示词(必填),使用参考图时,描述需要保留的主体和需要修改的内容
101
+ :param resolution: 分辨率档位:1K/2K/4K,默认 1K
102
+ :param size: 画面比例:1:1、3:2、2:3、4:3、3:4、5:4、4:5、16:9、9:16、21:9,默认 1:1
103
+ :param reference_images: 参考图片 URL 列表(图生图模式),不传则为纯文生图
104
+ :param background: 传入 "transparent" 生成透明背景图片,不传时正常生图
105
+ :return: 包含 taskId 的字典
106
+ """
107
+ data: Dict[str, Any] = {
108
+ "prompt": prompt,
109
+ "resolution": resolution,
110
+ "size": size,
111
+ }
112
+ if reference_images:
113
+ data["referenceImages"] = reference_images
114
+ if background is not None:
115
+ data["background"] = background
116
+ return self._client.post(
117
+ "/story/api/parseWork/imageGen/gptImage25Submit", data=data, source=source
118
+ )
119
+
120
+ def result_25(
121
+ self, task_id: str, source: str = "查询 GPT-Image-2.5 图片生成任务结果-SDK"
122
+ ) -> dict:
123
+ """
124
+ 查询 GPT-Image-2.5 图片生成结果
125
+
126
+ :param task_id: 任务 ID(由 submit_25 接口返回)
127
+ :return: 任务结果字典,包含 status/progress/imageUrls/failReason 等。
128
+ status 取值 queued/in_progress/completed/failed,仅后两者为终态
129
+ """
130
+ return self._client.post(
131
+ "/story/api/parseWork/imageGen/gptImage25Result",
132
+ data={"taskId": task_id},
133
+ source=source,
134
+ )
@@ -7,7 +7,7 @@ class TikTokAPI:
7
7
  """
8
8
  TikTok 平台 API 集合
9
9
 
10
- 包含 TikTok 账号搜索等接口。
10
+ 包含 TikTok 账号搜索、视频搜索、作品详情、话题搜索、评论等接口。
11
11
  """
12
12
 
13
13
  def __init__(self, client):
@@ -106,3 +106,129 @@ class TikTokAPI:
106
106
  data={"secUserId": sec_user_id},
107
107
  source=source,
108
108
  )
109
+
110
+ def search_topics(
111
+ self, keyword: str, offset: int = 0, source: str = "TikTok 话题搜索-SDK"
112
+ ) -> dict:
113
+ """
114
+ TikTok 指定关键词话题搜索
115
+
116
+ :param keyword: 搜索关键词(必填)
117
+ :param offset: 偏移量,首次传 0,后续传响应中的 nextCursor
118
+ :return: 话题列表字典,包含 topicList/nextCursor/hasMore
119
+ """
120
+ return self._client.post(
121
+ "/story/api/tiktok/ability/searchTopic",
122
+ data={"keyword": keyword, "offset": offset},
123
+ source=source,
124
+ )
125
+
126
+ def get_topic_works(
127
+ self,
128
+ ch_id: int,
129
+ cursor: int = 0,
130
+ region: str = None,
131
+ source: str = "获取 TikTok 话题作品数据-SDK",
132
+ ) -> dict:
133
+ """
134
+ 获取 TikTok 指定话题作品数据
135
+
136
+ :param ch_id: 话题 ID(必填)
137
+ :param cursor: 翻页游标,第一页传 0
138
+ :param region: 地区,支持 US、GB、FR、JP、VN、SG,默认 US
139
+ :return: 话题作品字典,包含 workList/nextCursor/hasMore
140
+ """
141
+ data: Dict[str, Any] = {"ch_id": ch_id, "cursor": cursor}
142
+ if region is not None:
143
+ data["region"] = region
144
+ return self._client.post(
145
+ "/story/api/tiktok/ability/topicAwemeList", data=data, source=source
146
+ )
147
+
148
+ def get_user_liked_works(
149
+ self, sec_user_id: str, max_cursor: int = 0, source: str = "获取 TikTok 用户喜欢作品数据-SDK"
150
+ ) -> dict:
151
+ """
152
+ 获取 TikTok 用户喜欢作品数据
153
+
154
+ :param sec_user_id: 用户加密 ID(sec_user_id,必填)
155
+ :param max_cursor: 翻页游标,第一页传 0
156
+ :return: 喜欢的作品字典,包含 workList/nextCursor/hasMore
157
+ """
158
+ return self._client.post(
159
+ "/story/api/tiktok/ability/userFavoriteAwemeList",
160
+ data={"sec_user_id": sec_user_id, "max_cursor": max_cursor},
161
+ source=source,
162
+ )
163
+
164
+ def get_user_following(
165
+ self,
166
+ user_id: str = None,
167
+ sec_user_id: str = None,
168
+ min_time: str = "0",
169
+ page_token: str = "",
170
+ source: str = "获取 TikTok 用户关注列表-SDK",
171
+ ) -> dict:
172
+ """
173
+ 获取 TikTok 指定用户的关注列表数据
174
+
175
+ user_id 和 sec_user_id 二选一。
176
+
177
+ :param user_id: 纯数字用户 ID
178
+ :param sec_user_id: 字母数字混合 ID
179
+ :param min_time: 翻页参数,首次传 "0",后续传上次返回的 minTime
180
+ :param page_token: 翻页 token,首次传空字符串,后续传上次返回的 pageToken
181
+ :return: 关注列表字典,包含 followingList/minTime/pageToken
182
+ """
183
+ data: Dict[str, Any] = {"minTime": str(min_time), "pageToken": str(page_token)}
184
+ if user_id:
185
+ data["userId"] = user_id
186
+ if sec_user_id:
187
+ data["secUserId"] = sec_user_id
188
+ return self._client.post(
189
+ "/story/api/tiktok/ability/userFollowing", data=data, source=source
190
+ )
191
+
192
+ def get_video_comments(
193
+ self, aweme_id: str, cursor: int = 0, source: str = "获取 TikTok 视频评论数据-SDK"
194
+ ) -> dict:
195
+ """
196
+ 获取 TikTok 单个视频评论数据
197
+
198
+ :param aweme_id: 作品 ID(必填)
199
+ :param cursor: 翻页游标,第一页传 0
200
+ :return: 评论列表字典,包含 commentList/nextCursor/hasMore
201
+ """
202
+ return self._client.post(
203
+ "/story/api/tiktok/ability/commentList",
204
+ data={"aweme_id": aweme_id, "cursor": cursor},
205
+ source=source,
206
+ )
207
+
208
+ def get_comment_replies(
209
+ self,
210
+ item_id: str,
211
+ comment_id: str,
212
+ cursor: int = 0,
213
+ count: int = 10,
214
+ source: str = "获取 TikTok 评论回复数据-SDK",
215
+ ) -> dict:
216
+ """
217
+ 获取 TikTok 指定视频的评论回复数据
218
+
219
+ :param item_id: 作品 ID(必填)
220
+ :param comment_id: 评论 ID(必填)
221
+ :param cursor: 翻页游标,第一页传 0
222
+ :param count: 每页数量,默认 10
223
+ :return: 评论回复字典,包含 commentList/nextCursor/hasMore
224
+ """
225
+ return self._client.post(
226
+ "/story/api/tiktok/ability/commentReply",
227
+ data={
228
+ "itemId": item_id,
229
+ "commentId": comment_id,
230
+ "cursor": cursor,
231
+ "count": count,
232
+ },
233
+ source=source,
234
+ )
redfox/endpoints/tools.py CHANGED
@@ -1,4 +1,4 @@
1
- """通用工具 API 端点(短视频下载 / 文件上传)"""
1
+ """通用工具 API 端点(短视频下载 / 文件上传 / 违禁词 / 提文案)"""
2
2
 
3
3
  from typing import Optional, Dict, Any
4
4
 
@@ -7,7 +7,8 @@ class ToolsAPI:
7
7
  """
8
8
  通用工具 API 集合
9
9
 
10
- 包含多平台短视频下载(去水印)和素材文件上传接口。
10
+ 包含多平台短视频下载(去水印)、素材文件上传、多平台违禁词查询、
11
+ 视频播放链接提取文案等接口。
11
12
  """
12
13
 
13
14
  def __init__(self, client):
@@ -157,3 +158,56 @@ class ToolsAPI:
157
158
  data={"format": format},
158
159
  source=source,
159
160
  )
161
+
162
+ # ─── 违禁词查询 ─────────────────────────────────────────
163
+
164
+ def sensitive_word_search(
165
+ self, content: str, source: str = "多平台违禁词查询-SDK"
166
+ ) -> dict:
167
+ """
168
+ 多平台违禁词查询
169
+
170
+ :param content: 待检测文本(必填),字数需小于 3000 字
171
+ :return: 检测结果字典,包含标注后的 content(违规词用带 class 的
172
+ span 标签包裹)、原始内容、命中的违规词类型列表
173
+ """
174
+ return self._client.post(
175
+ "/story/api/cozeSkill/sensitiveWordSearch",
176
+ data={"content": content},
177
+ source=source,
178
+ )
179
+
180
+ # ─── 视频播放链接提取文案 ────────────────────────────────
181
+
182
+ def audio_text_extract_submit(
183
+ self, url: str, source: str = "视频播放链接提取文案-提交任务-SDK"
184
+ ) -> dict:
185
+ """
186
+ 视频播放链接提取文案 - 提交任务
187
+
188
+ 输入可直接访问的视频播放地址,返回任务 ID。
189
+
190
+ :param url: 视频播放链接(必填)
191
+ :return: 包含 taskId 的字典
192
+ """
193
+ return self._client.post(
194
+ "/story/api/parseWork/audioTextExtract/submit/videoUrl",
195
+ data={"url": url},
196
+ source=source,
197
+ )
198
+
199
+ def audio_text_extract_result(
200
+ self, task_id: str, source: str = "视频播放链接提取文案-查询结果-SDK"
201
+ ) -> dict:
202
+ """
203
+ 视频播放链接提取文案 - 查询结果
204
+
205
+ :param task_id: 任务 ID(由 audio_text_extract_submit 返回)
206
+ :return: 提取结果字典,包含完整文案 text 和带时间戳的分句 stampSents。
207
+ status 取值 succeeded/processing/failed
208
+ """
209
+ return self._client.post(
210
+ "/story/api/parseWork/audioTextExtract/result",
211
+ data={"taskId": task_id},
212
+ source=source,
213
+ )
@@ -350,3 +350,53 @@ class WechatAPI:
350
350
  params={"rankDate": rank_date},
351
351
  source=source,
352
352
  )
353
+
354
+ def get_headline_growth_rank(
355
+ self,
356
+ rank_date: str,
357
+ page: int = 1,
358
+ author_type: str = None,
359
+ sort: str = None,
360
+ source: str = "公众号头条增长榜-SDK",
361
+ ) -> dict:
362
+ """
363
+ 公众号头条增长榜
364
+
365
+ 榜单每周一下午 16:30 更新上周数据。
366
+
367
+ :param rank_date: 榜单时间(必填),统计周周一,格式 yyyy-MM-dd HH:mm:ss
368
+ :param page: 页码,范围 1 至 5,默认 1
369
+ :param author_type: 作者类别,不传则为全部:人文资讯 知识百科 健康养生
370
+ 时尚潮流 美食餐饮 乐活生活 旅游出行 搞笑幽默
371
+ 情感心理 体育娱乐 美容美体 文摘精选 民生资讯
372
+ 财富理财 科技数码 创投商业 汽车交通 房产楼市
373
+ 职场发展 教育考试 学术研究 企业品牌 时事新闻
374
+ :param sort: 排序字段:cur_read=本周头条阅读量,prev_read=上周头条阅读量,
375
+ growth_val=增长值(默认),growth_pct=增长百分比
376
+ :return: 头条增长榜字典
377
+ """
378
+ data: Dict[str, Any] = {"rank_date": rank_date, "page": page}
379
+ if author_type is not None:
380
+ data["author_type"] = author_type
381
+ if sort is not None:
382
+ data["sort"] = sort
383
+ return self._client.post(
384
+ "/story/api/gzh/heima/rankList", data=data, source=source
385
+ )
386
+
387
+ def get_article_content_realtime(
388
+ self, article_url: str, source: str = "根据作品地址获取公众号作品(实时)-SDK"
389
+ ) -> dict:
390
+ """
391
+ 根据作品地址获取公众号作品(实时)
392
+
393
+ 通过文章链接实时查询公众号文章详细内容。
394
+
395
+ :param article_url: 文章链接(必填),如 https://mp.weixin.qq.com/s/xxx
396
+ :return: 文章详情字典,包含 articleTitle/articleContent/picUrl 等
397
+ """
398
+ return self._client.post(
399
+ "/story/api/gzh/ability/temp/article/content",
400
+ data={"articleUrl": article_url},
401
+ source=source,
402
+ )
redfox/endpoints/weibo.py CHANGED
@@ -7,12 +7,51 @@ class WeiboAPI:
7
7
  """
8
8
  微博平台 API 集合
9
9
 
10
- 包含微博账号搜索、微博内容详情、用户详情等接口。
10
+ 包含微博账号搜索、微博内容详情、用户详情、关键词搜索作品、热搜等接口。
11
11
  """
12
12
 
13
13
  def __init__(self, client):
14
14
  self._client = client
15
15
 
16
+ def search_works(
17
+ self,
18
+ keyword: str,
19
+ search_type: str = "61",
20
+ page: str = "1",
21
+ ext_param: str = None,
22
+ source: str = "微博关键词搜索作品-SDK",
23
+ ) -> dict:
24
+ """
25
+ 微博关键词搜索作品
26
+
27
+ :param keyword: 搜索关键词(必填)
28
+ :param search_type: 搜索类别:1=综合,3=搜索账号,60=热门,61=实时博文
29
+ :param page: 页码(必填)
30
+ :param ext_param: 认证类别:"3"=机构认证,"2"=个人认证,"0"=普通用户;
31
+ 不传则为搜索博文
32
+ :return: 搜索结果字典
33
+ """
34
+ data: Dict[str, Any] = {
35
+ "searchType": str(search_type),
36
+ "page": str(page),
37
+ "keyword": keyword,
38
+ }
39
+ if ext_param is not None:
40
+ data["extParam"] = ext_param
41
+ return self._client.post(
42
+ "/story/api/weibo/ability/searchWork", data=data, source=source
43
+ )
44
+
45
+ def get_hot_search(self, source: str = "微博热搜-SDK") -> dict:
46
+ """
47
+ 微博热搜
48
+
49
+ :return: 热搜列表字典,包含 list/cursor/hasMore/updateTime
50
+ """
51
+ return self._client.post(
52
+ "/story/api/weibo/ability/hotSearch", data={}, source=source
53
+ )
54
+
16
55
  def search_users(self, keyword: str, page: int = 1, source: str = "微博账号搜索-SDK") -> dict:
17
56
  """
18
57
  微博账号搜索
redfox/endpoints/zhihu.py CHANGED
@@ -7,12 +7,68 @@ class ZhihuAPI:
7
7
  """
8
8
  知乎平台 API 集合
9
9
 
10
- 包含知乎关键词搜索作品接口。
10
+ 包含知乎关键词搜索作品、文章详情、评论详情、账号详情、搜索热点等接口。
11
11
  """
12
12
 
13
13
  def __init__(self, client):
14
14
  self._client = client
15
15
 
16
+ def get_account(self, user_id: str, source: str = "知乎账号详情-SDK") -> dict:
17
+ """
18
+ 知乎账号详情
19
+
20
+ :param user_id: 用户 ID,从知乎主页链接中获取,如 he-jia-lei-80(必填)
21
+ :return: 账号详情字典,包含 nickname/fansNum/headline/ipLocation 等
22
+ """
23
+ return self._client.post(
24
+ "/story/api/zhihu/ability/accountDetail",
25
+ data={"userId": user_id},
26
+ source=source,
27
+ )
28
+
29
+ def get_article(self, article_id: str, source: str = "知乎文章详情-SDK") -> dict:
30
+ """
31
+ 知乎文章详情
32
+
33
+ :param article_id: 文章 ID(必填),如 2074146944805500249
34
+ :return: 文章详情字典,包含 content/likedNum/commentNum/opusUrl 等
35
+ """
36
+ return self._client.post(
37
+ "/story/api/zhihu/ability/articleDetail",
38
+ data={"articleId": article_id},
39
+ source=source,
40
+ )
41
+
42
+ def get_article_comments(
43
+ self,
44
+ article_id: str,
45
+ next_url: str = None,
46
+ source: str = "知乎评论详情-SDK",
47
+ ) -> dict:
48
+ """
49
+ 知乎评论详情
50
+
51
+ :param article_id: 文章 ID(必填)
52
+ :param next_url: 翻页地址,传上一页响应中的 nextUrl;为空表示第一页
53
+ :return: 评论列表字典,包含 items/nextUrl
54
+ """
55
+ data: Dict[str, Any] = {"articleId": article_id}
56
+ if next_url is not None:
57
+ data["nextUrl"] = next_url
58
+ return self._client.post(
59
+ "/story/api/zhihu/ability/articleComment", data=data, source=source
60
+ )
61
+
62
+ def get_hot_search(self, source: str = "知乎搜索热点-SDK") -> dict:
63
+ """
64
+ 获取知乎搜索热点
65
+
66
+ :return: 热点列表字典,包含 title/hotValue/label/rank
67
+ """
68
+ return self._client.post(
69
+ "/story/api/zhihu/ability/hotSearch", data={}, source=source
70
+ )
71
+
16
72
  def search_works(
17
73
  self,
18
74
  keyword: str,
@@ -1,26 +1,19 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.1
2
2
  Name: redfox-python-sdk
3
- Version: 0.7.4
3
+ Version: 0.7.5
4
4
  Summary: RedFox 红狐数据平台 Python SDK — 同步+异步双客户端,自动重试,零配置
5
5
  Home-page: https://redfox.hk
6
6
  Author: RedFox
7
7
  Author-email: dev@redfox.hk
8
+ License: UNKNOWN
9
+ Platform: UNKNOWN
8
10
  Classifier: Development Status :: 4 - Beta
9
11
  Classifier: Intended Audience :: Developers
10
12
  Classifier: License :: OSI Approved :: MIT License
11
13
  Classifier: Programming Language :: Python :: 3
12
14
  Requires-Python: >=3.8
13
15
  Description-Content-Type: text/markdown
14
- Requires-Dist: httpx>=0.25.0
15
- Dynamic: author
16
- Dynamic: author-email
17
- Dynamic: classifier
18
- Dynamic: description
19
- Dynamic: description-content-type
20
- Dynamic: home-page
21
- Dynamic: requires-dist
22
- Dynamic: requires-python
23
- Dynamic: summary
16
+ Requires-Dist: httpx (>=0.25.0)
24
17
 
25
18
  # RedFox Python SDK
26
19
 
@@ -36,7 +29,7 @@ Dynamic: summary
36
29
  </a>
37
30
  </p>
38
31
 
39
- [RedFoxHub](https://redfox.hk/?source=github) Python SDK,提供 [抖音](https://redfox.hk/apis/douyin/0OT1E306)、[小红书](https://redfox.hk/apis/xiaohongshu/4IVIDHEN)、[公众号](https://redfox.hk/apis/gongzhonghao/6C4A77XR)、[B站](https://redfox.hk/apis/bilibili/TIN1NMTZ)、[今日头条](https://redfox.hk/apis/jinritoutiao/28CFGF5I)、[TikTok](https://redfox.hk/apis/tool-tiktok/20070019)、快手、视频号、YouTube、X (Twitter)、Instagram、微博、百家号、知乎、懂车帝、易车、汽车之家 17 大内容平台的数据采集接口,多平台热点榜单聚合接口,短视频去水印下载与素材上传工具,以及 GPT 图片生成、豆包图片/视频生成、AI 搜索(Kimi/豆包/Deepseek/元宝/千问/百度)AI 能力接口。
32
+ [RedFoxHub](https://redfox.hk/?source=github) Python SDK,提供 [抖音](https://redfox.hk/apis/douyin/0OT1E306)、[小红书](https://redfox.hk/apis/xiaohongshu/4IVIDHEN)、[公众号](https://redfox.hk/apis/gongzhonghao/6C4A77XR)、[B站](https://redfox.hk/apis/bilibili/TIN1NMTZ)、[今日头条](https://redfox.hk/apis/jinritoutiao/28CFGF5I)、[TikTok](https://redfox.hk/apis/tool-tiktok/20070019)、快手、视频号、YouTube、X (Twitter)、Instagram、Facebook、微博、百家号、知乎、懂车帝、易车、汽车之家 18 大内容平台的数据采集接口,多平台热点榜单聚合接口,短视频去水印下载与素材上传工具、多平台违禁词查询,以及 GPT/Gemini 图片生成、豆包图片/视频生成、AI 搜索(Kimi/豆包/Deepseek/元宝/千问/百度)AI 能力接口。
40
33
 
41
34
  ## 为什么选择 RedFoxHub
42
35
 
@@ -149,27 +142,30 @@ result = client.ai_search.kimi_result(task_id=task["taskId"])
149
142
  |------|------|--------|------|
150
143
  | 📱 抖音 | `client.douyin` | 16 | 作品/账号搜索(优质库+广域库)、账号信息、作品详情、AI作品搜索、热榜/飙升榜、热门账号、视频提文案 |
151
144
  | 📕 小红书 | `client.xiaohongshu` | 15 | 笔记/账号搜索、账号信息、笔记详情、作品列表、AI笔记搜索、评论、日榜/周榜/黑马榜、热门账号、爆款洞察、视频提文案 |
152
- | 💬 公众号 | `client.wechat` | 16 | 文章/账号搜索(优质库+广域库)、账号信息、文章详情、作品列表、AI文章搜索、10W+榜、原创榜、实力榜、阅读增长榜 |
153
- | 📺 B站 | `client.bilibili` | 8 | 视频搜索、UP主搜索、UP主信息、UP主作品、视频详情、音频提取、视频提文案 |
145
+ | 💬 公众号 | `client.wechat` | 18 | 文章/账号搜索(优质库+广域库)、账号信息、文章详情、作品列表、AI文章搜索、10W+榜、原创榜、实力榜、阅读增长榜、头条增长榜、文章实时详情 |
146
+ | 📺 B站 | `client.bilibili` | 9 | 视频搜索、UP主搜索、UP主信息、UP主作品、视频详情、音频提取、视频提文案、字幕提取 |
154
147
  | 📰 今日头条 | `client.toutiao` | 5 | 内容搜索、作品详情、作品评论、账号搜索、账号作品列表 |
155
- | 🎵 TikTok | `client.tiktok` | 4 | 用户搜索、视频搜索、作品详情、用户作品列表 |
148
+ | 🎵 TikTok | `client.tiktok` | 10 | 用户搜索、视频搜索、作品详情、用户作品、用户喜欢作品、关注列表、话题搜索、话题作品、视频评论、评论回复 |
156
149
  | 🎬 快手 | `client.kuaishou` | 6 | 作品搜索、作品详情、账号作品、账号搜索、视频提文案 |
157
150
  | 💚 视频号 | `client.wechat_channels` | 7 | 作品搜索、作品详情、账号作品、链接实时详情、账号搜索、链接提文案 |
158
151
  | ▶️ YouTube | `client.youtube` | 5 | 视频搜索、视频详情、视频评论、视频提文案(字幕提取)、字幕详情 |
159
152
  | 🐦 X (Twitter) | `client.twitter` | 7 | 推文搜索、推文详情、用户信息、推文评论、关注列表、用户发帖、热门账号榜 |
160
153
  | 📸 Instagram | `client.instagram` | 4 | 综合搜索、帖子详情、帖子评论、用户信息 |
161
- | 🔵 微博 | `client.weibo` | 3 | 账号搜索、内容详情、用户详情 |
154
+ | 👥 Facebook | `client.facebook` | 4 | 主页信息、主页帖子列表、帖子详情、帖子评论 |
155
+ | 🔵 微博 | `client.weibo` | 5 | 账号搜索、内容详情、用户详情、关键词搜索作品、微博热搜 |
162
156
  | 📰 百家号 | `client.baijiahao` | 5 | 账号搜索、作品搜索、视频详情、作品内容 html、账号信息 |
163
- | 💡 知乎 | `client.zhihu` | 1 | 关键词搜索作品 |
164
- | 🚗 懂车帝 | `client.dongchedi` | 4 | 作品搜索、作品详情、用户作品、用户搜索 |
157
+ | 💡 知乎 | `client.zhihu` | 5 | 关键词搜索作品、文章详情、评论详情、账号详情、搜索热点 |
158
+ | 🚗 懂车帝 | `client.dongchedi` | 5 | 作品搜索、作品详情、用户作品、用户搜索、账号详情+作品列表 |
165
159
  | 🚙 易车 | `client.yiche` | 6 | 作品搜索、文章详情、文章详情V2、视频详情、账号作品、账号搜索 |
166
160
  | 🚘 汽车之家 | `client.autohome` | 4 | 作品搜索、文章详情、视频详情、账号作品 |
167
161
  | 🔥 热点榜单 | `client.hotspot` | 3 | 各平台热点榜、全网热搜查询、全网聚合热点 TOP10 |
168
- | 🖼️ GPT 图片 | `client.gpt_image` | 2 | 图片生成、结果查询 |
162
+ | 🖼️ GPT 图片 | `client.gpt_image` | 4 | GPT-Image-2/2.5 图片生成及结果查询 |
163
+ | 🍌 Gemini 图片 | `client.gemini_image` | 2 | Nano Banana 2.1 图片生成、结果查询 |
169
164
  | 🎨 豆包图片 | `client.doubao_image` | 4 | Pro/Lite 图片生成及查询 |
170
- | 🎬 豆包视频 | `client.doubao_video` | 2 | 视频生成、结果查询 |
171
- | 🔍 AI 搜索 | `client.ai_search` | 12 | Kimi/豆包/Deepseek/元宝/千问/百度 搜索 |
172
- | 🛠️ 通用工具 | `client.tools` | 12 | 多平台短视频去水印下载、图片/素材上传 |
165
+ | 🎬 豆包视频 | `client.doubao_video` | 4 | Seedance 2.0 视频生成及结果查询(新旧端点) |
166
+ | 🔍 AI 搜索 | `client.ai_search` | 17 | Kimi/豆包/Deepseek/元宝/千问/百度 搜索、Kimi K3、豆包/千问商品卡搜索 |
167
+ | 🛠️ 通用工具 | `client.tools` | 15 | 多平台短视频去水印下载、图片/素材上传、多平台违禁词查询、视频播放链接提文案 |
168
+ | 💰 账户 | `client.account` | 2 | 余额查询、接口调用记录查询 |
173
169
 
174
170
  ## API 参考
175
171
 
@@ -702,6 +698,74 @@ task = client.doubao_video.submit(
702
698
  result = client.doubao_video.result(task_id=task["taskId"])
703
699
  ```
704
700
 
701
+ ### Seedance 视频生成(新端点)
702
+
703
+ ```python
704
+ # 文生视频
705
+ task = client.doubao_video.seedance_submit(
706
+ prompt="一只猫在窗台晒太阳,暖色调",
707
+ aspect_ratio="16:9",
708
+ duration=5,
709
+ resolution="720p",
710
+ generate_audio=True,
711
+ )
712
+ result = client.doubao_video.seedance_result(task_id=task["taskId"])
713
+
714
+ # 图生视频(首帧图)
715
+ task = client.doubao_video.seedance_submit(
716
+ prompt="让画面动起来",
717
+ aspect_ratio="adaptive",
718
+ duration=5,
719
+ image_with_roles=[{"url": "https://example.com/photo.jpg", "role": "first_frame"}],
720
+ )
721
+ ```
722
+
723
+ ### Gemini 图片生成
724
+
725
+ ```python
726
+ # 文生图
727
+ task = client.gemini_image.submit(
728
+ prompt="一只可爱的橘猫在晒太阳",
729
+ size="1:1",
730
+ resolution="2K",
731
+ )
732
+ result = client.gemini_image.result(task_id=task["taskId"])
733
+ ```
734
+
735
+ ### Facebook
736
+
737
+ ```python
738
+ # 获取主页信息
739
+ client.facebook.get_user(url="https://www.facebook.com/Meta")
740
+
741
+ # 获取主页帖子列表(cursor 翻页)
742
+ posts = client.facebook.get_user_posts(url="https://www.facebook.com/Meta")
743
+ client.facebook.get_user_posts(page_id="xxx", cursor=posts["paginationToken"])
744
+
745
+ # 获取帖子详情
746
+ client.facebook.get_post(url="https://www.facebook.com/reel/1746412686633900")
747
+
748
+ # 获取帖子评论
749
+ client.facebook.get_post_comments(feedback_id="xxx")
750
+ ```
751
+
752
+ ### 账户
753
+
754
+ ```python
755
+ # 查询余额
756
+ client.account.balance()
757
+
758
+ # 查询接口调用记录
759
+ client.account.consume_flows(page_num=1, page_size=20)
760
+ ```
761
+
762
+ ### 违禁词查询
763
+
764
+ ```python
765
+ # 多平台违禁词查询(小于 3000 字)
766
+ client.tools.sensitive_word_search(content="这是一段待检测的文案")
767
+ ```
768
+
705
769
  ## 错误处理
706
770
 
707
771
  SDK 提供三种异常类型:
@@ -727,3 +791,5 @@ except RedFoxAPIError as e:
727
791
  ## 许可证
728
792
 
729
793
  MIT License
794
+
795
+
@@ -0,0 +1,34 @@
1
+ redfox/__init__.py,sha256=i94jHbHnhwp7pbxxVPZV1MqjB6ZbFTzJM_hosgV4PNU,348
2
+ redfox/client.py,sha256=qGQKSaIPj-xNoebWIVTRZ3GnRxygTL9b4mNoa3co78E,22562
3
+ redfox/exceptions.py,sha256=QWosa7FXJbxNPenMx1CRIPj7z8SFmmtg2_8Qjzika1E,668
4
+ redfox/endpoints/__init__.py,sha256=sjtHfb6bkX_wdd_ryRajkPrBRnno2HMiwys0DcNIqSA,19
5
+ redfox/endpoints/account.py,sha256=mA8C7wQis_yYQaykiQsA0qP8pYTffHk9FW_Ue8Wfkdc,1515
6
+ redfox/endpoints/ai_search.py,sha256=x5Xcipnp5G0slBjKeyDSjK4_CJO-8GeJToCnOG0hTMk,9234
7
+ redfox/endpoints/autohome.py,sha256=YByWaZbIlA45dUrTJ9vMQCDnDGfieYol64K9bCaYti8,2676
8
+ redfox/endpoints/baijiahao.py,sha256=AK-Dq95SWQNs5LldMjsbLR511U_vV4pLlQDGRnORQFc,2813
9
+ redfox/endpoints/bilibili.py,sha256=AqbOPLvEhk6Y-bTYQfxjTSbJkGDEFHcEcxPZ2eotbw0,6318
10
+ redfox/endpoints/dongchedi.py,sha256=8-wDcof8RMbFg3LwesWP7AsMNyQLkkpKxqakaCZ6Lmw,3044
11
+ redfox/endpoints/doubao_image.py,sha256=byzBiYhZx5U93TdyAT2N6kN76hR4K3Fgmpv7QEs7YQo,4654
12
+ redfox/endpoints/doubao_video.py,sha256=jQ6dP_OU7GjID7QkmW8y0ZGW5xehoSm28r17Y1_zkhg,5515
13
+ redfox/endpoints/douyin.py,sha256=gE-cAAPeMxERNYhTau_RkPgaJ1PAa1SNXI4x_OXBr1Q,14530
14
+ redfox/endpoints/facebook.py,sha256=yF-KWsyBH1ZRTV0KlzECtcOMte0I189jsmwp0Ji5UKE,2949
15
+ redfox/endpoints/gemini_image.py,sha256=UVCxTXj_e_9SeAaxn3qPcw5FcBYu3d-t_GguyCIbvkA,2675
16
+ redfox/endpoints/gpt_image.py,sha256=g4G-7K2UhT4C67pOvOAACxel-aAUGrCoKgkMX0_RvZI,5128
17
+ redfox/endpoints/hotspot.py,sha256=VRa9apbYeD3p7ORav9jtItexriM8yLil9dkrI44UBBs,2966
18
+ redfox/endpoints/instagram.py,sha256=kWjCGmjepnMD-vZjW_vMYylerLSEcKaNh4pDjPfhrc4,2916
19
+ redfox/endpoints/kuaishou.py,sha256=D4_YD3kHYtF9Sn1dek_rNoe5i4eoauyYAsr_kfdY6qQ,4699
20
+ redfox/endpoints/tiktok.py,sha256=2WIN7dp85HAZ8SloFxyOI0YoYkv3m3MJBok2pdyxToY,8334
21
+ redfox/endpoints/tools.py,sha256=9do0XDZC-j1opW2w9DqdOKPcB0JZsUHkji4WGFsWckM,8056
22
+ redfox/endpoints/toutiao.py,sha256=E8RPF79pzfu_CFnbEDWqfflPj8joMTkofBcvA7FPn5A,3250
23
+ redfox/endpoints/twitter.py,sha256=-oHX4jQYDmf_2p1GK3cCacLR1rq2OeHcmbq4hCR-PAw,5369
24
+ redfox/endpoints/wechat.py,sha256=ixnMS4z6gfUR5mPml_zyIF7plBGLL1NdqHlnr8rRBts,15269
25
+ redfox/endpoints/wechat_channels.py,sha256=caedmf85EsbCebVuvIEecavy6kPrVqkeBmSu_Y_zJ0Q,4798
26
+ redfox/endpoints/weibo.py,sha256=qhGTbhamyCAf-l9iETwWvnEOEl3UqWtk_mfl6-ltyyw,2862
27
+ redfox/endpoints/xiaohongshu.py,sha256=61FHiLCB-no-bmEzNsw15G2qZT9DG61aKaDrJc8OYmc,13229
28
+ redfox/endpoints/yiche.py,sha256=x3oN1NQesm9mQ1-T-GMbBNNaPg1KtB0_rwmmVdQqVXg,3139
29
+ redfox/endpoints/youtube.py,sha256=RXklsFGbA5DMtdlRiLsDwMN6z5vz13xNAlb-u9vou68,3911
30
+ redfox/endpoints/zhihu.py,sha256=ffgXAoAfrn4OvtwmIxHE8aisK6yK9gk4uMxgHRsqbB8,3491
31
+ redfox_python_sdk-0.7.5.dist-info/METADATA,sha256=J8aAsPGywYr6pMT_oJ-CEHeI5Rb_5CACvAAIUM35lgE,27539
32
+ redfox_python_sdk-0.7.5.dist-info/WHEEL,sha256=U88EhGIw8Sj2_phqajeu_EAi3RAo8-C6zV3REsWbWbs,92
33
+ redfox_python_sdk-0.7.5.dist-info/top_level.txt,sha256=cOIfFv-M-TaEjpiRQy-OygdvvuHeZrlQSoRWMj0DaEM,7
34
+ redfox_python_sdk-0.7.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (84.2.1)
2
+ Generator: bdist_wheel (0.33.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,31 +0,0 @@
1
- redfox/__init__.py,sha256=i94jHbHnhwp7pbxxVPZV1MqjB6ZbFTzJM_hosgV4PNU,348
2
- redfox/client.py,sha256=b9azvZEkme8AxDyULQWDkqU4sRzqTYbdZxdFD9vrcpQ,22145
3
- redfox/exceptions.py,sha256=QWosa7FXJbxNPenMx1CRIPj7z8SFmmtg2_8Qjzika1E,668
4
- redfox/endpoints/__init__.py,sha256=sjtHfb6bkX_wdd_ryRajkPrBRnno2HMiwys0DcNIqSA,19
5
- redfox/endpoints/ai_search.py,sha256=x9ghI7jJ4rDqP4mSVCDR-D--ZjJ41dFD-YtlovaIzhs,6206
6
- redfox/endpoints/autohome.py,sha256=YByWaZbIlA45dUrTJ9vMQCDnDGfieYol64K9bCaYti8,2676
7
- redfox/endpoints/baijiahao.py,sha256=AK-Dq95SWQNs5LldMjsbLR511U_vV4pLlQDGRnORQFc,2813
8
- redfox/endpoints/bilibili.py,sha256=WagxjUVAKaY5gwqwnYJIZsjQBhu9XAa03tY694zZjTQ,5712
9
- redfox/endpoints/dongchedi.py,sha256=A51aSmrios63zzVt8fPmSyPrfrttkYGZO9NvNL48_Sc,2555
10
- redfox/endpoints/doubao_image.py,sha256=byzBiYhZx5U93TdyAT2N6kN76hR4K3Fgmpv7QEs7YQo,4654
11
- redfox/endpoints/doubao_video.py,sha256=wrJ9WMu9X_qBC3MXH5NYPy91ml5CB5P81m8IFtkRVpg,2929
12
- redfox/endpoints/douyin.py,sha256=gE-cAAPeMxERNYhTau_RkPgaJ1PAa1SNXI4x_OXBr1Q,14530
13
- redfox/endpoints/gpt_image.py,sha256=JZTL6z2g2kV7W0VL8JICWaR-_ZQ5gEpsiQEWUZto3cs,2722
14
- redfox/endpoints/hotspot.py,sha256=VRa9apbYeD3p7ORav9jtItexriM8yLil9dkrI44UBBs,2966
15
- redfox/endpoints/instagram.py,sha256=kWjCGmjepnMD-vZjW_vMYylerLSEcKaNh4pDjPfhrc4,2916
16
- redfox/endpoints/kuaishou.py,sha256=D4_YD3kHYtF9Sn1dek_rNoe5i4eoauyYAsr_kfdY6qQ,4699
17
- redfox/endpoints/tiktok.py,sha256=6i6yZV9H3LgIJ0LeGXPGPnKd1h9MV0T95GYAwmeaVu8,3780
18
- redfox/endpoints/tools.py,sha256=lQDs28ozXVzIGcALu4CHYiFfgbAhQaaekIBhPIXTLxM,5879
19
- redfox/endpoints/toutiao.py,sha256=E8RPF79pzfu_CFnbEDWqfflPj8joMTkofBcvA7FPn5A,3250
20
- redfox/endpoints/twitter.py,sha256=-oHX4jQYDmf_2p1GK3cCacLR1rq2OeHcmbq4hCR-PAw,5369
21
- redfox/endpoints/wechat.py,sha256=Rc3uG4kC1gcFW3rKfeHT6BxZCx4U_A1KXLcWPE7DYGE,13083
22
- redfox/endpoints/wechat_channels.py,sha256=caedmf85EsbCebVuvIEecavy6kPrVqkeBmSu_Y_zJ0Q,4798
23
- redfox/endpoints/weibo.py,sha256=s9feBGEN9hEsh9CL1Po_qx04auLlfw4P1nnTtutQwOU,1514
24
- redfox/endpoints/xiaohongshu.py,sha256=61FHiLCB-no-bmEzNsw15G2qZT9DG61aKaDrJc8OYmc,13229
25
- redfox/endpoints/yiche.py,sha256=x3oN1NQesm9mQ1-T-GMbBNNaPg1KtB0_rwmmVdQqVXg,3139
26
- redfox/endpoints/youtube.py,sha256=RXklsFGbA5DMtdlRiLsDwMN6z5vz13xNAlb-u9vou68,3911
27
- redfox/endpoints/zhihu.py,sha256=lLPYMv_HpA7L9B8LIrCB_TSUQ7AJzSld6MwfWNuHZxg,1466
28
- redfox_python_sdk-0.7.4.dist-info/METADATA,sha256=Iyt175hI0CJvgo4FplJNGXaki_6VtmMj5Fmqy6_j7v4,25340
29
- redfox_python_sdk-0.7.4.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
30
- redfox_python_sdk-0.7.4.dist-info/top_level.txt,sha256=cOIfFv-M-TaEjpiRQy-OygdvvuHeZrlQSoRWMj0DaEM,7
31
- redfox_python_sdk-0.7.4.dist-info/RECORD,,