# 快手 数据 api：Python 取快手数据三条路实测

> 用 Python 取快手数据三条路：开放平台要企业入驻、只读授权用户的作品，开源脚本 11 月仍报失效，按次付费 API 跑 9 步链一条 $0.016。

- Canonical page: https://everyinfra.com/blog/kuaishou-api-python
- Published: 2026-11-14T03:32:00+08:00 · Fact-checked: 2026-11-14T01:40:00+08:00

我们在 2026 年 11 月 14 日 00:18 到 01:25（新加坡时间）用 Python 的 requests 跑了 4 次「关键词搜索 → 作品详情 → 评论两页 → 五种榜单」的 9 步完整链，36 个计费请求全部拿到结果，扣费和[能力目录](https://api.everyinfra.com/api/v1/social/catalog?platform=kuaishou)里的单价逐条一致，一条完整链 $0.016030。同样要 20 条搜索结果，「小麦播种」有 18 条是近 30 天发的，「红富士苹果」只有 1 条，最早一条发于 2023 年；快手热点的 49 个标题，37 分钟后只剩 21 个还在榜上，带货榜商品榜的 50 件商品在 4 次快照里一件没变。另外两条路我们按一手材料核对：快手开放平台[入驻](https://open.kuaishou.com/platformDocs/newGuide/entry.html)要提交企业、法人和管理员信息并通过审核，用户授权后只能读这个用户自己的资料和[作品](https://open.kuaishou.com/platformDocs/openAbility/contentManagement/searchForVideos.html)；GitHub 上常见的 kuaishou scraper 里，KS-Downloader 在 2026 年 11 月 2 日还有人[报告](https://github.com/JoeanAmier/KS-Downloader/issues/84)网页改版后视频作品详情必失败。

> **本文要点**
>
> - 4 次 9 步完整链共 36 个计费请求，扣费和目录单价逐条一致，一条完整链 $0.016030；失败的请求和空结果都不扣费。
> - 每千行成本按真实返回算：五种榜单约 $0.016–0.018，评论约 $0.15，用户搜索约 $0.27，关键词搜索约 $0.40；作品详情每千条作品 $0.806。
> - 快手搜索按相关度返回：同样 20 条，农技词「小麦播种」18 条在近 30 天，农产品词「红富士苹果」只有 1 条；做时效分析要先按 posted_at 过滤。
> - 评论按页读、每页 10–15 条：一条 15,169 条评论的比亚迪作品读完要约 1,517 页、约 $2.42，最新两页 20 条全是表情和「666」。
> - 快手开放平台面向入驻审核过的企业，用户授权后只能读这个用户自己的资料和作品，文档里没有关键词搜索、他人评论和榜单接口。

## 快手 数据 api 的三条路分别适合谁

用 Python 取快手数据，路只有三条：在快手开放平台入驻、建应用、让用户授权；在 GitHub 上找一个开源的 kuaishou scraper 自己跑；或者调一个按次付费的数据接口。三条路能读到的数据范围差别很大，开放平台以「授权给你的那个快手用户」为中心，开源脚本读网页和接口里能看到的东西、维护全靠自己，按次付费接口读的是公开作品、评论和各类榜单。

| 维度 | 快手开放平台（open.kuaishou.com） | GitHub 开源脚本 | 按次付费数据接口（本文实测 EveryInfra） |
| --- | --- | --- | --- |
| 主体要求 | [开发者入驻](https://open.kuaishou.com/platformDocs/newGuide/entry.html)要填企业信息、法人信息、管理员信息，平台审核通过后才能建应用 | 无 | 无，注册拿 API Key |
| 能读谁的数据 | 授权用户自己的公开资料（昵称、性别、头像、城市、粉丝数、关注数）和他自己发布的视频列表 | 网页和接口当下返回的公开内容，多数项目要先登录、带上登录态 | 公开作品搜索、作品详情、评论、用户搜索，以及热榜、直播榜、带货榜、品牌榜 |
| 关键词搜索 | 内容管理接口里没有按关键词搜别人作品的能力 | 有，取决于项目和登录态是否还有效 | `kuaishou/search`，默认 20 条、最多 100 条 |
| 评论 | 文档没有读他人作品评论的公开接口 | 有，近 10 个月的 issue 里多次报评论取不全（如 MediaCrawler [#843](https://github.com/NanmiCoder/MediaCrawler/issues/843)） | `kuaishou/comments`，按页取，带翻页令牌 |
| 榜单 | 无 | 少数项目有 | 热榜、分类热榜、直播榜、带货榜、品牌榜 5 种 |
| 计费 | 免费，但要入驻审核、申请接口权限 | 免费，自己出服务器、账号和维护时间 | 按次计费，[目录](https://api.everyinfra.com/api/v1/social/catalog?platform=kuaishou)标价搜索每次 $0.008，评论每页 $0.001597，榜单每次 $0.000806 |
| 主要风险 | 用户授权的 access_token 只有 48 小时，refresh_token 180 天到期后要用户重新授权（[快手登录](https://open.kuaishou.com/platformDocs/openAbility/kwaiLogin)） | 网页改版后解析失效，许可证限制商用 | 按量付费；数据范围以目录为准 |

## 第一条路：快手开放平台（官方 kuaishou api）

以下各页都在 2026 年 11 月 14 日读取，括号里是页面上标的更新时间。

### 面向谁：企业入驻，平台审核

[「平台介绍」](https://open.kuaishou.com/platformDocs/newGuide/introduce.html)页（更新时间 2024-09-06）写明，开发者完成入驻和应用注册后，可以获得的开放能力包括快手登录、用户管理和内容分享，以 SDK 或 open api 的形式提供；另外还有快手小程序、快手游戏开放和快手电商开放三类产品。这份清单里没有「数据查询」或「内容搜索」一类的能力，开放平台的定位是让第三方应用接入快手账号体系和分享能力。

[「开发者入驻」](https://open.kuaishou.com/platformDocs/newGuide/entry.html)页（更新时间 2026-03-06）第一句是加粗的：开发者需先完成基本信息填写和资质认证，由平台审核通过后完成入驻。资质认证一步要求填写企业信息、法人信息和管理员信息，提交后进入审核，审核期间可以用实名认证的快手号扫码登录控制台，审核通过后才能进入管理中心创建应用；没通过可以重新提交认证。我们没有找到面向个人开发者的入驻通道，快手小游戏的[资质规范页](https://open.kuaishou.com/miniGameDocs/operation/specification/qualifications.html)也写明了开发主体要求，小游戏这条线同样只面向企业。

![截图：快手开放平台「开发者入驻」文档页，页面标着更新时间 2026-03-06。青绿色方框标出加粗的第一句原文：开发者需先完成基本信息填写和资质认证，由平台审核通过后完成入驻。下方能看到「基本信息填写」「邮箱激活」「资质认证」几个步骤标题。](https://everyinfra.com/articles/kuaishou-api-python/img-doc-entry.webp)

开放平台入驻要先过资质认证和平台审核，2026 年 11 月 14 日截取。 [快手开放平台「开发者入驻」](https://open.kuaishou.com/platformDocs/newGuide/entry.html)

[「应用注册」](https://open.kuaishou.com/platformDocs/newGuide/login.html)页（更新时间 2026-03-06）把应用分成移动应用、网站应用和游戏应用三类。网站应用除了填应用信息，还要上传一份网站信息登记表；移动应用的权限申请一节括号里写着「暂不支持直播权限申请」。应用审核通过后拿到 app_id 和 app_secret，再到应用详情里的接口信息一栏为每个开放接口单独申请权限。[「常见问题」](https://open.kuaishou.com/platformDocs/other/commonProblem)页（更新时间 2024-08-26）解释了两个最常见的报错：ACCESS_DENIED 表示用户授权时没有给这个 scope，INVALID_SCOPE 表示应用根本没申请这个接口。

### 能读什么：授权用户自己的资料和作品

[「快手登录」](https://open.kuaishou.com/platformDocs/openAbility/kwaiLogin)页（更新时间 2024-07-23）是所有数据接口的前提。授权只支持 OAuth 2.0 的 authorization_code 模式：用户在快手里确认授权后，你的回调地址收到一个 code，code 的有效期是 2 分钟；用它换来的 access_token 有效期 48 小时（172,800 秒），refresh_token 有效期 180 天，而且用 refresh_token 刷新时不会延长 refresh_token 本身的有效期。换句话说，就算你的服务每天自动刷新，180 天后也必须请这个用户再授权一次。

拿到 access_token 之后能读什么，看两个接口页就够了。[「用户公开信息」](https://open.kuaishou.com/platformDocs/openAbility/userInformation/publicInformation.html)接口返回授权用户的昵称、性别、头像、所在城市、粉丝数和关注数；[「查询视频」](https://open.kuaishou.com/platformDocs/openAbility/contentManagement/searchForVideos.html)页（更新时间 2024-12-23）列出了视频列表、单个视频详情和视频数量三个接口，都要 `scope : user_video_info`，读的是授权用户自己发布的作品。视频列表接口用 cursor 翻页，count 默认 20、最大 200。

![截图：快手开放平台「查询视频」文档页的视频列表接口说明。青绿色方框标出两处：接口要求的权限 scope : user_video_info，以及请求参数表里 access_token 一行标为必填。参数表里还能看到 cursor 和 count 两个参数。](https://everyinfra.com/articles/kuaishou-api-python/img-doc-photo-list.webp)

视频列表接口只读授权用户自己的作品，要 user_video_info 权限和 access_token，2026 年 11 月 14 日截取。 [快手开放平台「查询视频」](https://open.kuaishou.com/platformDocs/openAbility/contentManagement/searchForVideos.html)

所以用开放平台做「按关键词搜别人的视频」「读某条热门作品的评论」「每天拍一次热榜」，在文档里都找不到对应接口。我们在开放平台文档里也没有找到评论读取、关键词搜索或榜单类接口。开放平台适合的事情很明确：你的应用让快手用户登录，然后展示或分析这个用户自己的作品数据，比如一个帮创作者看自己视频播放趋势的工具。

| 开放平台事实 | 原文出处与更新时间 | 对取数的影响 |
| --- | --- | --- |
| 入驻要企业信息、法人信息、管理员信息，平台审核 | [「开发者入驻」](https://open.kuaishou.com/platformDocs/newGuide/entry.html)，2026-03-06 | 个人开发者走不通 |
| 应用分移动、网站、游戏三类；网站应用要上传网站信息登记表 | [「应用注册」](https://open.kuaishou.com/platformDocs/newGuide/login.html)，2026-03-06 | 先有网站或 App，才有应用 |
| 每个开放接口要在应用详情里单独申请 | 「应用注册」，2026-03-06 | 权限按接口审批 |
| 授权只支持 authorization_code；code 2 分钟有效 | [「快手登录」](https://open.kuaishou.com/platformDocs/openAbility/kwaiLogin)，2024-07-23 | 必须有真人点授权 |
| access_token 48 小时，refresh_token 180 天且刷新不延长 | 「快手登录」，2024-07-23 | 半年后要用户重新授权 |
| 视频列表要 user_video_info，只读授权用户自己的作品，count 最大 200 | [「查询视频」](https://open.kuaishou.com/platformDocs/openAbility/contentManagement/searchForVideos.html)，2024-12-23 | 读不到别人的作品 |
| ACCESS_DENIED 是用户没给 scope，INVALID_SCOPE 是应用没申请接口 | [「常见问题」](https://open.kuaishou.com/platformDocs/other/commonProblem)，2024-08-26 | 两类报错分开排查 |

### 电商开放平台、磁力引擎和快手指数

快手还有三个和数据沾边的官方入口，常被搜「快手 api 接口」的人混在一起。[快手电商开放平台](https://open.kwaixiaodian.com/)有服务商和商家两种接入身份，接口围绕店铺、商品、订单和售后，读的是你自己店铺的数据，额外的权限包要发邮件申请。[磁力引擎开发者中心](https://developers.e.kuaishou.com/docs)的 MAPI 是广告投放接口，管理的是你自己的广告账户、计划和报表，[更新日志](https://developers.e.kuaishou.com/tools/logs)最近一条是 2026-08-27。快手指数登录后可以免费查关键词热度，但[用户协议](https://index.e.kuaishou.com/m/userAgreement)（2023-06-01 生效）写明只许非商业使用，并禁止用爬虫或其他自动化工具读取。

[快手小程序平台服务协议](https://open.kuaishou.com/docs/operate/platformAgreement/agreement.html)（2025-09-22 更新，2025-09-16 生效）第五条第 5 款写着：未经快手同意，您不得收集、存储、抓取、处理或要求任何用户提供任何数据。这条约束的是在快手生态里开发小程序的一方，但它清楚说明了快手对开发者读取用户数据的态度：凡是要读、要存的，都要先经过快手同意。

## 第二条路：GitHub 上的开源 kuaishou scraper

搜「kuaishou scraper」或「快手爬虫 github」，前几页反复出现的是下面五个项目。我们在 2026 年 11 月 14 日 00:2x（新加坡时间）用 GitHub 接口读了它们的星标数、最后一次推送时间和许可证，又读了 README 和近一年里和快手有关的 issue。正文只写项目名，不写 issue 作者。

| 项目 | 星标 | 最后推送（UTC） | 许可证 | README 里写的取数方式 |
| --- | --- | --- | --- | --- |
| [MediaCrawler](https://github.com/NanmiCoder/MediaCrawler) | 71,088 | 2026-11-09 | 仓库自带条款（GitHub 识别为 NOASSERTION） | 多平台，用 Playwright 浏览器加登录态；README 写明仅供学习、禁止商用 |
| [KS-Downloader](https://github.com/JoeanAmier/KS-Downloader) | 897 | 2026-10-26 | GPL-3.0 | 只做快手作品下载，解析作品页面里的数据 |
| [KuaiShou-Spider](https://github.com/cv-cat/KuaiShou-Spider) | 81 | 2026-10-08 | 未声明 | 快手接口逆向 |
| [lxSpider](https://github.com/lixi5338619/lxSpider) | 1,975 | 2024-05-09 | GPL-3.0 | 多个网站的爬虫合集 |
| [kuaishou-crawler](https://github.com/oGsLP/kuaishou-crawler) | 185 | 2023-05-22 | MIT | 早年的快手下载脚本，近三年没有推送 |

### 近 60 天的失效反馈：网页改版后作品详情取不到

最新的一条快手失效报告是 KS-Downloader 的 [issue #84](https://github.com/JoeanAmier/KS-Downloader/issues/84)，2026-11-02 提出，到我们读取时仍是 open。报告人写的标题是「视频作品详情必失败」，正文说快手 Web 端近期改版后，电脑版作品页里内嵌的状态数据已经不含作品信息，手机分享页的数据还在，但项目里的正则要求两个字段字面相邻，同一链接多次请求约一半的响应是另一种页面变体，于是「同一链接有时成功有时失败」。页面结构一变，解析逻辑就得跟着改，而改动要等维护者有空。

MediaCrawler 这一年里和快手有关的 issue 有好几条：[#808](https://github.com/NanmiCoder/MediaCrawler/issues/808)（2026-01-10）报快手爬取不到评论，当天关闭；[#843](https://github.com/NanmiCoder/MediaCrawler/issues/843)（2026-03-09）报快手评论区爬取不完全、出现接口错误，至今 open；[#917](https://github.com/NanmiCoder/MediaCrawler/pull/917)（2026-06-15）是一个修复快手翻页逻辑的合并请求，修的是翻页死循环；[#954](https://github.com/NanmiCoder/MediaCrawler/issues/954)（2026-08-06）报快手在 detail 模式下无法下载视频，至今 open。评论和翻页是开源脚本里最容易坏的部分，作品详情会随网页改版整体失效。

![时间线图：2026 年 1 月到 11 月开源快手脚本的 5 条公开失效反馈。MediaCrawler：1 月 10 日「快手爬取不到评论」（当天关闭）、3 月 9 日「快手评论区爬取不完全」（open）、6 月 15 日「修复快手翻页逻辑」（已合并）、8 月 6 日「快手无法下载视频」（open）；KS-Downloader：11 月 2 日「视频作品详情必失败」（open，青绿色高亮）。](https://everyinfra.com/articles/kuaishou-api-python/fig-09-oss-issue-timeline.zh.light.svg)

### 许可证、登录态和 robots.txt

许可证决定你能不能把脚本用在公司项目里。MediaCrawler 的 [README](https://github.com/NanmiCoder/MediaCrawler) 写着本仓库的所有内容仅供学习和参考之用、禁止用于商业用途，并链了一个[整理中国爬虫判例的仓库](https://github.com/HiddenStrawberry/Crawler_Illegal_Cases_In_China)；KS-Downloader 和 lxSpider 是 GPL-3.0，改了代码再分发要同样开源；KuaiShou-Spider 没有声明许可证，按 [GitHub 的说明](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository)，没有许可证就意味着默认保留所有权利，别人无权复制、分发或修改。只有 kuaishou-crawler 是宽松的 MIT，但它最后一次推送是 2023 年 5 月。

登录态是另一项成本。MediaCrawler 用 Playwright 打开真实浏览器、保存登录后的状态再去取数，它的 issue 模板里专门有一项让提问者先确认「不是由于滑块验证码、Cookie 过期、平台风控」导致的问题，这三样就是自己跑脚本时最常卡住的地方。快手网站的 [robots.txt](https://www.kuaishou.com/robots.txt)（2026 年 11 月 14 日读取）允许 Baiduspider、Googlebot 等十几个具名爬虫，最后一段对所有其他 User-agent 写的是 `Disallow: /`。本文不讨论怎么处理验证码、风控或登录态失效，这些属于绕过平台限制，不在本文范围内。

## 第三条路：按次付费 快手 数据 api，用 Python 跑完整链

第三条路把登录态、页面解析和改版适配都留在服务一侧，你的 Python 只发 HTTP 请求、收 JSON。我们用的是 EveryInfra 的 `POST /api/v1/social`，platform 填 kuaishou，换 action 调不同能力。开工前先免费读一次目录 [`GET /api/v1/social/catalog?platform=kuaishou`](https://api.everyinfra.com/api/v1/social/catalog?platform=kuaishou)：2026 年 11 月 14 日 00:14（新加坡时间）读到快手各项能力都是可用状态，单价和本文实测次数如下表。

| 能力 | 做什么 | 关键参数 | 单价（每次） | 本文实测 |
| --- | --- | --- | --- | --- |
| `kuaishou/search` | 按关键词搜公开视频 | keyword、limit（默认 20，最多 100） | $0.008 | 4 次 |
| `kuaishou/video` | 作品详情：播放、点赞、评论、分享、收藏数和作者 | url（作品链接或 id） | $0.000806 | 4 次 |
| `kuaishou/comments` | 作品评论，按页取 | url、page_token | $0.001597 | 8 页 |
| `kuaishou/user_search` | 按关键词搜账号 | keyword | $0.008 | 1 次 |
| `kuaishou/user_live` | 某个账号是否在直播、累计作品数 | user_id | $0.000806 | 1 次 |
| `kuaishou/trending` | 快手热点 | 无 | $0.000806 | 4 次 |
| `kuaishou/hot_boards` | 分类热榜 | board：hot、entertainment、society、useful | $0.000806 | 4 次 |
| `kuaishou/live_rank` | 直播榜 | category：all、music、dance 等 11 类 | $0.000806 | 4 次 |
| `kuaishou/shopping_rank` | 带货榜 | board：hosts（主播）、products（商品） | $0.000806 | 4 次 |
| `kuaishou/brand_rank` | 品牌榜 | category：beauty、food_drink、auto 等 10 类 | $0.000806 | 4 次 |
| `kuaishou/hot_person_board` | 热门人物榜 | 见目录 | $0.000806 | 未测 |

![流程动画：九个方框从左到右排开，依次是 kuaishou/search（$0.008）、kuaishou/video、kuaishou/comments 第 1 页、第 2 页（各 $0.001597）、kuaishou/trending、kuaishou/hot_boards、kuaishou/live_rank、kuaishou/shopping_rank、kuaishou/brand_rank（各 $0.000806）。一个青绿色小点从搜索框出发依次走过九步。图下写着：4 次完整链每次都是 9 个计费请求，扣费都是 $0.016030，和目录单价逐条一致。](https://everyinfra.com/articles/kuaishou-api-python/fig-02-chain-flow.zh.light.svg)

下面这段脚本只依赖 requests，我们在 11 月 14 日 02:15（新加坡时间）用「红富士苹果」原样跑过一遍，9 个请求都返回了结果，扣费合计 $0.016030。Key 只从环境变量读，脚本把每一步的请求、耗时和完整返回存成 JSON。它处理了实测里碰到的三种情况：429 限速和标着可重试的 503 按 `retry_after` 等待后重发（这两种都不扣费）；慢请求先回 `status: running` 和 `poll_url`，就去轮询结果，不重复发请求；挑作品前先过滤掉正文里没有关键词的行。

```text
"""Kuaishou chain: search -> video -> comments (2 pages) -> trending -> hot_boards -> live_rank -> shopping_rank -> brand_rank.
pip install requests==2.32.3 ; export EVERYINFRA_API_KEY=... ; python kuaishou_chain.py 红富士苹果 run1"""
import json, os, sys, time
from pathlib import Path
import requests

API = "https://api.everyinfra.com/api/v1/social"
SESSION = requests.Session()
SESSION.headers["Authorization"] = "Bearer " + os.environ["EVERYINFRA_API_KEY"]  # the key stays in the environment


def call(action, params, out_dir, name):
    body = {"platform": "kuaishou", "action": action, "params": params}
    for _ in range(5):
        t0 = time.time()
        r = SESSION.post(API, json=body, timeout=150)
        data = r.json()
        err = data.get("error") or {}
        # 429 and retryable 503 are not charged: wait as told, then send the same request again
        if r.status_code == 429 or (r.status_code == 503 and err.get("retryable")):
            time.sleep(int(err.get("retry_after") or 60))
            continue
        break
    # slow calls answer status=running with a poll_url: poll it instead of sending the request again
    while data.get("status") == "running" and data.get("poll_url"):
        time.sleep(5)
        data = SESSION.get(data["poll_url"], timeout=60).json()
    rec = {"started_sgt": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t0)), "elapsed_s": round(time.time() - t0, 2),
           "http_status": r.status_code, "request": body, "response": data}
    out_dir.mkdir(parents=True, exist_ok=True)
    (out_dir / f"{name}.json").write_text(json.dumps(rec, ensure_ascii=False, indent=1))
    rows = data.get("results") or []
    print(name, r.status_code, rec["elapsed_s"], len(rows), (data.get("billing") or {}).get("charged_usd"), flush=True)
    time.sleep(7)  # a short gap between calls; set it from the rate limit of your own key
    return data, rows


def main(keyword, tag, hot="hot", shop="products", brand="food_drink", live="all"):
    out = Path(os.environ.get("OUT_DIR", ".")) / tag
    _, videos = call("search", {"keyword": keyword, "limit": 20}, out, "1_search")
    word = keyword.split()[0]  # keep rows whose text has the keyword, then take the most-commented one
    on_topic = [v for v in videos if word in (v.get("text") or "")] or videos
    if not on_topic:
        return print("empty search: not charged, stop here")
    pick = max(on_topic, key=lambda v: (int(v.get("comment_count") or 0), int(v.get("like_count") or 0)))
    vid = str(pick["id"])  # a long numeric id also works as the url input of video and comments
    call("video", {"url": vid}, out, "2_video")
    page1, _ = call("comments", {"url": vid}, out, "3_comments_p1")
    if page1.get("next_page_token"):
        call("comments", {"url": vid, "page_token": page1["next_page_token"]}, out, "4_comments_p2")
    call("trending", {}, out, "5_trending")
    call("hot_boards", {"board": hot}, out, "6_hot_boards")
    call("live_rank", {"category": live}, out, "7_live_rank")
    call("shopping_rank", {"board": shop}, out, "8_shopping_rank")
    call("brand_rank", {"category": brand}, out, "9_brand_rank")


if __name__ == "__main__":
    main(*sys.argv[1:])
```

九步各做一件事。`kuaishou/search` 按关键词搜公开视频，每行有作品 id、正文、时长（毫秒）、播放数、点赞数、发布时间和作者 id 等字段；`kuaishou/video` 补全一条作品的收藏数、作品链接和作者主页链接；`kuaishou/comments` 按页取评论，每行带评论者 id、正文、点赞数、发布时间和属地；后五步是五种榜单，不需要关键词。要按关键词找账号，另调 `kuaishou/user_search`：我们用「果园」搜了一次，返回 30 个账号，扣 $0.008。脚本每步之间留 7 秒间隔，按你自己 Key 的限速调整。

## 实测：四个关键词、四个时刻

四个关键词分两组。「红富士苹果」和「小麦播种」对应后文的三农取样：一个是农产品带货词，一个是秋播季的农技词；「牛油果」是一个全年都在卖的进口水果词，西语稿拿它给拉美出口商看；「比亚迪」配汽车品牌榜，是英文稿里的品牌研究例子。榜单参数前三次用热榜（hot）或实用榜（useful）、带货榜看商品（products）、品牌榜看食品饮料（food_drink），第四次品牌榜换成汽车（auto）。下表是每次的结果，时间都是 2026 年 11 月 14 日新加坡时间。

| 实测 | 时间 | 关键词 | 搜索返回条数 | 选中作品的评论数 | 评论两页返回条数 | 9 步扣费 |
| --- | --- | --- | --- | --- | --- | --- |
| 一 | 00:18–00:23 | 红富士苹果 | 20 | 2,166 | 10 + 10 | $0.016030 |
| 二 | 00:29–00:33 | 小麦播种 | 20 | 65 | 15 + 10 | $0.016030 |
| 三 | 00:56–00:58 | 牛油果 | 20 | 6,412 | 10 + 10 | $0.016030 |
| 四 | 01:20–01:25 | 比亚迪 | 20 | 15,169 | 10 + 10 | $0.016030 |

四次实测分别在新加坡时间 00:18、00:29、00:56 和 01:20 开始，前后跨了 67 分钟，正好用来看榜单在一个多小时里怎么变。

每一次扣费都和目录单价一致：搜索 $0.008、作品详情和五种榜单各 $0.000806、评论每页 $0.001597，加起来一条完整链 $0.016030。

耗时按九个请求各自从发出到收到结果的时间相加，不含步间间隔和重试等待：四次完整链的中位数是 58.9 秒（样本 4 次）。跑批量任务时，把搜索放进并发队列、榜单另开定时任务，比串行跑一条长链省时间；并发上限以你自己 Key 的限速为准。

![截图：两张深色代码卡片。左边是 00:18 的 kuaishou/search 请求，关键词红富士苹果、limit 20，count 为 20，展示前两条作品：一条播放 1,229 次、评论 1 条、发布于 2025-11-21，另一条播放 2,167,408 次、评论 161 条、发布于 2026-04-07，作者 id 和作者名都显示为 hidden，billing 里 charged_usd 为 0.008。右边是 00:19 的 kuaishou/comments 第 1 页，count 为 10，带截短的 next_page_token 和 has_more 为 true，两条评论的属地是湖南和贵州、点赞都是 0，charged_usd 为 0.001597。](https://everyinfra.com/articles/kuaishou-api-python/img-api-response.webp)

两次真实返回，只保留前两条结果；作者名隐去，账户余额字段删除。 [EveryInfra 接口真实返回，2026-11-14 00:18 和 00:19 新加坡时间](https://api.everyinfra.com/api/v1/social/catalog)

## 搜索：同样 20 条，新旧差别很大

快手搜索的排序按相关度来，返回的作品可能是三年前的，也可能是昨天的。实测一「红富士苹果」的 20 条里，最早一条发布于 2023-09-05，最新一条是 2026-10-27，按年份分是 2023 年 1 条、2024 年 9 条、2025 年 3 条、2026 年 7 条，近 30 天内发布的只有 1 条。实测二「小麦播种」的 20 条全部发布于 2026 年，最早 2026-04-15，近 30 天内的有 18 条。两个词的差别来自季节：11 月中旬正是冬小麦播种收尾的时候，央视网 2026 年 11 月 11 日[报道](https://news.cctv.com/2026/11/11/ARTIRbFL7fRE9sXRzp8flmOu261111.shtml)全国冬小麦播种过八成，平台上的新内容自然集中；苹果的采摘上市在 9 到 10 月，搜索结果里沉淀的是往年的爆款。

![堆叠横条图：四次 kuaishou/search（limit 20）返回作品的发布时间分布。实测一红富士苹果：近 30 天 1 条、2026 年更早 6 条、2025 年 3 条、2024 年及更早 10 条；实测二小麦播种：近 30 天 18 条、2026 年更早 2 条；实测三牛油果：6、2、10、2；实测四比亚迪：5、10、2、3。近 30 天一段为青绿色。](https://everyinfra.com/articles/kuaishou-api-python/fig-03-search-age-bar.zh.light.svg)

如果你想看「这个月平台上关于红富士苹果的内容在讲什么」，直接拿搜索前 20 条去统计，95% 的样本是旧内容；先按 `posted_at` 过滤到目标时间窗，再决定要不要多搜几个近义词把样本补够。我们的取样脚本在后文三农一节，第一步就是加这个时间窗。

搜索返回的作品 id 是一串长数字，可以直接当 `kuaishou/video` 和 `kuaishou/comments` 的 url 参数，不用先拼作品链接。认证标记在两个词上差别明显：「红富士苹果」20 行没有一行来自认证账号，「小麦播种」20 行里有 9 行，农技内容里机构和媒体账号多。我们的脚本挑作品时先比评论数、再比点赞数；做统计时，把「字段为空」和「数值为 0」分开记。

播放数的分布跨度很大。「红富士苹果」20 条的播放数从 112 到 3,086,343，中位数 24,703；「小麦播种」从 64 到 905,160，中位数 4,162。正文含完整关键词的行数，前者 16 条、后者 12 条，其余行的关键词出现在话题标签或者只出现了一半（比如只写「苹果」或「播种机」）。我们的脚本按关键词前两个字过滤，「红富士苹果」留下 18 条、「小麦播种」留下 18 条，再从中挑评论最多的一条进入下一步。

## 评论：每页 10 到 15 条，读完一条热门作品要 217 页

`kuaishou/comments` 每次返回一页，页大小不固定：实测一两页各 10 条，实测二第 1 页 15 条、第 2 页 10 条。每页返回里带 `next_page_token`，原样传回去就是下一页；令牌是一串以 pt1. 开头的长字符串，不用自己解析。实测三、实测四两页也都是 10 条，四次 8 页加起来 85 条，平均每页 10.6 条。

![堆叠横条图：四次各取两页 kuaishou/comments 的条数。实测一红富士苹果（评论数 2,166）10 加 10；实测二小麦播种（搜索里显示 65）15 加 10；实测三牛油果（6,412）10 加 10；实测四比亚迪（15,169）10 加 10。第 1 页为青绿色。](https://everyinfra.com/articles/kuaishou-api-python/fig-05-comment-pages-bar.zh.light.svg)

按每页 10 条估算，实测一选中的那条红富士苹果作品有 2,166 条评论，读完要 217 页，按 $0.001597 一页算约 $0.35；同样的钱可以搜 43 次关键词。所以评论最好分两档取：做情绪和话题分析，取前两到三页（20–45 条）往往够用；要做全量存档，再按评论数估好页数和预算。评论的排序也要注意，实测一两页 20 条按时间从新到旧排，最新一条 2026-08-28、最旧一条 2026-01-07，作品本身发布于 2024-11-03，意味着前两页只覆盖了这条作品下最近八个月的讨论；实测二的 25 条没有严格按时间排。

评论行的字段里，`ip_location`（属地）四次 85 行全部有值，实测一前五个属地是广东 5、云南 4、山东 2、湖南 1、贵州 1，实测二是湖南 6、四川 5、广东 3、河南 2、辽宁 2；`like_count` 为 0 的行，实测一 20 行里有 19 行，实测二 25 行里有 23 行，评论区的点赞高度集中在极少数几条上。评论者的昵称和头像也在返回里，后文取样时我们一律不存。

实测三、四的评论还有两种情况要写进取样规则。实测三那条 2023 年发布的牛油果作品有 6,412 条评论，两页 20 条覆盖了 2025-10-24 到 2026-11-02 一整年，其中 13 条是以「回复 某人：」开头的楼中楼回复，正文里直接带着被回复者的昵称，存数据前要先把这段前缀删掉。实测四那条比亚迪作品是一个认证账号 2026-07-08 发布的车型广告，有 15,169 条评论，最新两页 20 条全部发在 2026-11-09 到 11-13 之间，内容全是表情符号和「666」，点赞全是 0；读完全部评论要约 1,517 页、约 $2.42。做品牌口碑分析时，先把纯表情的评论滤掉再算样本量。

实测二选中的是一个央视认证账号 2026-11-12 发布的冬小麦播种新闻，播放 632,220 次、点赞 6,976 次，两页评论 25 条都发在作品发布后的 24 小时内，适合看一条新闻刚发出时的反应。

## 榜单：热点一小时内换掉一半左右，带货榜和品牌榜几乎不动

五种榜单不需要关键词，单价都是 $0.000806，一次返回 27–51 行，是这条链里最便宜的数据。我们在四个时刻各拍一次，看它们变得多快。

![折线图：四次榜单快照（00:20、00:31、00:57、01:21）和第一次相同的比例。快手热点（青绿色粗线）依次是 100%、82%、43%、59%；直播榜 100%、94%、82%、52%；带货榜商品榜四次都是 100%；食品饮料品牌榜前三次都是 100%，第四次换成汽车类不画。](https://everyinfra.com/articles/kuaishou-api-python/fig-06-board-stability-line.zh.light.svg)

`kuaishou/trending`（快手热点）每次 47–51 行，每行有名次、标题、标签和关联作品 id 列表。00:20 和 00:31 两次快照相隔 11 分钟，49 个标题里有 40 个相同，前 10 名里有 7 个相同。再往后，00:57 的快照和 00:20 相比只剩 21 个标题相同（43%），01:21 的快照有 29 个相同（59%），前 10 名每次都有 7 个和第一次相同；同一时段直播榜 50 位主播和第一次相同的比例从 94% 降到 52%。热点里时政和社会新闻占了前排，我们不在文中引用具体标题，做研究时建议把它当作「平台此刻展示了什么」的记录。

`kuaishou/hot_boards`（分类热榜）有 hot、entertainment、society、useful 四块，每行有名次、标题、浏览量和标签。00:21 拍的热榜（hot）51 行，前 10 名和一分钟前拍的快手热点前 10 名是同一批标题，前 6 名顺序一致，第 7 到第 10 名顺序不同；00:31 拍的实用榜（useful）27 行，内容换成了「萝卜新吃法」「晾晒芥菜干」「自制关东煮」这类生活和农家做法，夹着手游攻略和手势舞教程。名次和浏览量并不一一对应：实用榜第 1 名浏览量 10,037,740，第 4 名反而有 11,988,803。

`kuaishou/live_rank`（直播榜）每次 50 行，每行是一个正在直播的主播，带热度值和直播间标题；`kuaishou/shopping_rank`（带货榜）选 products 时每行是一件商品，带人民币价格、促销标签和热度；`kuaishou/brand_rank`（品牌榜）每行是一个品牌的直播账号。两次快照里带货榜商品榜和食品饮料品牌榜的 50 行完全一样，品牌榜前 10 名依次是诺特兰德、蜜雪冰城、五常大米、旺旺、肯德基、茅台、奥利奥、五粮液、白象、塔斯汀，热度从 203,000 到 188,000。带货榜商品榜到 01:25 拍第四次时，50 件商品和顺序仍然和 00:22 完全一样；食品饮料品牌榜前三次也一模一样。这两块榜在 63 分钟、四次快照里没有变化；我们没有查到平台公开的更新周期，按天拍一次是保守的做法。

带货榜商品榜 50 件商品的价格分布对农产品带货的人有参考价值：价格中位数 39.45 元，最低 8.9 元、最高 236 元，50 件里 28 件低于 50 元；最常见的促销标签是「满12减2」，出现在 17 件商品上；按商品名判断，50 件里约 30 件是食品和日用快消品。快手带货榜的头部是低客单价的日用和食品，农产品要上这个榜，定价区间大致要落在这一段。

![横向条形图：带货榜商品榜 50 件商品按标价分档。20 元以下 11 件、20–49.9 元 17 件（这两档为青绿色），50–99.9 元 10 件，100–199.9 元 10 件，200 元及以上 2 件。数据为 2026-11-14 00:22 新加坡时间的一次真实返回。](https://everyinfra.com/articles/kuaishou-api-python/fig-08-shopping-price-bar.zh.light.svg)

## 每千条成本：榜单约 $0.016，评论约 $0.15，搜索约 $0.40

按次计费的价格好算，难算的是每拿到 1,000 行数据花多少钱，因为每次返回的行数不一样。我们用全部真实调用的返回行数和扣费现算：每千行成本 = 扣费合计 ÷ 返回行数 × 1,000，空结果已经退费、不计在内。

![横向条形图：按真实返回行数和扣费算的每千行成本。kuaishou/live_rank、kuaishou/brand_rank、kuaishou/shopping_rank 各 0.0161 美元（直播榜一条为青绿色），kuaishou/trending 0.0164，kuaishou/hot_boards 0.0179，kuaishou/comments 0.1503，kuaishou/user_search 0.2667，kuaishou/search 0.4000。](https://everyinfra.com/articles/kuaishou-api-python/fig-04-cost-per-1000-bar.zh.light.svg)

| 能力 | 计费调用 | 返回行数 | 扣费合计 | 每千行成本 |
| --- | --- | --- | --- | --- |
| `kuaishou/live_rank` | 4 | 200 | $0.003224 | $0.0161 |
| `kuaishou/brand_rank` | 4 | 200 | $0.003224 | $0.0161 |
| `kuaishou/shopping_rank` | 4 | 200 | $0.003224 | $0.0161 |
| `kuaishou/trending` | 4 | 196 | $0.003224 | $0.0164 |
| `kuaishou/hot_boards` | 4 | 180 | $0.003224 | $0.0179 |
| `kuaishou/comments` | 8 | 85 | $0.012776 | $0.1503 |
| `kuaishou/user_search` | 1 | 30 | $0.008000 | $0.2667 |
| `kuaishou/search` | 4 | 80 | $0.032000 | $0.4000 |
| `kuaishou/video` | 4 | 4 | $0.003224 | 每千条作品 $0.806 |

表里是四次完整链和一次用户搜索，共 37 次计费调用；加上 1 次 `kuaishou/user_live`（$0.000806），一共 38 次计费请求、$0.072926。核对脚本的那一遍（9 次、$0.016030）没有并进这张表。

搜索的单价是榜单的 9.9 倍（$0.008 ÷ $0.000806），每千行贵约 25 倍（$0.4000 ÷ $0.0161）；评论的每千行成本取决于页大小，10 条一页时是 $0.16，15 条一页时约 $0.11。作品详情一次只回一条，所以按每千条作品算是 $0.806，它的用处是补齐收藏数和作品链接，不需要对每条搜索结果都调。[目录](https://api.everyinfra.com/api/v1/social/catalog?platform=kuaishou)写明 search 的 limit 最大 100、单价按次计；本文只实测了 limit 20，limit 100 的返回条数没有实测。

## 跨领域例子：三农创作者的公开作品和评论怎么取样

快手 2026 年 10 月 25 日的三农大会上发布了《2026 快手三农生态数据报告》，据半岛都市报的[报道](https://www.sohu.com/a/1093340526_355158)（搜狐转载），报告里写到粉丝过万的三农创作者月活跃 9.6 万多人，三农内容日均播放 14.5 亿次，三农直播日均观看 4.5 亿次；农技类月活跃创作者 20 万多人，粉丝过万的农技创作者日均播放 3.72 亿次，每天搜索农技内容的用户 24 万多人。这些数字来自平台自己的报告、经媒体转述，我们没有核到报告原文。下面给农业经济、农技推广或者乡村传播方向的研究者一套取样方法，只写方法，不对任何个人或账号下结论。

### 取样方法：六步

第一步，建关键词表，分农技和农产品两组。农技组按农时选词，11 月可以用「小麦播种」「冬小麦管理」「果树冬剪」「大棚保温」；农产品组按产区和品类选词，比如「红富士苹果」「赣南脐橙」「五常大米」。每个词都要同时跑一次 `kuaishou/user_search`，看看搜出来的账号是农户、合作社、农资商家还是媒体机构，我们 00:2x 用「果园」搜到 30 个账号，大多数是果园、果业和水果店类账号名。

第二步，按时间窗过滤。上一节的实测已经说明，农产品词的搜索结果里旧内容占多数，「红富士苹果」20 条里只有 1 条在近 30 天，「小麦播种」20 条里有 18 条。取样前先定好时间窗，比如「近 30 天」或「播种期 10 月 1 日到 11 月 30 日」，窗外的行单独存，不进统计。

第三步，给作者分类，只存哈希。三农内容的作者混着三类人：个人农户和新农人、农资农机商家、媒体和机构账号。「小麦播种」20 行里 9 行来自认证账号，另有 5 行的作者名带「农机」「农资」「播种机」这类字样，个人农户只占 6 行。研究时按类别分开统计，作者 id 用 SHA-256 取前 12 位存成哈希，昵称和头像一律不落盘。

第四步，标出平台活动话题。「小麦播种」20 行里有 6 行带 #喜爱度激励计划、#助农帮帮团 这类平台活动话题，「红富士苹果」20 行里有 2 行带 #快手助农。参加平台活动的作品会获得额外的流量扶持，播放数和自然内容不可比，统计播放和互动时要单独分组。

第五步，评论只取前两页，按属地汇总。对每个关键词在时间窗内挑评论数前三的作品，各取两页评论，得到 60–90 条；只保留正文、发布时间、属地和点赞数，属地按省汇总后再看分布。回复类评论先删掉「回复 某人：」前缀，纯表情的评论单独计数。实测里 85 条评论的属地全部有值，可以用来看一个农技话题的讨论集中在哪些省份；点赞几乎全是 0，所以别用点赞数给评论加权。

第六步，配一块榜单做背景。每天拍一次 `kuaishou/hot_boards` 的实用榜（useful）和 `kuaishou/shopping_rank` 的商品榜，前者能看到农家做法类内容什么时候冲上榜，后者能看农产品在带货榜上的价格带。

下面这段脚本做第二到第四步：读搜索的原始 JSON，按天数过滤，作者 id 取哈希，按作者名和认证标记分类，标出平台活动话题，写成 CSV。

```text
"""Sample kuaishou/search results for agriculture research: time window, hashed author ids, roles, campaign tags.
python sannong_sample.py 30 run1/1_search.json run2/1_search.json > sample.csv"""
import csv, hashlib, json, re, sys
from datetime import datetime, timedelta, timezone

CAMPAIGN = re.compile(r"#(喜爱度激励计划|助农帮帮团|快手助农|光合计划|幸福乡村|快手三农)")
SELLER = re.compile(r"农资|种业|农机|机械|播种机|装备|厂|果业|商行|旗舰")

def rows(path):
    rec = json.load(open(path, encoding="utf-8"))
    kw = rec["request"]["params"]["keyword"]
    for v in rec["response"].get("results") or []:
        yield kw, rec["started_sgt"], v

def main(days, *paths):
    now = datetime.now(timezone.utc)
    w = csv.writer(sys.stdout)
    w.writerow(["keyword", "fetched_sgt", "video_id", "posted_at", "in_window", "author_hash", "author_role",
                "campaign_tag", "has_keyword", "view_count", "like_count", "comment_count", "duration_s"])
    for kw, fetched, v in (r for p in paths for r in rows(p)):
        posted = datetime.fromisoformat(v["posted_at"])
        name, text = v.get("author_name") or "", v.get("text") or ""
        role = "verified" if v.get("author_verified") else ("seller_like" if SELLER.search(name) else "other")
        w.writerow([kw, fetched, v["id"], v["posted_at"][:10], posted >= now - timedelta(days=int(days)),
                    hashlib.sha256(str(v["author_id"]).encode()).hexdigest()[:12],  # no nickname is kept
                    role, bool(CAMPAIGN.search(text)), kw.split()[0] in text,
                    v.get("view_count"), v.get("like_count"), v.get("comment_count"), round((v.get("duration_ms") or 0) / 1000)])

if __name__ == "__main__":
    main(*sys.argv[1:])
```

我们拿实测一、实测二的两份搜索结果跑了一遍，40 行的结果是：「红富士苹果」时间窗内 1 行，作者 16 个、平台活动话题 2 行、作品时长中位 8 秒；「小麦播种」时间窗内 18 行，作者 18 个、平台活动话题 6 行、作品时长中位 21.5 秒。

### 三档预算

![堆叠横条图：三农取样三档的接口费。课题试点 4 周合计 0.64 美元，其中评论 0.31 美元、搜索 0.26 美元；季度监测 13 周合计 22.06 美元，其中评论 12.46 美元（青绿色）、搜索 6.24 美元、作品详情 3.14 美元、三块榜单共 0.22 美元；评论全量 200 条作品合计 16.13 美元，几乎全是评论 15.97 美元。](https://everyinfra.com/articles/kuaishou-api-python/fig-07-scenario-cost-bar.zh.light.svg)

| 档位 | 做法 | 请求数 | 接口费 |
| --- | --- | --- | --- |
| 课题试点（4 周） | 8 个关键词每周搜 1 次；每次挑 3 条作品取详情和两页评论；每周拍 1 次实用榜 | 324 | $0.64 |
| 季度监测（13 周） | 30 个关键词每周搜 2 次；每次挑 5 条作品取详情和两页评论；实用榜、商品榜、食品饮料品牌榜每天各拍 1 次 | 12,753 | $22.06 |
| 评论全量 | 200 条作品，每条平均 500 条评论，每页按 10 条读完 | 10,200 | $16.13 |

单价取 2026 年 11 月 14 日读的目录，只算接口费，不算存储、分析和人工。季度监测一档里 56% 的钱花在评论上，所以评论取几页是最该先定的参数；要压预算，先把每个关键词挑的作品数从 5 条降到 3 条，评论费就少四成。

### 数据边界

这套方法能回答的是「平台上公开展示了什么内容、这些内容收到了什么样的公开评论」。它回答不了「农户真实在想什么」：搜索按相关度排序、只回前 20 到 100 条，平台活动会放大部分作品，评论区的属地是平台按 IP 显示的省份，不等于评论者的户籍或所在地。写进研究报告时，建议把样本框（关键词、时间窗、拍照时刻）写清楚，引用评论只用汇总数字或者改写后的观点，不放能反查到个人的原文。

## 错误和扣费：哪些情况不花钱

我们在 00:33 前后专门做了三次错误测试，都没有花钱。不带 Key 请求返回 401，错误码 missing_key，信息里写着 Nothing was charged；搜索把 keyword 写成 keywords，返回 422 missing_param，错误体里直接给了一个能跑通的示例请求 `{"keyword":"美食"}`；`kuaishou/hot_boards` 的 board 传 sports，返回 422 invalid_value，列出允许值 entertainment、hot、society、useful。

正式实测里，返回 503 的请求没扣费，按 `retry_after` 重试后成功。定时任务和会自动重试的调用，走 REST 接口并带上 `Idempotency-Key` 请求头，做法见[API 幂等键与 AI 代理重试](/blog/api-idempotency-key-ai-agent-retry)。按次计费的失败退款怎么在你自己的账本里对上，可以看我们写过的[失败退款对账](/build/failure-refund-reconciliation)。

## 快手近三个月的动态

取数方案要跟着平台本身的变化调整，下面是 2026 年 8 月以来和快手数据有关的几件事，日期都按原文写。

| 日期 | 事件 | 出处 |
| --- | --- | --- |
| 2026-08-19 | 快手公布 2026 年第二季度业绩：平均日活跃用户 4.123 亿、月活跃用户 7.973 亿，总收入 355 亿元；可灵 AI 当季收入超过 8.5 亿元 | [快手投资者关系网站](https://ir.kuaishou.com/news-releases/news-release-details/kuaishou-technology-announces-second-quarter-and-interim-2026) |
| 2026-10-08 | 开源项目 KuaiShou-Spider 最后一次推送 | [GitHub](https://github.com/cv-cat/KuaiShou-Spider) |
| 2026-10-25 | 快手三农大会发布《2026 快手三农生态数据报告》 | [半岛都市报，经搜狐转载](https://www.sohu.com/a/1093340526_355158) |
| 2026-10-26 | 开源项目 KS-Downloader 最后一次推送 | [GitHub](https://github.com/JoeanAmier/KS-Downloader) |
| 2026-11-02 | KS-Downloader issue #84 报网页改版后视频作品详情必失败 | [GitHub](https://github.com/JoeanAmier/KS-Downloader/issues/84) |
| 2026-11-06 | 快手宣布将于 2026-11-19 公布第三季度业绩 | [美通社](https://www.prnewswire.com/news-releases/kuaishou-technology-to-report-2026-third-quarter-financial-results-on-november-19-2026-302931918.html) |
| 2026-11-09 | MediaCrawler 最后一次推送 | [GitHub](https://github.com/NanmiCoder/MediaCrawler) |
| 2026-11-11 | 央视网报道全国冬小麦播种过八成 | [央视网](https://news.cctv.com/2026/11/11/ARTIRbFL7fRE9sXRzp8flmOu261111.shtml) |

第三季度业绩会在 2026-11-19 公布，发布前后我们会复读一次投资者关系页的用户数。对取数的人来说，最直接的影响是 11 月初的网页改版，KS-Downloader #84 描述的作品详情失效就发生在这次改版之后；按次接口这边，我们在 11 月 14 日跑的四次链里，`kuaishou/video` 四次都成功返回了播放、点赞、评论和收藏数。

## 什么时候另外两条路更合适

如果你要让快手用户在你的应用里登录、展示他自己的作品列表和播放数据，或者替他把视频分享到快手，只有开放平台能做，任何第三方接口都不该替你做这件事。管理自己的快手小店订单、商品和售后，用电商开放平台；管理自己的广告账户和报表，用磁力引擎的 MAPI。这几样读的都是你自己有权限的数据。

开源脚本更合适的情况也存在：你只要一次性下载某个公开账号的几百条历史作品做课堂作业或论文，愿意花一个下午配环境、登录、调延迟，许可证也允许你这样用；或者你要的字段某个项目已经解析好了。反过来，如果你要每天定时盯几十个关键词和几块榜单，团队里没人有精力在每次网页改版后修解析代码，按次付费接口更省心，钱也花得可预估。

同一系列的另外三篇讲[抖音](/blog/douyin-api-python)、[B 站](/blog/bilibili-api-python)和[微博](/blog/weibo-api-python)，各平台的能力和价格可以对照[快手数据接口](/kuaishou-api)、[抖音数据接口](/douyin-api)、[B 站数据接口](/bilibili-api)和[微博数据接口](/weibo-api)页。

## 合规与边界

开放平台、开源脚本和按次接口三条路，在快手取数时守的是同一套法律底线。《[个人信息保护法](https://www.cac.gov.cn/2021-08/20/c_1631050028355286.htm)》第二十七条允许在合理范围内处理个人自行公开或者其他已经合法公开的个人信息，但个人明确拒绝的除外，处理已公开的个人信息对个人权益有重大影响的，还要取得个人同意；按该法第四条的定义，评论者的昵称、头像、属地和发言可能构成个人信息，具体以法务意见为准。2025 年修订、2025 年 10 月 15 日起施行的《[反不正当竞争法](https://www.cnipa.gov.cn/art/2026/5/20/art_104_206437.html)》第十三条第三款写明，经营者不得以欺诈、胁迫、避开或者破坏技术管理措施等不正当方式，获取、使用其他经营者合法持有的数据。2025 年 1 月 1 日起施行的《[网络数据安全管理条例](https://www.mee.gov.cn/zcwj/gwywj/202410/t20241003_1087417.shtml)》第十八条对使用自动化工具访问、收集网络数据提出了要求，不得非法侵入他人网络、干扰网络服务正常运行。

具体到本文的做法：我们只取公开作品、公开评论和公开榜单，不登录任何快手账号，不碰私信和仅粉丝可见的内容；文章里出现的个人作者和评论者一律隐去昵称，只点名机构和品牌账号；取样脚本把作者 id 做成哈希、不存昵称和头像。本文不教任何绕过平台限制的方法，前面引用开源项目的登录态和验证码说明，是为了让你知道那条路的维护成本。

## 常见问题

### 快手 数据 api 有官方的吗？个人开发者能申请吗？

快手开放平台是官方的 kuaishou api，但开发者入驻要提交企业信息、法人信息和管理员信息并通过审核，我们没有找到面向个人的入驻通道。入驻后能读的是授权用户自己的公开资料和他自己发布的视频，关键词搜索、他人作品的评论和榜单在开放平台文档里都没有对应接口。

### kuaishou api 和可灵 api 是一回事吗？

两回事。可灵（Kling）是快手的 AI 视频生成产品，它的 [API 文档](https://kling.ai/document-api/guides/get-started/overview)在 kling.ai，按生成的视频计费，用来调用文生视频、图生视频这类模型能力；它不提供快手平台的作品、评论或榜单数据。取快手平台的公开数据，要用开放平台、开源脚本或数据接口这三条路之一。

### 有没有现成的快手数据集可以直接用？

有两份公开的学术数据集。[KuaiRec](https://arxiv.org/abs/2202.10842)（arXiv:2202.10842）是快手和中国科学技术大学的研究者发布的推荐系统数据集，含 1,411 名用户的完全观测交互矩阵；[KuaiRand](https://arxiv.org/abs/2208.08696)（arXiv:2208.08696）加入了随机曝光的视频，用来研究推荐偏差。两份都是脱敏后的用户与视频交互记录，没有作品正文和评论，适合做推荐算法研究；要研究内容和评论，仍然要自己取样。

### 有没有不写代码的办法？

有。同一个 Key 可以接到[MCP 服务](/mcp-server)，在支持 MCP 的 AI 助手里用一句话发起查询，比如「搜一下快手上最近的小麦播种视频，取评论最多那条的前两页评论」；本文没有实测 MCP 这条路。定时任务和会重试的调用，仍建议走 REST 接口并带 `Idempotency-Key`。

## 上手步骤

1. 在控制台创建 API Key，写进环境变量 `EVERYINFRA_API_KEY`，步骤见[快速上手](/docs#quickstart)。
1. 免费读一次目录 `GET /api/v1/social/catalog?platform=kuaishou`，确认参数、价格和可用状态；价格汇总也可以看[价格页](/pricing)和[数据市场](/market)。
1. `pip install requests`，复制第三节的脚本，执行 `python kuaishou_chain.py "你的关键词" run1`。
1. 脚本跑完后，逐个打开 run1 文件夹里的 9 个返回文件，看 `billing.charged_usd` 和目录单价是否一致；要翻评论，把 `next_page_token` 原样传回。
1. 做三农或其他行业取样，用三农一节的 `sannong_sample.py` 先过滤时间窗、哈希作者 id，再统计。

各能力的参数页：[kuaishou/search](/kuaishou-api/search)、[kuaishou/video](/kuaishou-api/video)、[kuaishou/comments](/kuaishou-api/comments)、[kuaishou/user_search](/kuaishou-api/user_search)、[kuaishou/trending](/kuaishou-api/trending)、[kuaishou/hot_boards](/kuaishou-api/hot_boards)、[kuaishou/live_rank](/kuaishou-api/live_rank)、[kuaishou/shopping_rank](/kuaishou-api/shopping_rank)、[kuaishou/brand_rank](/kuaishou-api/brand_rank)。

## 参考资料

1. 快手开放平台，《平台介绍》，2024-09-06 更新，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/newGuide/introduce.html
1. 快手开放平台，《开发者入驻》，2026-03-06 更新，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/newGuide/entry.html
1. 快手开放平台，《应用注册》，2026-03-06 更新，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/newGuide/login.html
1. 快手开放平台，《快手登录》，2024-07-23 更新，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/openAbility/kwaiLogin
1. 快手开放平台，《用户公开信息》，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/openAbility/userInformation/publicInformation.html
1. 快手开放平台，《查询视频》，2024-12-23 更新，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/openAbility/contentManagement/searchForVideos.html
1. 快手开放平台，《网站应用》，2024-11-14 更新，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/develop/web-app
1. 快手开放平台，《服务端 SDK》，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/develop/serverSDK
1. 快手开放平台，《Android 接入》，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/develop/mobile-app/android.html
1. 快手开放平台，《常见问题》，2024-08-26 更新，读取于 2026-11-14，https://open.kuaishou.com/platformDocs/other/commonProblem
1. 快手开放平台，《快手小程序平台服务协议》，2025-09-22 更新，读取于 2026-11-14，https://open.kuaishou.com/docs/operate/platformAgreement/agreement.html
1. 快手开放平台，《快手小游戏资质规范》，读取于 2026-11-14，https://open.kuaishou.com/miniGameDocs/operation/specification/qualifications.html
1. 快手开放平台，《快手小游戏入驻指南》，读取于 2026-11-14，https://open.kuaishou.com/miniGameDocs/gameIntroduction/entryGuide.html
1. 快手电商开放平台，开发文档入口，读取于 2026-11-14，https://open.kwaixiaodian.com/zone/new/docs/dev?pageSign=e1d9e229332f4f233a04b44833a5dfe71614263940720
1. 快手电商开放平台首页，读取于 2026-11-14，https://open.kwaixiaodian.com/
1. 磁力引擎开发者中心，文档首页，读取于 2026-11-14，https://developers.e.kuaishou.com/docs
1. 磁力引擎开发者中心，更新日志，读取于 2026-11-14，https://developers.e.kuaishou.com/tools/logs
1. 快手指数，《用户协议》，2023-06-01 生效，读取于 2026-11-14，https://index.e.kuaishou.com/m/userAgreement
1. 快手，robots.txt，读取于 2026-11-14，https://www.kuaishou.com/robots.txt
1. 快手，《用户服务协议与隐私政策》，读取于 2026-11-14，https://www.kuaishou.com/about/policy
1. 快手投资者关系，《快手科技公布 2026 年第二季度及中期业绩》，2026-08-19，https://ir.kuaishou.com/news-releases/news-release-details/kuaishou-technology-announces-second-quarter-and-interim-2026
1. 美通社，《快手科技将于 2026 年 11 月 19 日公布第三季度业绩》，2026-11-06，https://www.prnewswire.com/news-releases/kuaishou-technology-to-report-2026-third-quarter-financial-results-on-november-19-2026-302931918.html
1. 美通社，《快手科技公布 2026 年第二季度未经审核财务业绩》，2026-08-19，https://www.prnewswire.com/news-releases/kuaishou-technology-announces-second-quarter-and-interim-2026-unaudited-financial-results-302855081.html
1. 搜狐转载半岛都市报，2026 快手三农大会报道，2026-10-25，https://www.sohu.com/a/1093340526_355158
1. 央视网，《全国冬小麦播种过八成》，2026-11-11，https://news.cctv.com/2026/11/11/ARTIRbFL7fRE9sXRzp8flmOu261111.shtml
1. GitHub，MediaCrawler README，读取于 2026-11-14，https://github.com/NanmiCoder/MediaCrawler
1. GitHub，MediaCrawler LICENSE，读取于 2026-11-14，https://github.com/NanmiCoder/MediaCrawler/blob/main/LICENSE
1. GitHub，MediaCrawler issue #808「快手平台爬取不到评论」，2026-01-10，https://github.com/NanmiCoder/MediaCrawler/issues/808
1. GitHub，MediaCrawler issue #843「快手评论区爬取不完全」，2026-03-09，https://github.com/NanmiCoder/MediaCrawler/issues/843
1. GitHub，MediaCrawler 合并请求 #917「修复快手翻页逻辑」，2026-06-15，https://github.com/NanmiCoder/MediaCrawler/pull/917
1. GitHub，MediaCrawler issue #954「快手平台无法下载视频」，2026-08-06，https://github.com/NanmiCoder/MediaCrawler/issues/954
1. GitHub，KS-Downloader README，读取于 2026-11-14，https://github.com/JoeanAmier/KS-Downloader
1. GitHub，KS-Downloader issue #84「视频作品详情必失败」，2026-11-02，https://github.com/JoeanAmier/KS-Downloader/issues/84
1. GitHub，KuaiShou-Spider，读取于 2026-11-14，https://github.com/cv-cat/KuaiShou-Spider
1. GitHub，lxSpider，读取于 2026-11-14，https://github.com/lixi5338619/lxSpider
1. GitHub，kuaishou-crawler，读取于 2026-11-14，https://github.com/oGsLP/kuaishou-crawler
1. GitHub，中国爬虫违法违规案例汇总，读取于 2026-11-14，https://github.com/HiddenStrawberry/Crawler_Illegal_Cases_In_China
1. GitHub Docs，《Licensing a repository》，读取于 2026-11-14，https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository
1. 国家知识产权局，《中华人民共和国反不正当竞争法》（2025 年修订），https://www.cnipa.gov.cn/art/2026/5/20/art_104_206437.html
1. 国家互联网信息办公室，《中华人民共和国个人信息保护法》，https://www.cac.gov.cn/2021-08/20/c_1631050028355286.htm
1. 生态环境部转载，《网络数据安全管理条例》，2025-01-01 施行，https://www.mee.gov.cn/zcwj/gwywj/202410/t20241003_1087417.shtml
1. Gao 等，《KuaiRec: A Fully-observed Dataset and Insights for Evaluating Recommender Systems》，arXiv:2202.10842，https://arxiv.org/abs/2202.10842
1. Gao 等，《KuaiRand: An Unbiased Sequential Recommendation Dataset with Randomly Exposed Videos》，arXiv:2208.08696，https://arxiv.org/abs/2208.08696
1. 可灵 AI，API 文档概览，读取于 2026-11-14，https://kling.ai/document-api/guides/get-started/overview
1. 可灵 AI，开发者入口，读取于 2026-11-14，https://kling.ai/dev
1. EveryInfra，快手能力目录（单价、参数、可用状态），读取于 2026-11-14 00:14 新加坡时间，https://api.everyinfra.com/api/v1/social/catalog?platform=kuaishou
1. Python 文档，hashlib，https://docs.python.org/3/library/hashlib.html
1. Python 文档，csv，https://docs.python.org/3/library/csv.html
1. Requests 文档，Session 对象，https://requests.readthedocs.io/en/latest/user/advanced/#session-objects
