parsehub 2.0.10__tar.gz → 2.0.11__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.
- {parsehub-2.0.10/src/parsehub.egg-info → parsehub-2.0.11}/PKG-INFO +1 -1
- {parsehub-2.0.10 → parsehub-2.0.11}/pyproject.toml +1 -1
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/base/ytdlp.py +31 -33
- {parsehub-2.0.10 → parsehub-2.0.11/src/parsehub.egg-info}/PKG-INFO +1 -1
- {parsehub-2.0.10 → parsehub-2.0.11}/LICENSE +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/README.md +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/setup.cfg +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/__init__.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/__init__.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/config/__init__.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/config/config.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/errors.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/__init__.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/base/__init__.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/base/base.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/__init__.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/bilibili.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/coolapk.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/douyin.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/facebook.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/instagram.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/kuaishou.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/pipix.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/threads.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/tieba.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/twitter.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/weibo.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/weixin.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/xhs.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/xiaoheihe.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/youtube.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/parsers/parser/zuiyou.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/__init__.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/bilibili.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/coolapk.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/instagram.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/kuaishou.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/pipix.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/threads.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/tieba.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/twitter.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/weibo.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/weixin.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/xhs.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/xiaoheihe.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/provider_api/zuiyou.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/__init__.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/callback.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/media_file.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/media_ref.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/platform.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/post.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/types/result.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/utils/downloader.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/utils/media_info.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub/utils/utils.py +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub.egg-info/SOURCES.txt +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub.egg-info/dependency_links.txt +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub.egg-info/requires.txt +0 -0
- {parsehub-2.0.10 → parsehub-2.0.11}/src/parsehub.egg-info/top_level.txt +0 -0
|
@@ -150,33 +150,33 @@ class YtVideoParseResult(VideoParseResult):
|
|
|
150
150
|
# paramss["format"] = "worstvideo* + worstaudio / worst"
|
|
151
151
|
|
|
152
152
|
if callback:
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
paramss["progress_hooks"] = [_progress_hook]
|
|
153
|
+
# 已知问题: yt-dlp 返回的总进度不统一, 暂使用 count 进度
|
|
154
|
+
await callback(0, 1, "count", *callback_args, **callback_kwargs)
|
|
155
|
+
# loop = asyncio.get_running_loop()
|
|
156
|
+
# progress_mode = "bytes"
|
|
157
|
+
# def _progress_hook(d):
|
|
158
|
+
# nonlocal progress_mode
|
|
159
|
+
# if d["status"] == "downloading":
|
|
160
|
+
# downloaded = int(d.get("downloaded_bytes", 0))
|
|
161
|
+
# total = int(d.get("total_bytes") or d.get("total_bytes_estimate") or 0)
|
|
162
|
+
# if total and progress_mode == "bytes":
|
|
163
|
+
# asyncio.run_coroutine_threadsafe(
|
|
164
|
+
# callback(downloaded, total, "bytes", *callback_args, **callback_kwargs),
|
|
165
|
+
# loop,
|
|
166
|
+
# )
|
|
167
|
+
# else:
|
|
168
|
+
# progress_mode = "count"
|
|
169
|
+
# asyncio.run_coroutine_threadsafe(
|
|
170
|
+
# callback(0, 1, "count", *callback_args, **callback_kwargs),
|
|
171
|
+
# loop,
|
|
172
|
+
# )
|
|
173
|
+
# elif d["status"] == "finished" and progress_mode == "count":
|
|
174
|
+
# asyncio.run_coroutine_threadsafe(
|
|
175
|
+
# callback(1, 1, "count", *callback_args, **callback_kwargs),
|
|
176
|
+
# loop,
|
|
177
|
+
# )
|
|
178
|
+
#
|
|
179
|
+
# paramss["progress_hooks"] = [_progress_hook]
|
|
180
180
|
|
|
181
181
|
await self._run_download(paramss)
|
|
182
182
|
|
|
@@ -184,6 +184,9 @@ class YtVideoParseResult(VideoParseResult):
|
|
|
184
184
|
if not v:
|
|
185
185
|
raise DownloadError("下载失败 -1")
|
|
186
186
|
|
|
187
|
+
if callback:
|
|
188
|
+
await callback(1, 1, "count", *callback_args, **callback_kwargs)
|
|
189
|
+
|
|
187
190
|
video_path = v[0]
|
|
188
191
|
return DownloadResult(
|
|
189
192
|
VideoFile(
|
|
@@ -200,12 +203,7 @@ class YtVideoParseResult(VideoParseResult):
|
|
|
200
203
|
raise DownloadError("下载失败 -2")
|
|
201
204
|
|
|
202
205
|
try:
|
|
203
|
-
await asyncio.
|
|
204
|
-
asyncio.to_thread(download_video, paramss, [self.dl.url]),
|
|
205
|
-
timeout=300,
|
|
206
|
-
)
|
|
207
|
-
except TimeoutError as e:
|
|
208
|
-
raise DownloadError("下载超时") from e
|
|
206
|
+
await asyncio.to_thread(download_video, paramss, [self.dl.url])
|
|
209
207
|
except RuntimeError as e:
|
|
210
208
|
error = str(e)
|
|
211
209
|
if any(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|