# 抖音相关视频接口

抖音相关视频 API（数据接口）按视频编号取抖音在这条视频旁边推荐的一批相关视频：文案、作者、互动数。推荐结果每次可能不同。每次调用 2 积分（约 $0.004–$0.0067），失败不扣。用 HTTP 调用，或让 AI 客户端通过 MCP 调用。最近实测：2026-10-17。

- 页面：https://socialtoai.com/zh/douyin-related-videos-api/
- 最近更新：2026-10-17
- 最近实测：2026-10-17

| 请求 | 价格键 | 积分 |
| --- | --- | --- |
| `POST /v1/call/douyin.related_videos` | `douyin.related_videos` | 2 |

## 请求

```bash
curl https://api.socialtoai.com/v1/call/douyin.related_videos \
  -H "Authorization: Bearer $SOCIALTOAI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "7694940173372575014"
  }'
```

```python
import os
import requests

response = requests.post(
    "https://api.socialtoai.com/v1/call/douyin.related_videos",
    headers={"Authorization": f"Bearer {os.environ['SOCIALTOAI_KEY']}"},
    json={
        "id": "7694940173372575014",
    },
)
print(response.json())
```

## 参数

| 名称 | 类型 | 是否必填 | 默认值 | 说明 |
| --- | --- | --- | --- | --- |
| `id` | string | 必填 | — | 视频编号，一串数字 |

只返回第一页：最多 20 条，没有 cursor 参数，也不能往后翻。

## 参数从哪里来

- `id`：视频编号，一串数字（例如 `7694940173372575014`）
  这些接口返回的每一条都带 `ref`：[search](https://socialtoai.com/zh/douyin-search-api.md), [user_posts](https://socialtoai.com/zh/douyin-user-posts-api.md), [hashtag_videos](https://socialtoai.com/zh/douyin-hashtag-videos-api.md), [trending · type=videos](https://socialtoai.com/zh/douyin-trending-api.md), [account_top_videos](https://socialtoai.com/zh/douyin-account-top-videos-api.md), [keyword_videos](https://socialtoai.com/zh/douyin-keyword-videos-api.md)

## 返回字段

| 字段 | 类型 | 含义 | 能否给出 |
| --- | --- | --- | --- |
| `items[].url` | string | 能直接打开的链接。 | 有 |
| `items[].format` | string | video、image、text 或 article。 | 有 |
| `items[].title` | string | 标题。 | 有 |
| `items[].text` | string | 正文或文案。 | 有 |
| `items[].published_at` | string | 发布时间，ISO 8601（UTC）。 | 有 |
| `items[].author.id` | string | 作者的账号编号。 | 有 |
| `items[].author.username` | string | 作者的账号名。 | 有 |
| `items[].author.name` | string | 作者的显示名。 | 有 |
| `items[].author.verified` | boolean | 作者是否认证。 | 抖音给不了，始终是 null |
| `items[].author.followers` | integer | 作者的粉丝数。 | 抖音给不了，始终是 null |
| `items[].metrics.likes` | integer | 点赞数。 | 有 |
| `items[].metrics.comments` | integer | 评论数。 | 有 |
| `items[].metrics.shares` | integer | 分享数。 | 有 |
| `items[].metrics.collects` | integer | 收藏数。 | 有 |
| `items[].metrics.views` | integer | 播放或阅读数。 | 抖音给不了，始终是 null |
| `items[].metrics.reposts` | integer | 转发数。 | 抖音给不了，始终是 null |
| `items[].images` | string[] | 图片地址。 | 有 |
| `items[].hashtags` | string[] | 话题标签，不带 #。 | 有 |
| `items[].is_pinned` | boolean | 是否被作者置顶。 | 抖音给不了，始终是 null |

每一条另有 platform、id、ref、approx、type；items 外面的部分每个调用都一样。 [返回格式](https://socialtoai.com/zh/docs/api/response.md)

## 示例返回

示例数据：名称、链接和正文已替换成占位符，数字是录制时的真实值。

```json
{
  "request_id": "req_00000000-0000-4000-8000-000000000001",
  "schema_version": "v1",
  "fetched_at": "2026-10-12T18:42:42.000Z",
  "action": "call",
  "op": "douyin.related_videos",
  "platform": "douyin",
  "status": "ok",
  "items": [
    {
      "platform": "douyin",
      "id": "…",
      "ref": "…",
      "approx": [],
      "type": "content",
      "url": "https://example.com/…",
      "format": "video",
      "title": "…",
      "text": "…",
      "published_at": "2026-07-21T08:55:40.000Z",
      "author": {
        "id": "…",
        "username": "…",
        "name": "…",
        "verified": null,
        "followers": null
      },
      "metrics": {
        "likes": 73399,
        "comments": 6819,
        "shares": 24826,
        "collects": 12468,
        "views": null,
        "reposts": null
      },
      "images": null,
      "hashtags": ["…", "…"],
      "is_pinned": null
    }
  ],
  "unavailable": ["author.verified", "author.followers", "metrics.views", "metrics.reposts", "is_pinned"],
  "page": {
    "has_more": false
  },
  "warnings": [],
  "applied_params": {
    "id": "7694940173372575014"
  },
  "cost_credits": 2,
  "billing": {
    "cost_credits": 2,
    "balance_credits": 98,
    "today_spend_credits": 2,
    "daily_limit_credits": null,
    "daily_remaining_credits": null,
    "display": "本次 2 积分，余额 98 积分"
  },
  "replayed": false
}
```

## 翻页与失败

- 一次调用只返回第一页，最多 20 条，没有 cursor，2 积分。
- 正常执行但没有结果，算一次成功的调用：status 为 "empty"，items 为空，扣 2 积分。
- 抖音的这个接口分不清“视频不存在”和“没有数据”：两种情况都返回 empty，并照常扣费。
- 每把 Key 每秒 1 次，购买后 5 次；超出不扣费。 [频率限制](https://socialtoai.com/zh/docs/credits-and-billing.md#rate-limits)
- 失败的调用 0 积分，不会自动重试。 [错误码](https://socialtoai.com/zh/docs/api/errors.md)

## 在 AI 里这样问

- 按视频编号取抖音在这条视频旁边推荐的一批相关视频：7694940173372575014 → `call {"op":"douyin.related_videos","id":"7694940173372575014"}`，2 积分
- 在抖音上搜和“露营”有关的视频，再对前 3 个结果：按视频编号取抖音在这条视频旁边推荐的一批相关视频。 → `search {"platform":"douyin","query":"露营"}`, `call {"op":"douyin.related_videos","id":"<ref>"}` × 3，18 积分

## 抖音的其他接口

| 接口 | 做什么 | 价格键 | 积分 | 页面 |
| --- | --- | --- | --- | --- |
| `video_stats` | 按视频编号取一条抖音视频此刻的数字。 | `douyin.video_stats` | 2 | https://socialtoai.com/zh/douyin-video-stats-api.md |
| `hashtag_videos` | 按话题编号取一页带这个话题的抖音视频。 | `douyin.hashtag_videos` | 2 | https://socialtoai.com/zh/douyin-hashtag-videos-api.md |
| `search` | 按关键词找视频：正文、作者、点赞数、评论数和发布时间。 | `douyin.search` | 12 | https://socialtoai.com/zh/douyin-search-api.md |
| `trending` | 现在的热榜：标题、名次和热度。 | `douyin.trending` | 2 | https://socialtoai.com/zh/douyin-trending-api.md |
| `detail` | 用编号或链接取一条视频：正文、作者、点赞数、评论数和发布时间。 | `douyin.detail` | 2 | https://socialtoai.com/zh/douyin-detail-api.md |
| `comments` | 一条视频下的评论：正文、点赞数、回复数和时间。 | `douyin.comments` | 2 | https://socialtoai.com/zh/douyin-comments-api.md |
| `user_profile` | 一个账号：名称、简介、粉丝数、关注数和作品数。 | `douyin.user_profile` | 2 | https://socialtoai.com/zh/douyin-user-profile-api.md |
| `user_posts` | 一个账号最近发布的视频。 | `douyin.user_posts` | 2 | https://socialtoai.com/zh/douyin-user-posts-api.md |
| `kol_search` | 按昵称里的词搜索星图上的抖音达人。 | `douyin.kol_search` | 3 | https://socialtoai.com/zh/douyin-kol-search-api.md |
| `kol_profile` | 按星图达人编号取这位抖音达人在星图上的资料。 | `douyin.kol_profile` | 3 | https://socialtoai.com/zh/douyin-kol-profile-api.md |

## 常见问题

**需要抖音账号，或者申请抖音官方的 API 吗？**

不需要，只要一把 SocialToAI 的 Key。返回的是抖音上公开可见的内容和账号信息，你不用登录抖音，也不用在那边申请任何东西。

**能翻到下一页吗？**

不能。抖音的这个接口只给第一页（最多 20 条），返回里没有 cursor，page.has_more 始终是 false。
