parsehub 2.0.18__tar.gz → 2.0.19__tar.gz

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.
Files changed (70) hide show
  1. {parsehub-2.0.18/src/parsehub.egg-info → parsehub-2.0.19}/PKG-INFO +103 -93
  2. {parsehub-2.0.18 → parsehub-2.0.19}/README.md +98 -92
  3. {parsehub-2.0.18 → parsehub-2.0.19}/pyproject.toml +8 -1
  4. parsehub-2.0.19/src/parsehub/cli.py +661 -0
  5. parsehub-2.0.19/src/parsehub/cli_config.py +292 -0
  6. {parsehub-2.0.18 → parsehub-2.0.19/src/parsehub.egg-info}/PKG-INFO +103 -93
  7. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub.egg-info/SOURCES.txt +2 -0
  8. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub.egg-info/requires.txt +5 -0
  9. {parsehub-2.0.18 → parsehub-2.0.19}/test/test_cli.py +182 -6
  10. parsehub-2.0.19/test/test_cli_config.py +79 -0
  11. parsehub-2.0.18/src/parsehub/cli.py +0 -313
  12. {parsehub-2.0.18 → parsehub-2.0.19}/LICENSE +0 -0
  13. {parsehub-2.0.18 → parsehub-2.0.19}/setup.cfg +0 -0
  14. {parsehub-2.0.18 → parsehub-2.0.19}/src/__init__.py +0 -0
  15. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/__init__.py +0 -0
  16. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/config/__init__.py +0 -0
  17. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/config/config.py +0 -0
  18. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/errors.py +0 -0
  19. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/__init__.py +0 -0
  20. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/base/__init__.py +0 -0
  21. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/base/base.py +0 -0
  22. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/base/ytdlp.py +0 -0
  23. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/__init__.py +0 -0
  24. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/bilibili.py +0 -0
  25. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/coolapk.py +0 -0
  26. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/douyin.py +0 -0
  27. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/facebook.py +0 -0
  28. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/instagram.py +0 -0
  29. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/kuaishou.py +0 -0
  30. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/pipix.py +0 -0
  31. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/threads.py +0 -0
  32. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/tieba.py +0 -0
  33. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/tiktok.py +0 -0
  34. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/twitter.py +0 -0
  35. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/weibo.py +0 -0
  36. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/weixin.py +0 -0
  37. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/xhs.py +0 -0
  38. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/xiaoheihe.py +0 -0
  39. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/youtube.py +0 -0
  40. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/parsers/parser/zuiyou.py +0 -0
  41. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/__init__.py +0 -0
  42. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/bilibili.py +0 -0
  43. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/coolapk.py +0 -0
  44. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/douyin.py +0 -0
  45. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/instagram.py +0 -0
  46. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/kuaishou.py +0 -0
  47. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/pipix.py +0 -0
  48. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/threads.py +0 -0
  49. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/tieba.py +0 -0
  50. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/tiktok.py +0 -0
  51. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/twitter.py +0 -0
  52. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/weibo.py +0 -0
  53. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/weixin.py +0 -0
  54. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/xhs.py +0 -0
  55. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/xiaoheihe.py +0 -0
  56. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/provider_api/zuiyou.py +0 -0
  57. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/types/__init__.py +0 -0
  58. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/types/callback.py +0 -0
  59. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/types/media_file.py +0 -0
  60. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/types/media_ref.py +0 -0
  61. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/types/platform.py +0 -0
  62. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/types/post.py +0 -0
  63. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/types/result.py +0 -0
  64. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/utils/downloader.py +0 -0
  65. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/utils/media_info.py +0 -0
  66. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub/utils/utils.py +0 -0
  67. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub.egg-info/dependency_links.txt +0 -0
  68. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub.egg-info/entry_points.txt +0 -0
  69. {parsehub-2.0.18 → parsehub-2.0.19}/src/parsehub.egg-info/top_level.txt +0 -0
  70. {parsehub-2.0.18 → parsehub-2.0.19}/test/test_core_offline.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parsehub
3
- Version: 2.0.18
3
+ Version: 2.0.19
4
4
  Summary: 轻量、异步、开箱即用的社交媒体聚合解析库
5
5
  Author-email: 梓澪 <zilingmio@gmail.com>
6
6
  License: MIT
@@ -35,6 +35,10 @@ Requires-Dist: python-slugify[unidecode]>=8.0.4
35
35
  Requires-Dist: opencv-python-headless>=4.13.0.92
36
36
  Requires-Dist: cryptography>=46.0.6
37
37
  Requires-Dist: gmssl>=3.2.2
38
+ Provides-Extra: cli
39
+ Requires-Dist: argcomplete>=3.6.3; extra == "cli"
40
+ Requires-Dist: keyring>=25.6.0; extra == "cli"
41
+ Requires-Dist: platformdirs>=4.5.1; extra == "cli"
38
42
  Dynamic: license-file
39
43
 
40
44
  <div align="center">
@@ -50,7 +54,7 @@ Dynamic: license-file
50
54
 
51
55
  轻量、异步、开箱即用的社交媒体解析与媒体下载库,支持 17+ 平台。
52
56
 
53
- [支持平台](#-支持平台) · [安装](#-安装) · [快速开始](#-快速开始) · [API](#-api-速览) · [高级用法](#-高级用法) · [TG Bot](https://github.com/z-mio/parse_hub_bot)
57
+ [安装](#-安装) · [CLI 快速使用](#-cli-快速使用) · [Python API](#-python-api-快速使用) · [支持平台](#-支持平台) · [高级用法](#-高级用法) · [TG Bot](https://github.com/z-mio/parse_hub_bot)
54
58
 
55
59
  </div>
56
60
 
@@ -64,43 +68,94 @@ Dynamic: license-file
64
68
  - 📦 **同步 / 异步 API** — 同时提供 `async/await` 与 `*_sync` 调用方式
65
69
  - 🤖 **Telegram Bot** — 基于本项目的 Bot 已上线 → [@ParseHuBot](https://t.me/ParsehuBot)
66
70
 
67
- ## 🌐 支持平台
71
+ ## 📦 安装
68
72
 
69
- | 平台 | 视频 | 图文 | 其他 |
70
- |:----------------|:--:|:--:|:------|
71
- | **Twitter / X** | ✅ | ✅ | |
72
- | **Instagram** | ✅ | ✅ | |
73
- | **YouTube** | ✅ | | 🎵 音乐 |
74
- | **Facebook** | ✅ | | |
75
- | **Threads** | ✅ | ✅ | |
76
- | **Bilibili** | ✅ | | 📝 动态 |
77
- | **抖音** | ✅ | ✅ | |
78
- | **TikTok** | ✅ | ✅ | |
79
- | **微博** | ✅ | ✅ | |
80
- | **小红书** | ✅ | ✅ | |
81
- | **贴吧** | ✅ | ✅ | |
82
- | **微信公众号** | | ✅ | |
83
- | **快手** | ✅ | | |
84
- | **酷安** | | ✅ | |
85
- | **皮皮虾** | ✅ | ✅ | |
86
- | **最右** | ✅ | ✅ | |
87
- | **小黑盒** | ✅ | ✅ | |
73
+ > Python 3.12
88
74
 
89
- > 可通过 `ParseHub().get_platforms()` 获取当前版本实际注册的平台列表。
75
+ ### 安装为命令行工具
90
76
 
91
- ## 📦 安装
77
+ 如果主要把 ParseHub 当作 CLI 使用,推荐用 `pipx` 安装隔离的命令行环境:
78
+
79
+ ```bash
80
+ pipx install "parsehub[cli]"
81
+ ph --help
82
+ ```
83
+
84
+ ### 安装为 Python 库
85
+
86
+ 如果要在项目代码中调用 Python API:
92
87
 
93
88
  ```bash
94
- # uv (推荐)
89
+ # uv
95
90
  uv add parsehub
96
91
 
97
92
  # pip
98
93
  pip install parsehub
99
94
  ```
100
95
 
101
- > 要求 Python 3.12
96
+ 项目内也需要完整 CLI 配置能力时,可安装 `cli` 扩展:
97
+
98
+ ```bash
99
+ # uv
100
+ uv add "parsehub[cli]"
101
+
102
+ # pip
103
+ pip install "parsehub[cli]"
104
+ ```
105
+
106
+ ## 🚀 CLI 快速使用
107
+
108
+ 解析链接或分享文案:
109
+
110
+ ```bash
111
+ parsehub "https://example.com/post/1"
112
+
113
+ # 短命令等价写法
114
+ ph "https://example.com/post/1"
115
+ ```
116
+
117
+ 下载媒体:
118
+
119
+ ```bash
120
+ parsehub download "https://example.com/post/1" -o ./downloads
121
+
122
+ # 短命令等价写法
123
+ ph d "https://example.com/post/1" -o ./downloads
124
+ ```
125
+
126
+ 查看支持的平台:
127
+
128
+ ```bash
129
+ ph platforms
130
+ # 或
131
+ ph ls
132
+ ```
133
+
134
+ 配置某个平台的代理和 Cookie:
102
135
 
103
- ## 🚀 快速开始
136
+ ```bash
137
+ # 同时设置解析代理和下载代理
138
+ ph set proxy xhs http://127.0.0.1:7890
139
+
140
+ # 只设置下载代理
141
+ ph set proxy xhs http://127.0.0.1:7891 --for download
142
+
143
+ # 保存 Cookie,输入时不会显示在终端里
144
+ ph set cookie xhs
145
+
146
+ # 查看配置状态
147
+ ph set list
148
+ ph set show xhs
149
+ ```
150
+
151
+ 配置会自动按平台应用到后续解析和下载;临时覆盖时仍可直接传参数:
152
+
153
+ ```bash
154
+ ph "https://example.com/post/1" --proxy http://127.0.0.1:7890
155
+ ph d "https://example.com/post/1" --parse-proxy http://127.0.0.1:7890 --cookie "key=value"
156
+ ```
157
+
158
+ ## 🐍 Python API 快速使用
104
159
 
105
160
  ### 同步解析
106
161
 
@@ -161,74 +216,29 @@ downloaded = ph.download_sync(
161
216
  )
162
217
  ```
163
218
 
164
- ## 🧩 API 速览
165
-
166
- ### 解析
167
-
168
- ```python
169
- await ph.parse(url, proxy=None, cookie=None)
170
- ph.parse_sync(url, proxy=None, cookie=None)
171
- ```
172
-
173
- - `url`:分享文案或分享链接,支持自动提取文本中的第一个链接
174
- - `proxy`:解析阶段使用的代理
175
- - `cookie`:解析阶段使用的 Cookie,支持字符串、JSON 字符串或字典
176
-
177
- ### 下载
178
-
179
- ```python
180
- await ph.download(
181
- url,
182
- path=None,
183
- callback=None,
184
- callback_args=(),
185
- callback_kwargs=None,
186
- proxy=None,
187
- parse_proxy=None,
188
- parse_cookie=None,
189
- save_metadata=False,
190
- )
191
-
192
- ph.download_sync(
193
- url,
194
- path=None,
195
- callback=None,
196
- callback_args=(),
197
- callback_kwargs=None,
198
- proxy=None,
199
- parse_proxy=None,
200
- parse_cookie=None,
201
- save_metadata=False,
202
- )
203
- ```
204
-
205
- - `path`:下载保存目录,默认使用 `GlobalConfig.default_save_dir`
206
- - `proxy`:下载媒体时使用的代理
207
- - `parse_proxy` / `parse_cookie`:下载前解析链接时使用的代理和 Cookie
208
- - `save_metadata`:是否在输出目录保存 `metadata.json`
209
-
210
- ### 工具方法
211
-
212
- ```python
213
- ph.get_platform(url)
214
- ph.get_platforms()
215
- await ph.get_raw_url(url, proxy=None, clean_all=True)
216
- ```
217
-
218
- - `get_platform()`:返回匹配到的平台枚举,未匹配时返回 `None`
219
- - `get_platforms()`:返回所有已注册平台的 `id`、名称和支持类型
220
- - `get_raw_url()`:获取清理后的原始链接
219
+ ## 🌐 支持平台
221
220
 
222
- ### 解析结果
221
+ | 平台 | 视频 | 图文 | 其他 |
222
+ |:----------------|:--:|:--:|:------|
223
+ | **Twitter / X** | ✅ | ✅ | |
224
+ | **Instagram** | ✅ | ✅ | |
225
+ | **YouTube** | ✅ | | 🎵 音乐 |
226
+ | **Facebook** | ✅ | | |
227
+ | **Threads** | ✅ | ✅ | |
228
+ | **Bilibili** | ✅ | | 📝 动态 |
229
+ | **抖音** | ✅ | ✅ | |
230
+ | **TikTok** | ✅ | ✅ | |
231
+ | **微博** | ✅ | ✅ | |
232
+ | **小红书** | ✅ | ✅ | |
233
+ | **贴吧** | ✅ | ✅ | |
234
+ | **微信公众号** | | ✅ | |
235
+ | **快手** | ✅ | | |
236
+ | **酷安** | | ✅ | |
237
+ | **皮皮虾** | ✅ | ✅ | |
238
+ | **最右** | ✅ | ✅ | |
239
+ | **小黑盒** | ✅ | ✅ | |
223
240
 
224
- - `result.platform`:平台枚举
225
- - `result.type`:内容类型,如 `video`、`image`、`multimedia`、`richtext`
226
- - `result.title`:标题
227
- - `result.content`:纯文本正文
228
- - `result.raw_url`:清理后的原始链接
229
- - `result.media`:媒体引用或媒体引用列表
230
- - `result.to_dict()`:转为可序列化字典
231
- - `result.download()` / `result.download_sync()`:下载当前解析结果中的媒体
241
+ > 可通过 `ph ls` 或 `ParseHub().get_platforms()` 获取当前版本实际注册的平台列表。
232
242
 
233
243
  ## 🔑 高级用法
234
244
 
@@ -11,7 +11,7 @@
11
11
 
12
12
  轻量、异步、开箱即用的社交媒体解析与媒体下载库,支持 17+ 平台。
13
13
 
14
- [支持平台](#-支持平台) · [安装](#-安装) · [快速开始](#-快速开始) · [API](#-api-速览) · [高级用法](#-高级用法) · [TG Bot](https://github.com/z-mio/parse_hub_bot)
14
+ [安装](#-安装) · [CLI 快速使用](#-cli-快速使用) · [Python API](#-python-api-快速使用) · [支持平台](#-支持平台) · [高级用法](#-高级用法) · [TG Bot](https://github.com/z-mio/parse_hub_bot)
15
15
 
16
16
  </div>
17
17
 
@@ -25,43 +25,94 @@
25
25
  - 📦 **同步 / 异步 API** — 同时提供 `async/await` 与 `*_sync` 调用方式
26
26
  - 🤖 **Telegram Bot** — 基于本项目的 Bot 已上线 → [@ParseHuBot](https://t.me/ParsehuBot)
27
27
 
28
- ## 🌐 支持平台
28
+ ## 📦 安装
29
29
 
30
- | 平台 | 视频 | 图文 | 其他 |
31
- |:----------------|:--:|:--:|:------|
32
- | **Twitter / X** | ✅ | ✅ | |
33
- | **Instagram** | ✅ | ✅ | |
34
- | **YouTube** | ✅ | | 🎵 音乐 |
35
- | **Facebook** | ✅ | | |
36
- | **Threads** | ✅ | ✅ | |
37
- | **Bilibili** | ✅ | | 📝 动态 |
38
- | **抖音** | ✅ | ✅ | |
39
- | **TikTok** | ✅ | ✅ | |
40
- | **微博** | ✅ | ✅ | |
41
- | **小红书** | ✅ | ✅ | |
42
- | **贴吧** | ✅ | ✅ | |
43
- | **微信公众号** | | ✅ | |
44
- | **快手** | ✅ | | |
45
- | **酷安** | | ✅ | |
46
- | **皮皮虾** | ✅ | ✅ | |
47
- | **最右** | ✅ | ✅ | |
48
- | **小黑盒** | ✅ | ✅ | |
30
+ > Python 3.12
49
31
 
50
- > 可通过 `ParseHub().get_platforms()` 获取当前版本实际注册的平台列表。
32
+ ### 安装为命令行工具
51
33
 
52
- ## 📦 安装
34
+ 如果主要把 ParseHub 当作 CLI 使用,推荐用 `pipx` 安装隔离的命令行环境:
35
+
36
+ ```bash
37
+ pipx install "parsehub[cli]"
38
+ ph --help
39
+ ```
40
+
41
+ ### 安装为 Python 库
42
+
43
+ 如果要在项目代码中调用 Python API:
53
44
 
54
45
  ```bash
55
- # uv (推荐)
46
+ # uv
56
47
  uv add parsehub
57
48
 
58
49
  # pip
59
50
  pip install parsehub
60
51
  ```
61
52
 
62
- > 要求 Python 3.12
53
+ 项目内也需要完整 CLI 配置能力时,可安装 `cli` 扩展:
54
+
55
+ ```bash
56
+ # uv
57
+ uv add "parsehub[cli]"
58
+
59
+ # pip
60
+ pip install "parsehub[cli]"
61
+ ```
62
+
63
+ ## 🚀 CLI 快速使用
64
+
65
+ 解析链接或分享文案:
66
+
67
+ ```bash
68
+ parsehub "https://example.com/post/1"
69
+
70
+ # 短命令等价写法
71
+ ph "https://example.com/post/1"
72
+ ```
73
+
74
+ 下载媒体:
75
+
76
+ ```bash
77
+ parsehub download "https://example.com/post/1" -o ./downloads
78
+
79
+ # 短命令等价写法
80
+ ph d "https://example.com/post/1" -o ./downloads
81
+ ```
82
+
83
+ 查看支持的平台:
84
+
85
+ ```bash
86
+ ph platforms
87
+ # 或
88
+ ph ls
89
+ ```
90
+
91
+ 配置某个平台的代理和 Cookie:
63
92
 
64
- ## 🚀 快速开始
93
+ ```bash
94
+ # 同时设置解析代理和下载代理
95
+ ph set proxy xhs http://127.0.0.1:7890
96
+
97
+ # 只设置下载代理
98
+ ph set proxy xhs http://127.0.0.1:7891 --for download
99
+
100
+ # 保存 Cookie,输入时不会显示在终端里
101
+ ph set cookie xhs
102
+
103
+ # 查看配置状态
104
+ ph set list
105
+ ph set show xhs
106
+ ```
107
+
108
+ 配置会自动按平台应用到后续解析和下载;临时覆盖时仍可直接传参数:
109
+
110
+ ```bash
111
+ ph "https://example.com/post/1" --proxy http://127.0.0.1:7890
112
+ ph d "https://example.com/post/1" --parse-proxy http://127.0.0.1:7890 --cookie "key=value"
113
+ ```
114
+
115
+ ## 🐍 Python API 快速使用
65
116
 
66
117
  ### 同步解析
67
118
 
@@ -122,74 +173,29 @@ downloaded = ph.download_sync(
122
173
  )
123
174
  ```
124
175
 
125
- ## 🧩 API 速览
126
-
127
- ### 解析
128
-
129
- ```python
130
- await ph.parse(url, proxy=None, cookie=None)
131
- ph.parse_sync(url, proxy=None, cookie=None)
132
- ```
133
-
134
- - `url`:分享文案或分享链接,支持自动提取文本中的第一个链接
135
- - `proxy`:解析阶段使用的代理
136
- - `cookie`:解析阶段使用的 Cookie,支持字符串、JSON 字符串或字典
137
-
138
- ### 下载
139
-
140
- ```python
141
- await ph.download(
142
- url,
143
- path=None,
144
- callback=None,
145
- callback_args=(),
146
- callback_kwargs=None,
147
- proxy=None,
148
- parse_proxy=None,
149
- parse_cookie=None,
150
- save_metadata=False,
151
- )
152
-
153
- ph.download_sync(
154
- url,
155
- path=None,
156
- callback=None,
157
- callback_args=(),
158
- callback_kwargs=None,
159
- proxy=None,
160
- parse_proxy=None,
161
- parse_cookie=None,
162
- save_metadata=False,
163
- )
164
- ```
165
-
166
- - `path`:下载保存目录,默认使用 `GlobalConfig.default_save_dir`
167
- - `proxy`:下载媒体时使用的代理
168
- - `parse_proxy` / `parse_cookie`:下载前解析链接时使用的代理和 Cookie
169
- - `save_metadata`:是否在输出目录保存 `metadata.json`
170
-
171
- ### 工具方法
172
-
173
- ```python
174
- ph.get_platform(url)
175
- ph.get_platforms()
176
- await ph.get_raw_url(url, proxy=None, clean_all=True)
177
- ```
178
-
179
- - `get_platform()`:返回匹配到的平台枚举,未匹配时返回 `None`
180
- - `get_platforms()`:返回所有已注册平台的 `id`、名称和支持类型
181
- - `get_raw_url()`:获取清理后的原始链接
176
+ ## 🌐 支持平台
182
177
 
183
- ### 解析结果
178
+ | 平台 | 视频 | 图文 | 其他 |
179
+ |:----------------|:--:|:--:|:------|
180
+ | **Twitter / X** | ✅ | ✅ | |
181
+ | **Instagram** | ✅ | ✅ | |
182
+ | **YouTube** | ✅ | | 🎵 音乐 |
183
+ | **Facebook** | ✅ | | |
184
+ | **Threads** | ✅ | ✅ | |
185
+ | **Bilibili** | ✅ | | 📝 动态 |
186
+ | **抖音** | ✅ | ✅ | |
187
+ | **TikTok** | ✅ | ✅ | |
188
+ | **微博** | ✅ | ✅ | |
189
+ | **小红书** | ✅ | ✅ | |
190
+ | **贴吧** | ✅ | ✅ | |
191
+ | **微信公众号** | | ✅ | |
192
+ | **快手** | ✅ | | |
193
+ | **酷安** | | ✅ | |
194
+ | **皮皮虾** | ✅ | ✅ | |
195
+ | **最右** | ✅ | ✅ | |
196
+ | **小黑盒** | ✅ | ✅ | |
184
197
 
185
- - `result.platform`:平台枚举
186
- - `result.type`:内容类型,如 `video`、`image`、`multimedia`、`richtext`
187
- - `result.title`:标题
188
- - `result.content`:纯文本正文
189
- - `result.raw_url`:清理后的原始链接
190
- - `result.media`:媒体引用或媒体引用列表
191
- - `result.to_dict()`:转为可序列化字典
192
- - `result.download()` / `result.download_sync()`:下载当前解析结果中的媒体
198
+ > 可通过 `ph ls` 或 `ParseHub().get_platforms()` 获取当前版本实际注册的平台列表。
193
199
 
194
200
  ## 🔑 高级用法
195
201
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "parsehub"
3
- version = "2.0.18"
3
+ version = "2.0.19"
4
4
  description = "轻量、异步、开箱即用的社交媒体聚合解析库"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0"
@@ -44,6 +44,13 @@ dependencies = [
44
44
  parsehub = "parsehub.cli:main"
45
45
  ph = "parsehub.cli:main"
46
46
 
47
+ [project.optional-dependencies]
48
+ cli = [
49
+ "argcomplete>=3.6.3",
50
+ "keyring>=25.6.0",
51
+ "platformdirs>=4.5.1",
52
+ ]
53
+
47
54
  [dependency-groups]
48
55
  dev = [
49
56
  "ruff>=0.14.14",