导入
活跃流
学习如何获取 Twitch 上所有正在进行的直播流列表。
大多数用户访问 Twitch 的目的是观看直播流。事实上,当我们打开 Twitch 首页时,看到的正是多个正在直播的流。只需点击一下,即可开始观看。
Twitch API 也可以用来获取类似的直播流列表。我们可以通过向 Twitch API 的 streams 端点发送 GET 请求,来获取当前所有正在直播的流列表。

...
streams 端点概览
代码示例
1https://api.twitch.tv/helix/streams
| 参数 | 类型 | 分类 | 描述 |
|---|---|---|---|
| after | 字符串 | 可选 | 用于向前分页的游标值。每次从 streams 端点返回多页结果时,都会附带一个游标值。我们可以将该值放入 after 参数中,以获取游标所指页面之后的结果页。 |
| before | 字符串 | 可选 | 用于向后分页的游标值。同上,每次返回多页数据时都会提供一个游标值。将该值放入 before 参数中,可获取游标所指页面之前的结果页。 |
| first | 整数 | 可选 | 每页返回的流数量,每页最多 100 条,默认值为 20。 |
| game_id | 字符串 | 可选 | 根据指定的游戏 ID 过滤返回的流。最多支持 100 个游戏 ID。 |
| language | 字符串 | 可选 | 用于过滤流语言的 ISO-639-1 语言代码。最多支持 100 个语言代码。 |
| user_id | 字符串 | 可选 | 根据指定的用户 ID 过滤返回的流。最多支持 100 个用户 ID。 |
| user_login | 字符串 | 可选 | 与 user_id 类似,根据用户登录名过滤流。最多支持 100 个登录名。 |
1import fetch from "node-fetch"; 2 3const endpointUrl = new URL("https://api.twitch.tv/helix/streams"); 4 5const headerParameters = { 6 Authorization: "Bearer {{APP_ACCESS_TOKEN}}", 7 "Client-Id": "{{CLIENT_ID}}", 8}; 9 10const options = { 11 method: "GET", 12 headers: headerParameters, 13}; 14 15async function fetchActiveStreams() { 16 try { 17 const response = await fetch(endpointUrl, options); 18 printResponse(response); 19 } catch (error) { 20 printError(error); 21 } 22} 23 24fetchActiveStreams();
| 属性 | 类型 | 描述 |
|---|---|---|
| id | 字符串 | 流的唯一标识 ID。 |
| user_id | 字符串 | 直播用户的 ID。 |
| user_login | 字符串 | 直播用户的登录名。 |
| user_name | 字符串 | 直播用户的显示名称。 |
| game_id | 字符串 | 流中正在播放的游戏 ID。 |
| game_name | 字符串 | 流中正在播放的游戏名称。 |
| type | 字符串 | 流的类型。由于我们获取的是正在进行的直播,其值为 live;若出现错误,则值为空字符串。 |
| title | 字符串 | 流的标题。 |
| viewer_count | 整数 | 当前正在观看该流的观众数量。 |
| started_at | 字符串 | 流开始的 UTC 时间戳。 |
| language | 字符串 | 流的语言代码,采用 ISO-639-1 标准。 |
| thumbnail_url | 字符串 | 流的缩略图 URL。可通过替换 {width} 和 {height} 占位符为所需的宽度和高度值,来获取不同尺寸的缩略图。 |
| tag_ids | 字符串数组 | 应用于该流的所有标签 ID 列表。 |
| is_mature | 布尔值 | 表示该流是否面向成人观众。 |