调整抖音解析优先级为本地提取优先
变更项: - 将抖音解析链路调整为:本地提取 -> 内网接口 -> 外部接口 - 本地提取失败后再走接口兜底,满足你要求的本地优先策略 - 保持现有返回结构与发送流程不变,仅调整解析优先级
This commit is contained in:
@@ -240,23 +240,23 @@ class DouyinParserPlugin(MessagePluginInterface):
|
||||
def _parse_douyin(self, url: str) -> Dict[str, Any]:
|
||||
try:
|
||||
clean_url = self._clean_url(url)
|
||||
# 第一优先级:你现有的内网解析服务,速度快、稳定性高,优先命中。
|
||||
primary = self._parse_from_internal_api(clean_url)
|
||||
if primary and (primary.get('url') or primary.get('images')):
|
||||
return self._clean_response_data(primary)
|
||||
|
||||
# 第二优先级:你现有的外部付费接口,作为内网服务不可用时的兜底。
|
||||
secondary = self._parse_from_external_api(clean_url)
|
||||
if secondary and (secondary.get('url') or secondary.get('images')):
|
||||
return self._clean_response_data(secondary)
|
||||
|
||||
# 第三优先级:本地提取后备方案(无需依赖远端解析API):
|
||||
# 第一优先级:本地提取(无需依赖远端解析API):
|
||||
# 1) 优先走 yt_dlp Python 库;
|
||||
# 2) 若库不可用,再尝试系统已安装的 yt-dlp 命令行。
|
||||
# 这样当接口异常/限流时,仍可在本机直接提取无水印直链和元数据。
|
||||
local_fallback = self._parse_from_local_extractor(clean_url)
|
||||
if local_fallback and (local_fallback.get('url') or local_fallback.get('images')):
|
||||
return self._clean_response_data(local_fallback)
|
||||
|
||||
# 第二优先级:你现有的内网解析服务,作为本地提取失败后的兜底。
|
||||
primary = self._parse_from_internal_api(clean_url)
|
||||
if primary and (primary.get('url') or primary.get('images')):
|
||||
return self._clean_response_data(primary)
|
||||
|
||||
# 第三优先级:你现有的外部付费接口,作为最终兜底。
|
||||
secondary = self._parse_from_external_api(clean_url)
|
||||
if secondary and (secondary.get('url') or secondary.get('images')):
|
||||
return self._clean_response_data(secondary)
|
||||
raise DouyinParserError("未获取到有效媒资数据")
|
||||
except Exception as e:
|
||||
self.LOG.error(f"[抖音] 解析过程发生未知错误: {str(e)}\n{traceback.format_exc()}")
|
||||
|
||||
Reference in New Issue
Block a user