# 抖音 视频详情 API (douyin.video)

- Canonical page: https://everyinfra.com/douyin-api/video
- Endpoint: POST https://api.everyinfra.com/api/v1/social with {"platform": "douyin", "action": "video", "params": {...}}
- Price: $0.000556 per call ($0.56 per 1,000 requests); failed calls and empty results are not charged
- Returns: single object
- Mode: sync; add "mode": "async" for slow tasks

抖音视频详情按视频 `url` 读取一条视频的公开信息：视频文案、话题标签、时长、点赞评论分享收藏数、作者与作者粉丝数、发布时间和地区。它回答「这条视频是什么内容、互动表现如何」，适合给单条爆款做复盘、核对投放视频的数据，或者补全从别处拿到的视频链接。

`url` 要用视频页链接，格式如 https://www.douyin.com/video/<视频ID>，不要传用户主页或搜索页。同一个链接也能用来读这条视频的评论、提取语音文稿。抖音不公开播放量，`view_count` 不代表真实播放，热度请看点赞、评论和分享。

## Health

- Live health (24h percent, hourly and daily trends): https://api.everyinfra.com/api/v1/social/availability?platform=douyin&action=video

## Parameters

| name | type | required | default | description |
|---|---|---|---|---|
| url | not declared | yes | not declared | 目标抖音视频的完整链接，格式如 https://www.douyin.com/video/<视频ID>。video 读取该视频详情，comments 读取其评论，transcript 提取该视频的语音文稿；不要传用户主页或搜索页。 |

## Response fields (items in `results`)

| field | meaning |
|---|---|
| id | 该记录在原平台上的唯一标识。仅在同一平台内唯一，跨平台可能重复。 |
| url | 该记录在原平台上的可访问链接。 |
| text | 正文内容，已去除 HTML 标签，全文返回、不截断（个别平台的列表结果本身只有摘要，以该平台的字段说明为准）。 |
| media_type | 媒体类型。 |
| video_url | 视频播放地址（带签名、会过期，要留存请及时下载）；图文笔记或来源没给时为 null。 |
| like_count | 点赞数。null 表示该平台或该接口不公开此数据，不等于 0。 |
| comment_count | 评论数。null 表示不公开，不等于 0。 |
| share_count | 分享/转发数。null 表示不公开，不等于 0。 |
| collect_count | 收藏数。null 表示不公开，不等于 0。 |
| view_count | 此字段不是真实播放量。抖音不对外公开视频播放量，多数结果里没有这个字段，有时为 0；判断视频热度请用 like_count（点赞）、comment_count（评论）、share_count（分享）、collect_count（收藏）。 |
| author_name | 作者昵称（显示名）。 |
| author_id | 作者在原平台的唯一 ID。 |
| author_douyin_id | 作者抖音号。 |
| author_uid | 作者（评论里是评论者）的数字用户 ID；author_id 是 secUid，两者是同一个人的两种 ID。 |
| author_bio | 作者主页简介（search / user_posts / video 行上）。 |
| author_avatar_url | 作者头像链接：search / user_posts / video 行上是博主的，comments 行上是评论者的。 |
| author_follower_count | 作者粉丝数。null 表示不公开。 |
| cover_image_url | 封面图链接：search / user_posts 是作品封面，music_search / music_detail 是音乐封面，billboard_topic_hot 是话题配图。 |
| video_width | 视频画面宽度（像素）。 |
| video_height | 视频画面高度（像素）。 |
| duration_seconds | 时长，单位秒。非视频/音频内容为 null。 |
| region | 地区。 |
| hashtags | 正文里的话题标签数组，按出现顺序；没有时不出现这个字段。 |
| posted_at | 发布时间，ISO 8601 格式、UTC 时区（如 2026-08-07T12:34:56+00:00）。平台只给非标准字符串时原样透传，解析前建议做容错。null 表示平台未公开。 |
| platform | 数据来源平台标识，与请求里的 platform 一致（如 xiaohongshu、tiktok）。 |
| image_urls | 图片链接数组，按平台展示顺序；没有图片时不出现这个字段。 |
| duration_sec | 视频时长（秒）。 |
| hashtag_ids | 作品话题 ID 列表，与 hashtags 同序一一对应（search / user_posts / video）。 |
| search_rank | 在这次关键词搜索结果里的名次（从 1 开始）：product_search 行是商品，search 行是作品，hashtag_search 行是话题。 |
| author_is_verified | 作者是否认证（search / user_posts / video 行上）。 |
| author_following_count | 作者关注数（search / user_posts / video 行上）。 |
| author_like_count | 作者主页获赞总数（search / user_posts / video / transcript）。 |
| author_video_count | 作者作品总数（search / user_posts / video 行上）。 |
| author_ip_location | 作者 IP 属地（平台强制展示）。 |
| title | 标题。平台无标题概念时（如纯文本帖）为 null。 |
| music | 作品背景音乐：id、title（曲名）、author（演唱/作者）、is_original（是否原声）、duration_sec（秒）、cover_url、play_url（音频地址，可能会过期）；没有音乐信息时没有这个键。 |
| download_count | 作品下载数。 |
| forward_count | 作品转发数。 |
| is_pinned | 是否置顶（作品行：作者主页置顶作品；trending：榜单置顶词）。 |
| is_ad | 是否为广告作品。 |
| video_tags | 平台给作品打的内容分类标签（如「美食」「探店」）。 |
| video_resolution | 视频清晰度档位原文（如 720p）。 |
| animated_cover_url | 动态封面链接。 |
| city | 城市：作品行（search / user_posts / video）是作品发布城市，平台给的是拼音写法（如 Suzhou）；xingtu_creator_rankings 是达人所在城市。 |
| city_code | 作品发布城市的行政区划代码（如 320500）。 |
| location | 作品定位的地点（POI）：id、name、category（地点分类）、address、district、city、province、country、city_code、latitude、longitude、cover_url、popularity_text（如 327人想去）、view_count、post_count（该地点下的作品数）、collect_count、visitor_count；作品没带定位时没有这个键。 |
| text_language | 作品文案语言代码（如 zh；un 表示未识别）。 |
| video_bitrates | 各清晰度播放地址：[{quality（清晰度名）, bitrate（码率，bps）, fps, is_h265（是否 H.265 编码）, url}]；地址带签名、会过期（见 video_url_expires_at）。 |
| download_url | 作品视频的下载地址（带签名、会过期）。 |
| has_watermark | 平台对这条作品视频文件的水印标记（true 表示带水印）。 |
| video_url_expires_at | 播放与下载地址的失效时间（ISO 8601，UTC）；之后要重新取。 |
| permissions | 作者给作品设的权限：can_comment（可评论）、can_download（可下载）、can_duet（可合拍）、can_stitch（可拼接）、can_share（可分享）、can_repost（可转发）、can_save（可保存）；只含平台给了的项。 |
| author_gender | 作者性别（male / female / unknown，作者自己填的）。 |
| author_age | 作者年龄（作者公开了才有）。 |

## Example

```bash
curl -X POST 'https://api.everyinfra.com/api/v1/social' \
  -H "Authorization: Bearer $EVERYINFRA_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "platform": "douyin",
  "action": "video",
  "params": {
    "url": "https://www.douyin.com/video/7633646113853104116"
  }
}'
```

```python
import os
import requests

response = requests.post(
    "https://api.everyinfra.com/api/v1/social",
    headers={"Authorization": f"Bearer {os.environ['EVERYINFRA_API_KEY']}"},
    json={
        "platform": "douyin",
        "action": "video",
        "params": {
            "url": "https://www.douyin.com/video/7633646113853104116",
        },
    },
    timeout=120,
)
print(response.status_code)
print(response.json())
```

## Response example

Real response to the example request above, captured 2026-10-24T18:28:34Z. `results` and `count` are real with personal information (names, handles, avatars, profile links, contact details) removed. `id`, `billing` and `quota` differ on every call, so only their shape is shown.

```text
{
  "id": "req_…",
  "platform": "douyin",
  "action": "video",
  "results": {
    "id": "7633646113853104116",
    "url": "https://www.douyin.com/video/7633646113853104116",
    "text": "别犹豫 想吃谁做的就@谁 #家常菜 #如果幸福是一顿漂亮饭",
    "media_type": "video",
    "video_url": "https://v95-hzyy-thr-daily-colda.douyinvod.com/00e83eb1638968a210789ad41d005848/6add0846/video/tos/cn/tos-cn-ve-15/osCeAU146LfGGBFAgTIGXXewRxoNAEESBGgzu7/?a=1128&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=1565&bt=1565&cs=0&ds=3&ft=zyTEemq4dd2~YBSzVvjVQXmz-TLJ9E05m4E5ljOCnzNf…",
    "like_count": 5191450,
    "comment_count": 367807,
    "share_count": 3397981,
    "collect_count": 603283,
    "view_count": 0,
    "author_name": "•••",
    "author_id": "•••",
    "author_douyin_id": "•••",
    "author_avatar_url": "https://p26.douyinpic.com/•••",
    "cover_image_url": "https://p5-ex-gddgtc-sign.douyinpic.com/tos-cn-i-0813c001/okiAIDJvALIEu1AesKf0wAio8AJBYDgAAA8IwC~tplv-dy-resize-walign-adapt-aq:540:q75.webp?lk3s=138a59ce&x-expires=1794074400&x-signature=hydt%2FpxAWFFAH3o1r0%2BRDkzfjeU%3D&from=327834062&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=…",
    "region": "CN",
    "posted_at": "2026-04-28T03:25:39+00:00",
    "platform": "douyin",
    "author_uid": "•••",
    "author_is_verified": true,
    "author_bio": "•••",
    "author_like_count": 394320561,
    "author_video_count": 2279,
    "music": {
      "id": "•••",
      "title": "心跳（你又在哭泣我给不了安慰）",
      "author": "•••",
      "is_original": false,
      "duration_sec": 16,
      "cover_url": "https://p3.douyinpic.com/tos-cn-v-2774c002/oMisiuEh1DsoATBIAwPUiXBoApEaRADEAEezKW~tplv-dy-resize-walign-adapt-aq:720:q75.heic?biz_tag=aweme_music&s=PackSourceEnum_AWEME_DETAIL&sc=cover",
      "play_url": "https://sf11-cdn-tos.douyinstatic.com/obj/tos-cn-ve-2774/owJHiEhBzAg7AaUiiNwMhBIIWAKhf8tQ6sM8Tk"
    },
    "download_count": 10817,
    "forward_count": 0,
    "is_pinned": false,
    "is_ad": false,
    "video_tags": [
      "美食",
      "美食展示",
      "普通美食展示"
    ],
    "video_width": 720,
    "video_height": 960,
    "video_resolution": "720p",
    "animated_cover_url": "https://p5-ex-gddgtc-sign.douyinpic.com/obj/tos-cn-i-0813c001/okiAIDJvALIEu1AesKf0wAio8AJBYDgAAA8IwC?lk3s=138a59ce&x-expires=1794074400&x-signature=Z7xqx7cKvQ1o6chyAX%2Br7wiVTZs%3D&from=327834062_large&s=PackSourceEnum_AWEME_DETAIL&se=false&sc=dynamic_cover&biz_tag=aweme_video&l=…",
    "hashtag_ids": [
      "1767587367821390",
      "7510979073431046180"
    ],
    "city": "Shandong",
    "city_code": "371300",
    "text_language": "zh",
    "video_bitrates": [
      {
        "quality": "1080_1_1",
        "bitrate": 1761129,
        "fps": 30,
        "is_h265": true,
        "url": "https://v95-zjjx2tc-cold.douyinvod.com/3af3eb3ed8f93616a607176cb701eb9e/6add0846/video/tos/cn/tos-cn-ve-15/oMB3tqiEIAgpMdefkKiDwlLLcgRhgAAxBBB9Q1/?a=1128&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=1719&bt=1719&cs=2&ds=4&ft=zyTEemq4dd2~YBSzVvjVQXmz-TLJ9E05m4E5ljOCnzNfG~RUxRyq…"
      },
      {
        "quality": "720_1_1",
        "bitrate": 1179750,
        "fps": 30,
        "is_h265": true,
        "url": "https://v95-hzyy-thr-daily-colda.douyinvod.com/4f077c6ec6d7afc7b94a71c860103399/6add0846/video/tos/cn/tos-cn-ve-15/c28890d8ae014084b8fe0baa7037a421/?a=1128&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=1152&bt=1152&cs=2&ds=3&ft=zyTEemq4dd2~YBSzVvjVQXmz-TLJ9E05m4E5ljOCnzNfG~RUxR…"
      },
      {
        "quality": "720_2_1",
        "bitrate": 927020,
        "fps": 30,
        "is_h265": true,
        "url": "https://v95-zj-colda.douyinvod.com/3597031f464e4aaac8e792c309b3c41b/6add0846/video/tos/cn/tos-cn-ve-15/64888fdc0e70457d956f7d85cbc7f6f0/?a=1128&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=905&bt=905&cs=2&ds=3&ft=zyTEemq4dd2~YBSzVvjVQXmz-TLJ9E05m4E5ljOCnzNfG~RUxRyqkZ&mime_type…"
      }
    ],
    "download_url": "https://v5-gddgtc-cold.douyinvod.com/a3891d04f3aaa7423d89030ba331a15f/6add0846/video/tos/cn/tos-cn-ve-15/oUYg9pEj8vJEAUY1AAImarifZCegMFQDgXDB4C/?a=1128&ch=26&cr=3&dr=0&lr=all&cd=0%7C0%7C0%7C3&cv=1&br=1589&bt=1589&cs=0&ds=3&ft=zyTEemq4dd2~YBSzVvjVQXmz-TLJ9E05m4E5ljOCnzNfG~RUxRyqkZ…",
    "has_watermark": true,
    "video_url_expires_at": "2026-10-24T19:34:30+00:00",
    "permissions": {
      "can_comment": true,
      "can_download": true,
      "can_duet": true,
      "can_stitch": true,
      "can_share": true,
      "can_repost": true,
      "can_save": true
    },
    "author_gender": "•••",
    "author_age": 27,
    "duration_sec": 9,
    "hashtags": [
      "家常菜",
      "如果幸福是一顿漂亮饭"
    ],
    "duration_seconds": 9
  },
  "billing": {
    "charged": …,
    "charged_usd": …,
    "balance_after_usd": …,
    …
  },
  "quota": { … }
}
```

## FAQ

### `url` 应该填什么链接？

填视频页的完整链接，格式如 https://www.douyin.com/video/<视频ID>。手里只有分享短链时，可以先在浏览器里打开，再复制跳转后的视频页地址；用户主页和搜索页的链接都不行。

### 视频的播放量能拿到吗？

拿不到。抖音不公开播放量，这里的 `view_count` 不代表真实播放。衡量一条视频的表现，可以看 `like_count`、`share_count` 与 `collect_count` 的组合，再和同一作者的其他视频对比。

### 能拿到视频里说的话吗？

这个能力返回的是视频文案和话题标签，不含语音内容。需要视频里的口播文字时，用同一个视频链接调抖音的视频文稿能力。

## Also

- Capability catalog (no key): https://api.everyinfra.com/api/v1/social/catalog?platform=douyin
- OpenAPI: https://everyinfra.com/openapi.json · Agents guide: https://everyinfra.com/agents.md
