mirror of
https://github.com/JoeanAmier/XHS-Downloader.git
synced 2026-03-22 06:57:16 +08:00
@@ -194,8 +194,14 @@ class XHS:
|
|||||||
data, self.manager.image_format
|
data, self.manager.image_format
|
||||||
)
|
)
|
||||||
|
|
||||||
def __extract_video(self, container: dict, data: Namespace):
|
def __extract_video(
|
||||||
container["下载地址"] = self.video.get_video_link(data)
|
self,
|
||||||
|
container: dict,
|
||||||
|
data: Namespace,
|
||||||
|
):
|
||||||
|
container["下载地址"] = self.video.get_video_link(
|
||||||
|
data,
|
||||||
|
)
|
||||||
container["动图地址"] = [
|
container["动图地址"] = [
|
||||||
None,
|
None,
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -12,9 +12,32 @@ class Video:
|
|||||||
)
|
)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_video_link(cls, data: Namespace) -> list:
|
def generate_video_link(cls, data: Namespace) -> list:
|
||||||
return (
|
return (
|
||||||
[Html.format_url(f"https://sns-video-bd.xhscdn.com/{t}")]
|
[Html.format_url(f"https://sns-video-bd.xhscdn.com/{t}")]
|
||||||
if (t := data.safe_extract(".".join(cls.VIDEO_LINK)))
|
if (t := data.safe_extract(".".join(cls.VIDEO_LINK)))
|
||||||
else []
|
else []
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_video_link(
|
||||||
|
cls,
|
||||||
|
data: Namespace,
|
||||||
|
preference="resolution",
|
||||||
|
) -> list:
|
||||||
|
if not (items := cls.get_video_items(data)):
|
||||||
|
return []
|
||||||
|
match preference:
|
||||||
|
case "resolution":
|
||||||
|
items.sort(key=lambda x: x.height)
|
||||||
|
case "bitrate" | "size":
|
||||||
|
items.sort(key=lambda x: x.preference)
|
||||||
|
case _:
|
||||||
|
raise ValueError(f"Invalid video preference value: {preference}")
|
||||||
|
return [b[0]] if (b := items[-1].backupUrls) else [items[-1].masterUrl]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_video_items(data: Namespace) -> list:
|
||||||
|
h264 = data.safe_extract("video.media.stream.h264")
|
||||||
|
h265 = data.safe_extract("video.media.stream.h265")
|
||||||
|
return [*h264, *h265]
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
1. 修复 MCP 模式无法下载文件的问题
|
1. 修复 MCP 模式无法下载文件的问题
|
||||||
2. 新增 `script_server` 配置参数
|
2. 新增 `script_server` 配置参数
|
||||||
3. 新增连接用户脚本下载作品功能
|
3. 新增连接用户脚本下载作品功能
|
||||||
4. 新增作品处理统计功能
|
4. 修复视频作品下载功能
|
||||||
5. 调整内置延时机制
|
5. 新增作品处理统计功能
|
||||||
|
6. 调整内置延时机制
|
||||||
|
|
||||||
*****
|
*****
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user