---
name: echotik-get-video-download-url
description: "解析TikTok视频地址，返回该视频的无水印/含水印下载地址、播放地址与封面地址，用于保存带货视频素材或离线分析。"
compatibility: Requires the oo CLI and OOMOL Marketplace access.
metadata:
  title: "EchoTik-视频下载地址查询"
  icon: ':lucide:trending-up:'
  packageName: "@leina/echotik-get-video-download-url"
  version: "0.1.0"
---
# EchoTik-视频下载地址查询

## 固定使用内置市场

所有业务动作明确使用 `--connection-name marketplace_oomol`，不能省略，也不能替换为用户自建 LinkFox 连接。首次在当前账户/团队执行时，读取 `oo connector apps linkfox --json`，确认 `connectionName=marketplace_oomol`、`authType=marketplace` 且状态可用；用户指定团队时，连接列表和业务命令使用同一个 `--team`。

未找到该市场连接或无权使用时，停止并报告内置市场不可用。不得改用户默认连接，不得退回无选择器命令、其它连接或直连来源接口。`oo file upload/download` 是文件中转命令，不属于 LinkFox 连接选择。

## 业务流程

取得一条 TikTok 短链或完整视频链接，作为 url 查询。读取 `response.data.noWatermarkDownloadUrl`、`response.data.downloadUrl`，仅在它们实际返回时提供下载或保存。无水印与含水印地址分别标注。

两个下载地址均缺失时报告没有可用直链；`response.data.playUrl` 只能作为播放/预览替代，不编造成下载地址。封面分别读取 coverUrl / dynamicCoverUrl。输出保存文件时按文件中转说明下载并给出本地路径。

## 选择动作并执行

先读 [当前调用契约](references/calls.md)，选择能完成当前步骤的 action，确认必填值、枚举、分页和结果容器。单动作 skill 直接使用该动作；多动作 skill 按上述业务顺序选择必要分支，不默认把动作表全部跑一遍。

将用户的真实参数写入当前任务目录中的 payload.json。执行 calls.md 中所选动作的完整命令。CLI 返回 `response.data` 为业务结果，`response.meta.executionId` 为执行标识。保存响应和查询条件用于后续衔接，不把旧平台 errcode/渲染元数据当作新的 CLI 输出契约。

结果解释遵循 [业务规则](references/business.md)。公开 schema 中的开放记录字段未逐字段保证；本轮仅做静态核对，未真实试跑。缺失或 null 标注未提供，不补零、不猜 ID、URL、币种或单位。数值比较只在单位和时间窗一致时进行。

## 分页、文件与交付

有分页参数的动作保持筛选与排序不变，根据本动作返回的总数/hasNextPage（若有）和用户范围推进；空页、重复页或达到用户要求时停止。total 的含义按所选端点说明；本页计数不能当作全集计数。无分页动作不自行发明 page/cursor。

仅在图片 URL 输入而用户只有本地文件时，先执行 `oo file upload "本地文件路径" --json`，将实际返回的 downloadUrl 写入该图片字段。已有可访问 URL 直接复用。不要把本地路径当远程 URL，也不要要求用户配置来源平台密钥。

仅对动作明确返回的文件下载字段执行 `oo file download "返回的文件URL" "用户指定的输出目录"`；下载命令不带 --json。网页、播放页、详情页和元数据 URL 不是下载地址。保存后确认文件类型与实际路径并提供可点击链接；图片/视频在环境支持时预览。签名 URL 留在任务文件中，不在汇报里展开。

依据用户需求交付查询摘要、对比表或本地 Markdown/CSV/JSON 文件。说明数据来源、查询时间、覆盖范围及未返回项。长数据先摘要，保留完整响应供检查，不硬编码原平台输出目录。

## 失败处理

失败时报告实际错误，保留已成功数据。鉴权、权限、余额或不支持的输入阻塞时按 OOMOL 错误指引处理，不运行源平台充值、余额检查、反馈、直接 HTTP 兜底或隐藏接口。不能把空结果说成已证明不存在，也不连续换条件或重跑已完成请求来掩盖失败。

## 读取业务字段

解释结果和构造后续请求前，读取 [结果字段与业务衔接](references/result-fields.md)，按端点保留关键输出、嵌套指标和关联 ID。
