TikTok 用户主页视频爬虫:输入 TikTok 用户名 → 输出该用户的主页信息及分页视频列表(含完整元数据,如互动数据、背景音乐、视频元信息)。当用户提及以下需求时适用:TikTok 主页爬取、爬取 TikTok 用户视频、获取 TikTok 创作者视频、提取 TikTok 主页数据、TikTok 用户发帖、TikTok 账号视频采集、收集 TikTok 主页页面视频、TikTok 创作者视频列表、TikTok 创作者数据、TikTok 主页爬虫、tiktok user scraper、tiktok
TikTok — 配置视频.是一项面向实际任务的技能,主要用于TikTok 用户名 — 用户配置信息+ 带完整元数据视频列表.;Language. 所有进程输出给用户( 进度更新, 进程通知) 都遵循 u。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
输入 TikTok 用户名 → 获取用户个人主页信息 + 分页视频列表(含完整元数据)
所有面向用户的流程输出(进度提示、状态通知等)均遵循用户当前系统/界面语言。
通过访问目标用户的 TikTok 个人主页,触发其前端 JS 自动调用 /api/post/item_list/ 接口,从而提取该用户的视频列表及主页元数据。
https://www.tiktok.com若已在当前会话中确认 browser-act 可用 → 跳过此步骤。
通过 Skill 工具调用 browser-act 加载其功能。如遇安装或配置问题,请依据其提示完成修复后重试。
本 Skill 的能力边界 = 用户在浏览器中可手动完成的操作。它仅读取页面上已向用户呈现的数据,绝不绕过任何身份验证或访问控制机制。所有 JavaScript 逻辑均封装于
scripts/目录下的 Python 文件中,并通过eval "$(python scripts/xxx.py {params})"方式调用。$(...)为 Bash 语法,建议统一使用bash工具执行。
/api/post/item_list/ 接口需 TikTok 动态签名(dynamic signing),且依赖用户的 secUid(平台内部唯一标识)。通过导航至用户主页,TikTok 前端 JS 将自动解析出 secUid 并发起已签名的请求:
navigate https://www.tiktok.com/@{username}wait stablenetwork requests --type xhr,fetch --filter "post/item_list"network request 接口特征:URL 中包含 /api/post/item_list/,且含参数 secUid={secUid}&cursor=0
注意:secUid 是一个长格式内部 ID(例如:MS4wLjABAAAA-VASjiXTh7wDDyXvjk10VFhMWUAoxr8bgfO1kAL1-9s),可在捕获到的请求 URL 中直接观察到 —— 请记录该值,用于后续分页请求。
错误处理:若未捕获到匹配请求,请先通过 screenshot 确认主页是否成功加载。私密账号将返回空的 itemList;若页面显示地域限制提示,请切换至非香港代理环境的浏览器。
输出示例:
{
"cursor": "1778468677570", // 基于时间戳的游标,用于下一页请求
"hasMore": true, // false 表示全部视频已加载完毕
"itemList": [
{
"id": "7212410220977392938",
"desc": "Daily Push Up Workout🚀#fitness",
"createTime": 1679270124,
"isAd": false,
"isPinned": false,
"isSponsored": false,
"locationCreated": "US",
"author": {
"id": "6803405475100181510",
"uniqueId": "marcusriosofficial",
"nickname": "Marcus Rios",
"verified": false,
"signature": "Former NFL Athlete 🏈n📧marcusriosofficial@gmail.com",
"bioLink": null,
"avatarThumb": "https://...",
"privateAccount": false
},
"authorStats": {
"followerCount": 423500,
"followingCount": 50,
"heart": 10000000,
"videoCount": 1277,
"diggCount": 869
},
"authorStatsV2": {
"followerCount": "423500",
"followingCount": "50",
"heart": "10000000",
"videoCount": "1277"
},
"stats": {
"diggCount": 367500,
"shareCount": 6041,
"playCount": 4500000,
"commentCount": 942,
"collectCount": 56691
},
"video": {
"duration": 48,
"height": 1280,
"width": 720,
"cover": "https://...",
"definition": "720p",
"format": "mp4"
},
"music": {
"id": "7176546707423889410",
"title": "Trap Money so Big (Remix)",
"authorName": "Iqbal12",
"original": false,
"coverMedium": "https://..."
},
"textExtra": [{"hashtagId": "9261", "hashtagName": "fitness"}],
"effectStickers": [],
"imagePost": null
}
]
}
每个视频项的 webVideoUrl 构建方式:https://www.tiktok.com/@{item.author.uniqueId}/video/{item.id}
用户主页信息可从首个视频项的 author 和 authorStats 字段中提取,包括:粉丝数(followerCount)、关注数(followingCount)、总获赞数(heart)、视频总数(videoCount)、简介(signature)、认证状态(verified)等。
完成第 1 页数据读取后,向下滚动以加载更多视频:
scroll downwait stablenetwork requests --type xhr,fetch --filter "post/item_list"cursor 值应与上一页不同)network request 终止条件:响应中 hasMore 为 false,或 itemList 为空数组。
DOM 分页:滚动操作将触发新的 post/item_list 请求,游标(cursor)为时间戳格式。每页返回 16 条视频数据。终止条件为 hasMore === false 或 itemList 为空。
itemList.length >= 1,且首条视频项的 id、stats.playCount、author.uniqueId、authorStats.followerCount 均不为 null 或未定义。
post/item_list 接口依赖 TikTok 动态签名 + secUid 解析,二者均由 TikTok 前端 JS 完成 —— 必须采用“导航至主页 + 捕获网络请求”方式,不可直连itemListauthorStats.heartCount 可能因整型溢出变为负数 —— 请优先使用 authorStats.heart 字段路径:{working-directory}/browser-act-skill-forge-memories/tiktok-scraper-tiktok-profile-videos.memory.md
执行前:若该文件存在,请先阅读 —— 其中记录了历史执行中遇到的异常情况,可据此调整策略。
执行后:若发生未预期状况(如策略失效、页面改版、反爬升级等),请追加一行记录:
{YYYY-MM-DD}: {发生了什么} → {结论}
正常执行过程不会向该文件写入内容。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134万人学习
共49课时 | 82.5万人学习
最新文章