TikTok 视频详情 & 列表 API 接口技术文档(带全套 JSON 样例・核心章节)

知名用户180079054738小时前未分类5

一、接口整体说明

TikTok 视频接口分两类:①用户作品列表接口(批量拉取多视频)、②单条视频详情接口(指定 aweme_id 查单品),通用cursor游标分页,不使用 page 页码;鉴权统一 Header:Authorization: Bearer ApiKey,单页上限 20~35 条,QPS 官方限流 3 次 /s。

1. 接口地址与入参

(1)用户作品列表(批量列表)

请求:GET /api/v1/tiktok/user/post/list

json

// 请求入参JSON{

    "sec_user_id": "MS4wLjABAAAA8fKxxxxxxx",
    "max_cursor": "0",
    "limit": 20,
    "region": "US"}
表格
参数必填释义
sec_user_id创作者唯一安全 ID,主页链接提取
max_cursor分页游标,首次 = 0,下一页用上轮返回 max_cursor
limit单页条数,1~35
region地区码 US/GB/JP 等

(2)单视频详情接口

请求:GET /api/v1/tiktok/video/detail

json

{

    "aweme_id":"7528963259874125698"}

二、接口原生返回 JSON(脱敏真实原版・列表 + 单详情)

1. 用户作品列表原始返回 JSON

原生嵌套层级深:作者信息、视频资源、音乐、互动统计多层内嵌,含大量冗余扩展字段,无法直接入库。

json

{

    "code":0,
    "msg":"success",
    "request_id":"tk_req_95632187",
    "data":{
        "has_more":true,
        "max_cursor":"1750236985000",
        "min_cursor":"0",
        "aweme_list":[
            {
                "aweme_id":"7528963259874125698",
                "desc":"Summer daily outfit✨ #fashion #ootd #summerlook",
                "create_time":1750212365,
                "is_private":false,
                "author":{
                    "uid":"6952369874521",
                    "unique_id":"lily_fashion_us",
                    "nickname":"Lily Fashion",
                    "avatar":"https://p3.tiktokcdn.com/tos-maliva-avt/xxx.jpg",
                    "signature":"Daily fashion sharing | US blogger",
                    "is_verified":true
                },
                "video":{
                    "duration":12800,
                    "width":1080,
                    "height":1920,
                    "cover":{
                        "url_list":["https://p3.tiktokcdn.com/tos-maliva-video/cover1.jpg"]
                    },
                    "play_addr":{
                        "url_list":["https://v16-web.tiktok.com/xxx.mp4"]
                    }
                },
                "music":{
                    "music_id":"7489562135987",
                    "title":"Sunny Day Vibe",
                    "author":"DJ Mark",
                    "cover":"https://p3.tiktokcdn.com/tos-maliva-music/msc.jpg"
                },
                "statistics":{
                    "digg_count":12589,
                    "comment_count":892,
                    "share_count":326,
                    "collect_count":1563,
                    "play_count":215689
                },
                "text_extra":[
                    {"hashtag_name":"fashion","hashtag_id":"523698"},
                    {"hashtag_name":"ootd","hashtag_id":"256987"}
                ]
            },
            {
                "aweme_id":"7528959874125369852",
                "desc":"Affordable casual clothes haul🛒 #clothes #shopping",
                "create_time":1750198652,
                "is_private":false,
                "author":{
                    "uid":"6952369874521",
                    "unique_id":"lily_fashion_us",
                    "nickname":"Lily Fashion",
                    "avatar":"https://p3.tiktokcdn.com/tos-maliva-avt/xxx.jpg",
                    "signature":"Daily fashion sharing | US blogger",
                    "is_verified":true
                },
                "video":{
                    "duration":9600,
                    "width":1080,
                    "height":1920,
                    "cover":{"url_list":["https://p3.tiktokcdn.com/tos-maliva-video/cover2.jpg"]},
                    "play_addr":{"url_list":["https://v16-web.tiktok.com/xxx2.mp4"]}
                },
                "music":{
                    "music_id":"7489561236954",
                    "title":"Shopping Mood",
                    "author":"Luna Band",
                    "cover":"https://p3.tiktokcdn.com/tos-maliva-music/msc2.jpg"
                },
                "statistics":{
                    "digg_count":9856,
                    "comment_count":632,
                    "share_count":215,
                    "collect_count":986,
                    "play_count":159632
                },
                "text_extra":[
                    {"hashtag_name":"clothes","hashtag_id":"326985"},
                    {"hashtag_name":"shopping","hashtag_id":"159874"}
                ]
            }
        ]
    }}

2. 单条视频详情原生 JSON(精简)

json

{

    "code":0,
    "msg":"success",
    "data":{
        "aweme_detail":{
            "aweme_id":"7528963259874125698",
            "desc":"Summer daily outfit✨ #fashion #ootd #summerlook",
            "create_time":1750212365,
            "author":{
                "unique_id":"lily_fashion_us",
                "nickname":"Lily Fashion",
                "is_verified":true
            },
            "statistics":{
                "digg_count":12589,
                "comment_count":892,
                "share_count":326,
                "collect_count":1563,
                "play_count":215689
            },
            "video":{
                "duration":12800,
                "cover":{"url_list":["https://p3.tiktokcdn.com/cover1.jpg"]},
                "play_addr":{"url_list":["https://v16-web.tiktok.com/xxx.mp4"]}
            },
            "music":{
                "title":"Sunny Day Vibe","author":"DJ Mark"
            }
        }
    }}

三、原生 JSON 现存痛点

  1. 时间是 Unix 时间戳,无法直接展示、按日期统计;

  2. 话题标签text_extra为数组嵌套,标签和 ID 混存,关键词提取繁琐;

  3. 视频封面、播放地址放在url_list数组内,多链接冗余,仅取首图即可;

  4. 作者信息深度内嵌,不利于创作者、视频分表存储

  5. 空字段(无音乐 / 无话题)字段结构不一致,遍历易空指针异常;

  6. 分页游标分散在顶层 data,批量采集需单独存储max_cursor

四、结构化解析后标准 JSON(业务落地模型,可直接入库 MySQL/ES)

扁平化字段、时间格式化、标签数组提取、资源精简,是竞品分析、爆款筛选、达人数据统计标准格式:

json

{

    "next_cursor":"1750236985000",
    "has_more":true,
    "video_list":[
        {
            "aweme_id":"7528963259874125698",
            "video_desc":"Summer daily outfit✨ #fashion #ootd #summerlook",
            "publish_ts":1750212365,
            "publish_time":"2025-03-19 14:06:05",
            "is_private":false,
            "author_info":{
                "uid":"6952369874521",
                "unique_id":"lily_fashion_us",
                "nickname":"Lily Fashion",
                "avatar":"https://p3.tiktokcdn.com/tos-maliva-avt/xxx.jpg",
                "signature":"Daily fashion sharing | US blogger",
                "is_verified":true
            },
            "video_resource":{
                "duration_ms":12800,
                "duration_sec":12.8,
                "width":1080,
                "height":1920,
                "cover_img":"https://p3.tiktokcdn.com/tos-maliva-video/cover1.jpg",
                "play_url":"https://v16-web.tiktok.com/xxx.mp4"
            },
            "music_info":{
                "music_id":"7489562135987",
                "music_name":"Sunny Day Vibe",
                "music_author":"DJ Mark",
                "music_cover":"https://p3.tiktokcdn.com/tos-maliva-music/msc.jpg"
            },
            "stats":{
                "play":215689,
                "like":12589,
                "comment":892,
                "share":326,
                "collect":1563
            },
            "hashtags":["fashion","ootd","summerlook"]
        },
        {
            "aweme_id":"7528959874125369852",
            "video_desc":"Affordable casual clothes haul🛒 #clothes #shopping",
            "publish_ts":1750198652,
            "publish_time":"2025-03-19 09:37:32",
            "is_private":false,
            "author_info":{
                "uid":"6952369874521",
                "unique_id":"lily_fashion_us",
                "nickname":"Lily Fashion",
                "avatar":"https://p3.tiktokcdn.com/tos-maliva-avt/xxx.jpg",
                "signature":"Daily fashion sharing | US blogger",
                "is_verified":true
            },
            "video_resource":{
                "duration_ms":9600,
                "duration_sec":9.6,
                "width":1080,
                "height":1920,
                "cover_img":"https://p3.tiktokcdn.com/tos-maliva-video/cover2.jpg",
                "play_url":"https://v16-web.tiktok.com/xxx2.mp4"
            },
            "music_info":{
                "music_id":"7489561236954",
                "music_name":"Shopping Mood",
                "music_author":"Luna Band",
                "music_cover":"https://p3.tiktokcdn.com/tos-maliva-music/msc2.jpg"
            },
            "stats":{
                "play":159632,
                "like":9856,
                "comment":632,
                "share":215,
                "collect":986
            },
            "hashtags":["clothes","shopping"]
        }
    ]}

五、异常返回 JSON(错误码参考,异常捕获必备)

json

// Token失效{

    "code":401,
    "msg":"ApiKey invalid or expired",
    "request_id":"tk_err_125698",
    "data":{}}// 接口限流{
    "code":429,
    "msg":"Request frequency limit, wait 15s",
    "data":{}}// 无效用户ID{
    "code":400,
    "msg":"sec_user_id not found",
    "data":{}}

六、核心解析实战要点

  1. 时间标准化create_time时间戳转yyyy-MM-dd HH:mm:ss,新增秒数字段duration_sec便于筛选短视频;

  2. 话题标签提取:遍历text_extra数组,只提取hashtag_name生成纯标签数组;

  3. 资源地址精简:封面、播放链接只取url_list[0]首地址,剔除冗余备用 CDN 链接;

  4. 空值容错:无音乐时music_info设为空对象,无话题hashtags=[],规避索引报错;

  5. 分页采集逻辑has_more=true则带入max_cursor循环翻页,直到 false 结束全量抓取。

七、极简 Python 解析示例(配套实战代码)

python
运行
import timedef parse_tiktok_video(raw_json):
    res = {}
    resp = raw_json.get("data",{})
    res["next_cursor"] = resp.get("max_cursor","")
    res["has_more"] = resp.get("has_more",False)
    video_arr = []
    for item in resp.get("aweme_list",[]):
        video = {}
        video["aweme_id"] = item["aweme_id"]
        video["video_desc"] = item["desc"]
        ts = item["create_time"]
        video["publish_ts"] = ts
        video["publish_time"] = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(ts))
        video["is_private"] = item["is_private"]
        #作者信息
        au = item["author"]
        video["author_info"] = au        #视频资源
        vd = item["video"]
        video["video_resource"] = {
            "duration_ms":vd["duration"],
            "duration_sec":round(vd["duration"]/1000,1),
            "width":vd["width"],
            "height":vd["height"],
            "cover_img":vd["cover"]["url_list"][0],
            "play_url":vd["play_addr"]["url_list"][0]
        }
        #互动数据
        st = item["statistics"]
        video["stats"] = {
            "play":st["play_count"],
            "like":st["digg_count"],
            "comment":st["comment_count"],
            "share":st["share_count"],
            "collect":st["collect_count"]
        }
        #话题标签
        tags = [i["hashtag_name"] for i in item.get("text_extra",[])]
        video["hashtags"] = tags
        video_arr.append(video)
    res["video_list"] = video_arr    return res

八、落地业务场景

  1. 海外达人监控:批量抓取博主作品播放 / 点赞,筛选潜力达人;

  2. 爆款内容挖掘:按播放、互动率筛选高流量短视频,复盘爆款标签;

  3. 跨境选品分析:穿搭 / 好物类视频统计热门品类、关键词,辅助选品;

  4. 竞品账号跟踪:定时拉取竞品作品数据,监控上新与流量变化。


相关文章

企业级实战:京东商品详情 API 简要说明 + JSON 返回参考

前言一、接口简要说明(企业级)1. 核心接口(官方 JOS 开放平台)接口标识:jingdong.item.read.get(新)/ item.jd.get(旧)功能:按京东商品 ID(skuId/i...

京东商品评论API接口能返回那些参数?

京东官方评论 API(如 jd.item.review.list.get)返回的 JSON 数据非常完整,包含状态、统计、用户、评论内容、多媒体、规格、商家回复等几十种字段。下面按模块清晰列出所有常用...

如何保障电商商品详情数据采集的API接口系列的性能稳定?

保障电商商品详情数据采集 API 接口系列的性能稳定,需围绕「高并发承载、低延迟响应、故障隔离、容错兜底」四大核心目标,从「架构设计、技术优化、运维监控」三维度构建全链路保障体系。以下是可落地的系统性...

淘宝 API 详情类 JSON 结构化解析实战(核心章节)

前言(可直接放入你的技术文章,纯技术、带代码、带解析、带踩坑点)一、前言:为什么结构化解析是核心?淘宝商品详情 API 返回的是多层嵌套 JSON,包含商品基础信息、SKU、图片、价格、营销、物流、服...

YouTube(油管)视频详情 API ,JSON 返回结构及解析方法

你想要了解 YouTube(油管)视频详情 API 的调用方式、JSON 返回结构及解析方法,核心是掌握「API 认证、请求构造、JSON 字段解读、实战解析」四大关键点。以下是从API 基础配置→完...

智标领航关键词搜索API,API接口系列

智标领航目前未明确提供独立的关键词搜索API接口,其核心API接口系列聚焦于招投标全流程智能化服务,包括招标文件解析、标书生成、标讯推送等模块,暂未将关键词搜索作为独立接口开放。以下为具体说明:智标领...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。