parsehub 2.0.40__tar.gz → 2.1.0__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 (72) hide show
  1. {parsehub-2.0.40/src/parsehub.egg-info → parsehub-2.1.0}/PKG-INFO +22 -21
  2. {parsehub-2.0.40 → parsehub-2.1.0}/README.md +20 -20
  3. {parsehub-2.0.40 → parsehub-2.1.0}/pyproject.toml +2 -1
  4. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/config/config.py +0 -4
  5. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/base/base.py +2 -3
  6. parsehub-2.1.0/src/parsehub/parsers/base/ytdlp.py +549 -0
  7. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/bilibili.py +22 -21
  8. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/douyin.py +32 -11
  9. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/youtube.py +21 -15
  10. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/coolapk.py +2 -2
  11. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/douyin.py +449 -18
  12. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/kuaishou.py +2 -2
  13. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/pipix.py +2 -2
  14. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/threads.py +2 -2
  15. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/tiktok.py +3 -3
  16. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/twitter.py +2 -2
  17. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/weixin.py +2 -2
  18. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/utils/helpers.py +5 -1
  19. {parsehub-2.0.40 → parsehub-2.1.0/src/parsehub.egg-info}/PKG-INFO +22 -21
  20. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub.egg-info/requires.txt +1 -0
  21. {parsehub-2.0.40 → parsehub-2.1.0}/test/test_core_offline.py +97 -1
  22. parsehub-2.0.40/src/parsehub/parsers/base/ytdlp.py +0 -284
  23. {parsehub-2.0.40 → parsehub-2.1.0}/LICENSE +0 -0
  24. {parsehub-2.0.40 → parsehub-2.1.0}/setup.cfg +0 -0
  25. {parsehub-2.0.40 → parsehub-2.1.0}/src/__init__.py +0 -0
  26. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/__init__.py +0 -0
  27. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/cli.py +0 -0
  28. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/cli_config.py +0 -0
  29. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/config/__init__.py +0 -0
  30. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/errors.py +0 -0
  31. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/__init__.py +0 -0
  32. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/base/__init__.py +0 -0
  33. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/__init__.py +0 -0
  34. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/coolapk.py +0 -0
  35. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/facebook.py +0 -0
  36. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/instagram.py +0 -0
  37. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/kuaishou.py +0 -0
  38. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/pipix.py +0 -0
  39. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/snapchat.py +0 -0
  40. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/threads.py +0 -0
  41. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/tieba.py +0 -0
  42. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/tiktok.py +0 -0
  43. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/twitter.py +0 -0
  44. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/weibo.py +0 -0
  45. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/weixin.py +0 -0
  46. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/xhs.py +0 -0
  47. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/xiaoheihe.py +0 -0
  48. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/parsers/parser/zuiyou.py +0 -0
  49. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/__init__.py +0 -0
  50. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/bilibili.py +0 -0
  51. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/instagram.py +0 -0
  52. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/tieba.py +0 -0
  53. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/weibo.py +0 -0
  54. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/xhs.py +0 -0
  55. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/xiaoheihe.py +0 -0
  56. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/provider_api/zuiyou.py +0 -0
  57. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/types/__init__.py +0 -0
  58. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/types/callback.py +0 -0
  59. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/types/media_file.py +0 -0
  60. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/types/media_ref.py +0 -0
  61. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/types/platform.py +0 -0
  62. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/types/post.py +0 -0
  63. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/types/result.py +0 -0
  64. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/utils/downloader.py +0 -0
  65. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub/utils/media_info.py +0 -0
  66. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub.egg-info/SOURCES.txt +0 -0
  67. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub.egg-info/dependency_links.txt +0 -0
  68. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub.egg-info/entry_points.txt +0 -0
  69. {parsehub-2.0.40 → parsehub-2.1.0}/src/parsehub.egg-info/top_level.txt +0 -0
  70. {parsehub-2.0.40 → parsehub-2.1.0}/test/test_cli.py +0 -0
  71. {parsehub-2.0.40 → parsehub-2.1.0}/test/test_cli_config.py +0 -0
  72. {parsehub-2.0.40 → parsehub-2.1.0}/test/test_downloader.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: parsehub
3
- Version: 2.0.40
3
+ Version: 2.1.0
4
4
  Summary: 轻量、异步、开箱即用的社交媒体聚合解析库
5
5
  Author-email: 梓澪 <zilingmio@gmail.com>
6
6
  License: MIT
@@ -34,6 +34,7 @@ Requires-Dist: python-slugify[unidecode]>=8.0.4
34
34
  Requires-Dist: opencv-python-headless>=4.13.0.92
35
35
  Requires-Dist: cryptography>=49.0.0
36
36
  Requires-Dist: gmssl>=3.2.2
37
+ Requires-Dist: SignerPy>=0.12.0
37
38
  Provides-Extra: cli
38
39
  Requires-Dist: argcomplete>=3.6.3; extra == "cli"
39
40
  Requires-Dist: platformdirs>=4.5.1; extra == "cli"
@@ -69,26 +70,26 @@ Dynamic: license-file
69
70
 
70
71
  ## 🌐 支持平台
71
72
 
72
- | 平台 | 视频 | 图文 | 其他 |
73
- |-----------------|:--:|:-:|-------|
74
- | **Twitter / X** | ✅ | ✅ | |
75
- | **Instagram** | ✅ | ✅ | |
76
- | **YouTube** | ✅ | | 🎵 音乐 |
77
- | **Facebook** | ✅ | | |
78
- | **Threads** | ✅ | ✅ | |
79
- | **Bilibili** | ✅ | | 📝 动态 |
80
- | **抖音** | ✅ | ✅ | |
81
- | **TikTok** | ✅ | ✅ | |
82
- | **微博** | ✅ | ✅ | |
83
- | **小红书** | ✅ | ✅ | |
84
- | **贴吧** | ✅ | ✅ | |
85
- | **微信公众号** | | ✅ | |
86
- | **快手** | ✅ | | |
87
- | **酷安** | | ✅ | |
88
- | **皮皮虾** | ✅ | ✅ | |
89
- | **最右** | ✅ | ✅ | |
90
- | **小黑盒** | ✅ | ✅ | |
91
- | **Snapchat** | ✅ | | |
73
+ | 平台 | 视频 | 图文 | 其他 |
74
+ |-----------------|:--:|:--:|------|
75
+ | **Twitter / X** | ✅ | ✅ | 📝 文章 |
76
+ | **Instagram** | ✅ | ✅ | |
77
+ | **YouTube** | ✅ | | 🎵 音乐 |
78
+ | **Facebook** | ✅ | | |
79
+ | **Threads** | ✅ | ✅ | |
80
+ | **Bilibili** | ✅ | | 📝 动态 |
81
+ | **抖音** | ✅ | ✅ | ☀️日常 |
82
+ | **TikTok** | ✅ | ✅ | |
83
+ | **微博** | ✅ | ✅ | |
84
+ | **小红书** | ✅ | ✅ | |
85
+ | **贴吧** | ✅ | ✅ | |
86
+ | **微信公众号** | | ✅ | |
87
+ | **快手** | ✅ | | |
88
+ | **酷安** | | ✅ | |
89
+ | **皮皮虾** | ✅ | ✅ | |
90
+ | **最右** | ✅ | ✅ | |
91
+ | **小黑盒** | ✅ | ✅ | |
92
+ | **Snapchat** | ✅ | | |
92
93
 
93
94
  ## 📦 安装
94
95
 
@@ -28,26 +28,26 @@
28
28
 
29
29
  ## 🌐 支持平台
30
30
 
31
- | 平台 | 视频 | 图文 | 其他 |
32
- |-----------------|:--:|:-:|-------|
33
- | **Twitter / X** | ✅ | ✅ | |
34
- | **Instagram** | ✅ | ✅ | |
35
- | **YouTube** | ✅ | | 🎵 音乐 |
36
- | **Facebook** | ✅ | | |
37
- | **Threads** | ✅ | ✅ | |
38
- | **Bilibili** | ✅ | | 📝 动态 |
39
- | **抖音** | ✅ | ✅ | |
40
- | **TikTok** | ✅ | ✅ | |
41
- | **微博** | ✅ | ✅ | |
42
- | **小红书** | ✅ | ✅ | |
43
- | **贴吧** | ✅ | ✅ | |
44
- | **微信公众号** | | ✅ | |
45
- | **快手** | ✅ | | |
46
- | **酷安** | | ✅ | |
47
- | **皮皮虾** | ✅ | ✅ | |
48
- | **最右** | ✅ | ✅ | |
49
- | **小黑盒** | ✅ | ✅ | |
50
- | **Snapchat** | ✅ | | |
31
+ | 平台 | 视频 | 图文 | 其他 |
32
+ |-----------------|:--:|:--:|------|
33
+ | **Twitter / X** | ✅ | ✅ | 📝 文章 |
34
+ | **Instagram** | ✅ | ✅ | |
35
+ | **YouTube** | ✅ | | 🎵 音乐 |
36
+ | **Facebook** | ✅ | | |
37
+ | **Threads** | ✅ | ✅ | |
38
+ | **Bilibili** | ✅ | | 📝 动态 |
39
+ | **抖音** | ✅ | ✅ | ☀️日常 |
40
+ | **TikTok** | ✅ | ✅ | |
41
+ | **微博** | ✅ | ✅ | |
42
+ | **小红书** | ✅ | ✅ | |
43
+ | **贴吧** | ✅ | ✅ | |
44
+ | **微信公众号** | | ✅ | |
45
+ | **快手** | ✅ | | |
46
+ | **酷安** | | ✅ | |
47
+ | **皮皮虾** | ✅ | ✅ | |
48
+ | **最右** | ✅ | ✅ | |
49
+ | **小黑盒** | ✅ | ✅ | |
50
+ | **Snapchat** | ✅ | | |
51
51
 
52
52
  ## 📦 安装
53
53
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "parsehub"
3
- version = "2.0.40"
3
+ version = "2.1.0"
4
4
  description = "轻量、异步、开箱即用的社交媒体聚合解析库"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.12.0"
@@ -37,6 +37,7 @@ dependencies = [
37
37
  "opencv-python-headless>=4.13.0.92",
38
38
  "cryptography>=49.0.0",
39
39
  "gmssl>=3.2.2",
40
+ "SignerPy>=0.12.0",
40
41
  ]
41
42
 
42
43
  [project.scripts]
@@ -7,10 +7,6 @@ from pydantic import BaseModel, ConfigDict
7
7
  class _GlobalConfig(BaseModel):
8
8
  model_config = ConfigDict(validate_assignment=True)
9
9
 
10
- ua: str = (
11
- "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
12
- "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36"
13
- )
14
10
  default_save_dir: Path = Path(sys.argv[0]).parent / "downloads"
15
11
  """默认下载目录"""
16
12
 
@@ -8,10 +8,9 @@ from urllib.parse import parse_qs, urlencode, urlparse
8
8
  import httpx
9
9
 
10
10
  from ... import parsers
11
- from ...config.config import GlobalConfig
12
11
  from ...types import AnyParseResult, ParseError
13
12
  from ...types.platform import Platform
14
- from ...utils.helpers import SecretCookie, match_url
13
+ from ...utils.helpers import UA, SecretCookie, match_url
15
14
 
16
15
 
17
16
  class BaseParser(ABC):
@@ -116,7 +115,7 @@ class BaseParser(ABC):
116
115
  r = await client.get(
117
116
  url,
118
117
  follow_redirects=True,
119
- headers={"User-Agent": GlobalConfig.ua},
118
+ headers={"User-Agent": UA},
120
119
  )
121
120
  except (httpx.ReadTimeout, httpx.ConnectTimeout) as e:
122
121
  raise ParseError("获取原始链接超时") from e