@opentabs-dev/opentabs-plugin-twitch 0.0.80 → 0.0.81
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/dist/adapter.iife.js +0 -15105
- package/dist/adapter.iife.js.map +0 -7
- package/dist/tools.json +0 -1492
package/dist/tools.json
DELETED
|
@@ -1,1492 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"sdkVersion": "0.0.80",
|
|
3
|
-
"iconSvg": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z\" fill=\"#9146FF\"/></svg>",
|
|
4
|
-
"iconInactiveSvg": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z\" fill=\"#999999\"/></svg>",
|
|
5
|
-
"iconDarkSvg": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z\" fill=\"#9146FF\"/></svg>",
|
|
6
|
-
"iconDarkInactiveSvg": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z\" fill=\"#999999\"/></svg>",
|
|
7
|
-
"tools": [
|
|
8
|
-
{
|
|
9
|
-
"name": "get_current_user",
|
|
10
|
-
"displayName": "Get Current User",
|
|
11
|
-
"description": "Get the authenticated Twitch user profile including email, display name, follower count, partner/affiliate status, and account creation date.",
|
|
12
|
-
"summary": "Get the authenticated Twitch user profile",
|
|
13
|
-
"icon": "user",
|
|
14
|
-
"group": "Users",
|
|
15
|
-
"input_schema": {
|
|
16
|
-
"type": "object",
|
|
17
|
-
"properties": {},
|
|
18
|
-
"additionalProperties": false
|
|
19
|
-
},
|
|
20
|
-
"output_schema": {
|
|
21
|
-
"type": "object",
|
|
22
|
-
"properties": {
|
|
23
|
-
"user": {
|
|
24
|
-
"type": "object",
|
|
25
|
-
"properties": {
|
|
26
|
-
"id": {
|
|
27
|
-
"type": "string",
|
|
28
|
-
"description": "Twitch user ID"
|
|
29
|
-
},
|
|
30
|
-
"login": {
|
|
31
|
-
"type": "string",
|
|
32
|
-
"description": "Twitch login name (lowercase, URL-safe)"
|
|
33
|
-
},
|
|
34
|
-
"displayName": {
|
|
35
|
-
"type": "string",
|
|
36
|
-
"description": "User display name"
|
|
37
|
-
},
|
|
38
|
-
"profileImageURL": {
|
|
39
|
-
"type": "string",
|
|
40
|
-
"description": "URL of the user's profile image"
|
|
41
|
-
},
|
|
42
|
-
"description": {
|
|
43
|
-
"type": "string",
|
|
44
|
-
"description": "User bio / channel description"
|
|
45
|
-
},
|
|
46
|
-
"createdAt": {
|
|
47
|
-
"type": "string",
|
|
48
|
-
"description": "ISO 8601 timestamp of account creation"
|
|
49
|
-
},
|
|
50
|
-
"hasPrime": {
|
|
51
|
-
"type": "boolean",
|
|
52
|
-
"description": "Whether the user has Twitch Prime"
|
|
53
|
-
},
|
|
54
|
-
"roles": {
|
|
55
|
-
"type": "object",
|
|
56
|
-
"properties": {
|
|
57
|
-
"isPartner": {
|
|
58
|
-
"type": "boolean",
|
|
59
|
-
"description": "Whether the user is a Twitch Partner"
|
|
60
|
-
},
|
|
61
|
-
"isAffiliate": {
|
|
62
|
-
"type": "boolean",
|
|
63
|
-
"description": "Whether the user is a Twitch Affiliate"
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
"required": [
|
|
67
|
-
"isPartner",
|
|
68
|
-
"isAffiliate"
|
|
69
|
-
],
|
|
70
|
-
"additionalProperties": false,
|
|
71
|
-
"description": "Partner and Affiliate status"
|
|
72
|
-
},
|
|
73
|
-
"followerCount": {
|
|
74
|
-
"type": "number",
|
|
75
|
-
"description": "Total number of followers"
|
|
76
|
-
}
|
|
77
|
-
},
|
|
78
|
-
"required": [
|
|
79
|
-
"id",
|
|
80
|
-
"login",
|
|
81
|
-
"displayName",
|
|
82
|
-
"profileImageURL",
|
|
83
|
-
"description",
|
|
84
|
-
"createdAt",
|
|
85
|
-
"hasPrime",
|
|
86
|
-
"roles",
|
|
87
|
-
"followerCount"
|
|
88
|
-
],
|
|
89
|
-
"additionalProperties": false
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
"required": [
|
|
93
|
-
"user"
|
|
94
|
-
],
|
|
95
|
-
"additionalProperties": false
|
|
96
|
-
}
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
"name": "get_user_profile",
|
|
100
|
-
"displayName": "Get User Profile",
|
|
101
|
-
"description": "Get a Twitch user profile by their login name. Returns display name, bio, follower count, partner/affiliate status, profile image, and account creation date.",
|
|
102
|
-
"summary": "Get a Twitch user profile by login name",
|
|
103
|
-
"icon": "user",
|
|
104
|
-
"group": "Users",
|
|
105
|
-
"input_schema": {
|
|
106
|
-
"type": "object",
|
|
107
|
-
"properties": {
|
|
108
|
-
"login": {
|
|
109
|
-
"type": "string",
|
|
110
|
-
"description": "Twitch login name (e.g., \"shroud\", \"ninja\")"
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
"required": [
|
|
114
|
-
"login"
|
|
115
|
-
],
|
|
116
|
-
"additionalProperties": false
|
|
117
|
-
},
|
|
118
|
-
"output_schema": {
|
|
119
|
-
"type": "object",
|
|
120
|
-
"properties": {
|
|
121
|
-
"user": {
|
|
122
|
-
"type": "object",
|
|
123
|
-
"properties": {
|
|
124
|
-
"id": {
|
|
125
|
-
"type": "string",
|
|
126
|
-
"description": "Twitch user ID"
|
|
127
|
-
},
|
|
128
|
-
"login": {
|
|
129
|
-
"type": "string",
|
|
130
|
-
"description": "Twitch login name (lowercase, URL-safe)"
|
|
131
|
-
},
|
|
132
|
-
"displayName": {
|
|
133
|
-
"type": "string",
|
|
134
|
-
"description": "User display name"
|
|
135
|
-
},
|
|
136
|
-
"profileImageURL": {
|
|
137
|
-
"type": "string",
|
|
138
|
-
"description": "URL of the user's profile image"
|
|
139
|
-
},
|
|
140
|
-
"description": {
|
|
141
|
-
"type": "string",
|
|
142
|
-
"description": "User bio / channel description"
|
|
143
|
-
},
|
|
144
|
-
"createdAt": {
|
|
145
|
-
"type": "string",
|
|
146
|
-
"description": "ISO 8601 timestamp of account creation"
|
|
147
|
-
},
|
|
148
|
-
"hasPrime": {
|
|
149
|
-
"type": "boolean",
|
|
150
|
-
"description": "Whether the user has Twitch Prime"
|
|
151
|
-
},
|
|
152
|
-
"roles": {
|
|
153
|
-
"type": "object",
|
|
154
|
-
"properties": {
|
|
155
|
-
"isPartner": {
|
|
156
|
-
"type": "boolean",
|
|
157
|
-
"description": "Whether the user is a Twitch Partner"
|
|
158
|
-
},
|
|
159
|
-
"isAffiliate": {
|
|
160
|
-
"type": "boolean",
|
|
161
|
-
"description": "Whether the user is a Twitch Affiliate"
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
"required": [
|
|
165
|
-
"isPartner",
|
|
166
|
-
"isAffiliate"
|
|
167
|
-
],
|
|
168
|
-
"additionalProperties": false,
|
|
169
|
-
"description": "Partner and Affiliate status"
|
|
170
|
-
},
|
|
171
|
-
"followerCount": {
|
|
172
|
-
"type": "number",
|
|
173
|
-
"description": "Total number of followers"
|
|
174
|
-
}
|
|
175
|
-
},
|
|
176
|
-
"required": [
|
|
177
|
-
"id",
|
|
178
|
-
"login",
|
|
179
|
-
"displayName",
|
|
180
|
-
"profileImageURL",
|
|
181
|
-
"description",
|
|
182
|
-
"createdAt",
|
|
183
|
-
"hasPrime",
|
|
184
|
-
"roles",
|
|
185
|
-
"followerCount"
|
|
186
|
-
],
|
|
187
|
-
"additionalProperties": false
|
|
188
|
-
}
|
|
189
|
-
},
|
|
190
|
-
"required": [
|
|
191
|
-
"user"
|
|
192
|
-
],
|
|
193
|
-
"additionalProperties": false
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
"name": "get_top_streams",
|
|
198
|
-
"displayName": "Get Top Streams",
|
|
199
|
-
"description": "Get the top live streams on Twitch sorted by viewer count. Returns stream title, viewer count, broadcaster info, and the game being played.",
|
|
200
|
-
"summary": "Get top live streams by viewer count",
|
|
201
|
-
"icon": "radio",
|
|
202
|
-
"group": "Streams",
|
|
203
|
-
"input_schema": {
|
|
204
|
-
"type": "object",
|
|
205
|
-
"properties": {
|
|
206
|
-
"first": {
|
|
207
|
-
"description": "Number of streams to return (default 10, max 25)",
|
|
208
|
-
"type": "integer",
|
|
209
|
-
"minimum": 1,
|
|
210
|
-
"maximum": 25
|
|
211
|
-
}
|
|
212
|
-
},
|
|
213
|
-
"additionalProperties": false
|
|
214
|
-
},
|
|
215
|
-
"output_schema": {
|
|
216
|
-
"type": "object",
|
|
217
|
-
"properties": {
|
|
218
|
-
"streams": {
|
|
219
|
-
"type": "array",
|
|
220
|
-
"items": {
|
|
221
|
-
"type": "object",
|
|
222
|
-
"properties": {
|
|
223
|
-
"id": {
|
|
224
|
-
"type": "string",
|
|
225
|
-
"description": "Stream ID"
|
|
226
|
-
},
|
|
227
|
-
"title": {
|
|
228
|
-
"type": "string",
|
|
229
|
-
"description": "Stream title"
|
|
230
|
-
},
|
|
231
|
-
"viewersCount": {
|
|
232
|
-
"type": "number",
|
|
233
|
-
"description": "Current number of viewers"
|
|
234
|
-
},
|
|
235
|
-
"type": {
|
|
236
|
-
"type": "string",
|
|
237
|
-
"description": "Stream type (e.g. \"live\")"
|
|
238
|
-
},
|
|
239
|
-
"createdAt": {
|
|
240
|
-
"type": "string",
|
|
241
|
-
"description": "ISO 8601 timestamp when the stream started"
|
|
242
|
-
},
|
|
243
|
-
"broadcaster": {
|
|
244
|
-
"type": "object",
|
|
245
|
-
"properties": {
|
|
246
|
-
"id": {
|
|
247
|
-
"type": "string",
|
|
248
|
-
"description": "Twitch user ID"
|
|
249
|
-
},
|
|
250
|
-
"login": {
|
|
251
|
-
"type": "string",
|
|
252
|
-
"description": "Twitch login name (lowercase, URL-safe)"
|
|
253
|
-
},
|
|
254
|
-
"displayName": {
|
|
255
|
-
"type": "string",
|
|
256
|
-
"description": "User display name"
|
|
257
|
-
},
|
|
258
|
-
"profileImageURL": {
|
|
259
|
-
"type": "string",
|
|
260
|
-
"description": "URL of the user's profile image"
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
|
-
"required": [
|
|
264
|
-
"id",
|
|
265
|
-
"login",
|
|
266
|
-
"displayName",
|
|
267
|
-
"profileImageURL"
|
|
268
|
-
],
|
|
269
|
-
"additionalProperties": false,
|
|
270
|
-
"description": "Broadcaster info"
|
|
271
|
-
},
|
|
272
|
-
"game": {
|
|
273
|
-
"type": "object",
|
|
274
|
-
"properties": {
|
|
275
|
-
"id": {
|
|
276
|
-
"type": "string",
|
|
277
|
-
"description": "Game/category ID"
|
|
278
|
-
},
|
|
279
|
-
"name": {
|
|
280
|
-
"type": "string",
|
|
281
|
-
"description": "Game/category name"
|
|
282
|
-
}
|
|
283
|
-
},
|
|
284
|
-
"required": [
|
|
285
|
-
"id",
|
|
286
|
-
"name"
|
|
287
|
-
],
|
|
288
|
-
"additionalProperties": false,
|
|
289
|
-
"description": "Game/category being streamed"
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
|
-
"required": [
|
|
293
|
-
"id",
|
|
294
|
-
"title",
|
|
295
|
-
"viewersCount",
|
|
296
|
-
"type",
|
|
297
|
-
"createdAt",
|
|
298
|
-
"broadcaster",
|
|
299
|
-
"game"
|
|
300
|
-
],
|
|
301
|
-
"additionalProperties": false
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
},
|
|
305
|
-
"required": [
|
|
306
|
-
"streams"
|
|
307
|
-
],
|
|
308
|
-
"additionalProperties": false
|
|
309
|
-
}
|
|
310
|
-
},
|
|
311
|
-
{
|
|
312
|
-
"name": "get_streams_by_game",
|
|
313
|
-
"displayName": "Get Streams by Game",
|
|
314
|
-
"description": "Get live streams for a specific game/category. Provide either the game name (e.g., \"Just Chatting\") or game ID. Returns streams sorted by viewer count.",
|
|
315
|
-
"summary": "Get live streams for a game or category",
|
|
316
|
-
"icon": "radio",
|
|
317
|
-
"group": "Streams",
|
|
318
|
-
"input_schema": {
|
|
319
|
-
"type": "object",
|
|
320
|
-
"properties": {
|
|
321
|
-
"name": {
|
|
322
|
-
"description": "Game name (e.g., \"Just Chatting\", \"Fortnite\")",
|
|
323
|
-
"type": "string"
|
|
324
|
-
},
|
|
325
|
-
"id": {
|
|
326
|
-
"description": "Game ID (alternative to name)",
|
|
327
|
-
"type": "string"
|
|
328
|
-
},
|
|
329
|
-
"first": {
|
|
330
|
-
"description": "Number of streams to return (default 10, max 25)",
|
|
331
|
-
"type": "integer",
|
|
332
|
-
"minimum": 1,
|
|
333
|
-
"maximum": 25
|
|
334
|
-
}
|
|
335
|
-
},
|
|
336
|
-
"additionalProperties": false
|
|
337
|
-
},
|
|
338
|
-
"output_schema": {
|
|
339
|
-
"type": "object",
|
|
340
|
-
"properties": {
|
|
341
|
-
"streams": {
|
|
342
|
-
"type": "array",
|
|
343
|
-
"items": {
|
|
344
|
-
"type": "object",
|
|
345
|
-
"properties": {
|
|
346
|
-
"id": {
|
|
347
|
-
"type": "string",
|
|
348
|
-
"description": "Stream ID"
|
|
349
|
-
},
|
|
350
|
-
"title": {
|
|
351
|
-
"type": "string",
|
|
352
|
-
"description": "Stream title"
|
|
353
|
-
},
|
|
354
|
-
"viewersCount": {
|
|
355
|
-
"type": "number",
|
|
356
|
-
"description": "Current number of viewers"
|
|
357
|
-
},
|
|
358
|
-
"type": {
|
|
359
|
-
"type": "string",
|
|
360
|
-
"description": "Stream type (e.g. \"live\")"
|
|
361
|
-
},
|
|
362
|
-
"createdAt": {
|
|
363
|
-
"type": "string",
|
|
364
|
-
"description": "ISO 8601 timestamp when the stream started"
|
|
365
|
-
},
|
|
366
|
-
"broadcaster": {
|
|
367
|
-
"type": "object",
|
|
368
|
-
"properties": {
|
|
369
|
-
"id": {
|
|
370
|
-
"type": "string",
|
|
371
|
-
"description": "Twitch user ID"
|
|
372
|
-
},
|
|
373
|
-
"login": {
|
|
374
|
-
"type": "string",
|
|
375
|
-
"description": "Twitch login name (lowercase, URL-safe)"
|
|
376
|
-
},
|
|
377
|
-
"displayName": {
|
|
378
|
-
"type": "string",
|
|
379
|
-
"description": "User display name"
|
|
380
|
-
},
|
|
381
|
-
"profileImageURL": {
|
|
382
|
-
"type": "string",
|
|
383
|
-
"description": "URL of the user's profile image"
|
|
384
|
-
}
|
|
385
|
-
},
|
|
386
|
-
"required": [
|
|
387
|
-
"id",
|
|
388
|
-
"login",
|
|
389
|
-
"displayName",
|
|
390
|
-
"profileImageURL"
|
|
391
|
-
],
|
|
392
|
-
"additionalProperties": false,
|
|
393
|
-
"description": "Broadcaster info"
|
|
394
|
-
},
|
|
395
|
-
"game": {
|
|
396
|
-
"type": "object",
|
|
397
|
-
"properties": {
|
|
398
|
-
"id": {
|
|
399
|
-
"type": "string",
|
|
400
|
-
"description": "Game/category ID"
|
|
401
|
-
},
|
|
402
|
-
"name": {
|
|
403
|
-
"type": "string",
|
|
404
|
-
"description": "Game/category name"
|
|
405
|
-
}
|
|
406
|
-
},
|
|
407
|
-
"required": [
|
|
408
|
-
"id",
|
|
409
|
-
"name"
|
|
410
|
-
],
|
|
411
|
-
"additionalProperties": false,
|
|
412
|
-
"description": "Game/category being streamed"
|
|
413
|
-
}
|
|
414
|
-
},
|
|
415
|
-
"required": [
|
|
416
|
-
"id",
|
|
417
|
-
"title",
|
|
418
|
-
"viewersCount",
|
|
419
|
-
"type",
|
|
420
|
-
"createdAt",
|
|
421
|
-
"broadcaster",
|
|
422
|
-
"game"
|
|
423
|
-
],
|
|
424
|
-
"additionalProperties": false
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
},
|
|
428
|
-
"required": [
|
|
429
|
-
"streams"
|
|
430
|
-
],
|
|
431
|
-
"additionalProperties": false
|
|
432
|
-
}
|
|
433
|
-
},
|
|
434
|
-
{
|
|
435
|
-
"name": "get_stream",
|
|
436
|
-
"displayName": "Get Stream",
|
|
437
|
-
"description": "Get the current live stream for a channel by login name. Returns stream title, viewer count, game, and start time. Returns null stream if the channel is offline.",
|
|
438
|
-
"summary": "Get live stream info for a channel",
|
|
439
|
-
"icon": "radio",
|
|
440
|
-
"group": "Streams",
|
|
441
|
-
"input_schema": {
|
|
442
|
-
"type": "object",
|
|
443
|
-
"properties": {
|
|
444
|
-
"login": {
|
|
445
|
-
"type": "string",
|
|
446
|
-
"description": "Channel login name (e.g., \"shroud\")"
|
|
447
|
-
}
|
|
448
|
-
},
|
|
449
|
-
"required": [
|
|
450
|
-
"login"
|
|
451
|
-
],
|
|
452
|
-
"additionalProperties": false
|
|
453
|
-
},
|
|
454
|
-
"output_schema": {
|
|
455
|
-
"type": "object",
|
|
456
|
-
"properties": {
|
|
457
|
-
"stream": {
|
|
458
|
-
"anyOf": [
|
|
459
|
-
{
|
|
460
|
-
"type": "object",
|
|
461
|
-
"properties": {
|
|
462
|
-
"id": {
|
|
463
|
-
"type": "string",
|
|
464
|
-
"description": "Stream ID"
|
|
465
|
-
},
|
|
466
|
-
"title": {
|
|
467
|
-
"type": "string",
|
|
468
|
-
"description": "Stream title"
|
|
469
|
-
},
|
|
470
|
-
"viewersCount": {
|
|
471
|
-
"type": "number",
|
|
472
|
-
"description": "Current number of viewers"
|
|
473
|
-
},
|
|
474
|
-
"type": {
|
|
475
|
-
"type": "string",
|
|
476
|
-
"description": "Stream type (e.g. \"live\")"
|
|
477
|
-
},
|
|
478
|
-
"createdAt": {
|
|
479
|
-
"type": "string",
|
|
480
|
-
"description": "ISO 8601 timestamp when the stream started"
|
|
481
|
-
},
|
|
482
|
-
"broadcaster": {
|
|
483
|
-
"type": "object",
|
|
484
|
-
"properties": {
|
|
485
|
-
"id": {
|
|
486
|
-
"type": "string",
|
|
487
|
-
"description": "Twitch user ID"
|
|
488
|
-
},
|
|
489
|
-
"login": {
|
|
490
|
-
"type": "string",
|
|
491
|
-
"description": "Twitch login name (lowercase, URL-safe)"
|
|
492
|
-
},
|
|
493
|
-
"displayName": {
|
|
494
|
-
"type": "string",
|
|
495
|
-
"description": "User display name"
|
|
496
|
-
},
|
|
497
|
-
"profileImageURL": {
|
|
498
|
-
"type": "string",
|
|
499
|
-
"description": "URL of the user's profile image"
|
|
500
|
-
}
|
|
501
|
-
},
|
|
502
|
-
"required": [
|
|
503
|
-
"id",
|
|
504
|
-
"login",
|
|
505
|
-
"displayName",
|
|
506
|
-
"profileImageURL"
|
|
507
|
-
],
|
|
508
|
-
"additionalProperties": false,
|
|
509
|
-
"description": "Broadcaster info"
|
|
510
|
-
},
|
|
511
|
-
"game": {
|
|
512
|
-
"type": "object",
|
|
513
|
-
"properties": {
|
|
514
|
-
"id": {
|
|
515
|
-
"type": "string",
|
|
516
|
-
"description": "Game/category ID"
|
|
517
|
-
},
|
|
518
|
-
"name": {
|
|
519
|
-
"type": "string",
|
|
520
|
-
"description": "Game/category name"
|
|
521
|
-
}
|
|
522
|
-
},
|
|
523
|
-
"required": [
|
|
524
|
-
"id",
|
|
525
|
-
"name"
|
|
526
|
-
],
|
|
527
|
-
"additionalProperties": false,
|
|
528
|
-
"description": "Game/category being streamed"
|
|
529
|
-
}
|
|
530
|
-
},
|
|
531
|
-
"required": [
|
|
532
|
-
"id",
|
|
533
|
-
"title",
|
|
534
|
-
"viewersCount",
|
|
535
|
-
"type",
|
|
536
|
-
"createdAt",
|
|
537
|
-
"broadcaster",
|
|
538
|
-
"game"
|
|
539
|
-
],
|
|
540
|
-
"additionalProperties": false
|
|
541
|
-
},
|
|
542
|
-
{
|
|
543
|
-
"type": "null"
|
|
544
|
-
}
|
|
545
|
-
],
|
|
546
|
-
"description": "Current stream info, or null if offline"
|
|
547
|
-
},
|
|
548
|
-
"isLive": {
|
|
549
|
-
"type": "boolean",
|
|
550
|
-
"description": "Whether the channel is currently live"
|
|
551
|
-
}
|
|
552
|
-
},
|
|
553
|
-
"required": [
|
|
554
|
-
"stream",
|
|
555
|
-
"isLive"
|
|
556
|
-
],
|
|
557
|
-
"additionalProperties": false
|
|
558
|
-
}
|
|
559
|
-
},
|
|
560
|
-
{
|
|
561
|
-
"name": "get_top_games",
|
|
562
|
-
"displayName": "Get Top Games",
|
|
563
|
-
"description": "Get the top games/categories on Twitch sorted by viewer count. Returns game name, total viewers, number of broadcasters, and box art URL.",
|
|
564
|
-
"summary": "Get top games and categories by viewer count",
|
|
565
|
-
"icon": "gamepad-2",
|
|
566
|
-
"group": "Games",
|
|
567
|
-
"input_schema": {
|
|
568
|
-
"type": "object",
|
|
569
|
-
"properties": {
|
|
570
|
-
"first": {
|
|
571
|
-
"description": "Number of games to return (default 10, max 25)",
|
|
572
|
-
"type": "integer",
|
|
573
|
-
"minimum": 1,
|
|
574
|
-
"maximum": 25
|
|
575
|
-
}
|
|
576
|
-
},
|
|
577
|
-
"additionalProperties": false
|
|
578
|
-
},
|
|
579
|
-
"output_schema": {
|
|
580
|
-
"type": "object",
|
|
581
|
-
"properties": {
|
|
582
|
-
"games": {
|
|
583
|
-
"type": "array",
|
|
584
|
-
"items": {
|
|
585
|
-
"type": "object",
|
|
586
|
-
"properties": {
|
|
587
|
-
"id": {
|
|
588
|
-
"type": "string",
|
|
589
|
-
"description": "Game/category ID"
|
|
590
|
-
},
|
|
591
|
-
"name": {
|
|
592
|
-
"type": "string",
|
|
593
|
-
"description": "Game/category name"
|
|
594
|
-
},
|
|
595
|
-
"displayName": {
|
|
596
|
-
"type": "string",
|
|
597
|
-
"description": "Localized display name for the game"
|
|
598
|
-
},
|
|
599
|
-
"viewersCount": {
|
|
600
|
-
"type": "number",
|
|
601
|
-
"description": "Total viewers across all streams"
|
|
602
|
-
},
|
|
603
|
-
"broadcastersCount": {
|
|
604
|
-
"type": "number",
|
|
605
|
-
"description": "Number of channels currently streaming this game"
|
|
606
|
-
},
|
|
607
|
-
"boxArtURL": {
|
|
608
|
-
"type": "string",
|
|
609
|
-
"description": "URL of the game box art image"
|
|
610
|
-
}
|
|
611
|
-
},
|
|
612
|
-
"required": [
|
|
613
|
-
"id",
|
|
614
|
-
"name",
|
|
615
|
-
"displayName",
|
|
616
|
-
"viewersCount",
|
|
617
|
-
"broadcastersCount",
|
|
618
|
-
"boxArtURL"
|
|
619
|
-
],
|
|
620
|
-
"additionalProperties": false
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
},
|
|
624
|
-
"required": [
|
|
625
|
-
"games"
|
|
626
|
-
],
|
|
627
|
-
"additionalProperties": false
|
|
628
|
-
}
|
|
629
|
-
},
|
|
630
|
-
{
|
|
631
|
-
"name": "get_game",
|
|
632
|
-
"displayName": "Get Game",
|
|
633
|
-
"description": "Get details about a specific game/category on Twitch by name or ID. Returns viewer count, broadcaster count, and box art URL.",
|
|
634
|
-
"summary": "Get game/category details",
|
|
635
|
-
"icon": "gamepad-2",
|
|
636
|
-
"group": "Games",
|
|
637
|
-
"input_schema": {
|
|
638
|
-
"type": "object",
|
|
639
|
-
"properties": {
|
|
640
|
-
"name": {
|
|
641
|
-
"description": "Game name (e.g., \"Just Chatting\", \"Fortnite\")",
|
|
642
|
-
"type": "string"
|
|
643
|
-
},
|
|
644
|
-
"id": {
|
|
645
|
-
"description": "Game ID (alternative to name)",
|
|
646
|
-
"type": "string"
|
|
647
|
-
}
|
|
648
|
-
},
|
|
649
|
-
"additionalProperties": false
|
|
650
|
-
},
|
|
651
|
-
"output_schema": {
|
|
652
|
-
"type": "object",
|
|
653
|
-
"properties": {
|
|
654
|
-
"game": {
|
|
655
|
-
"type": "object",
|
|
656
|
-
"properties": {
|
|
657
|
-
"id": {
|
|
658
|
-
"type": "string",
|
|
659
|
-
"description": "Game/category ID"
|
|
660
|
-
},
|
|
661
|
-
"name": {
|
|
662
|
-
"type": "string",
|
|
663
|
-
"description": "Game/category name"
|
|
664
|
-
},
|
|
665
|
-
"displayName": {
|
|
666
|
-
"type": "string",
|
|
667
|
-
"description": "Localized display name for the game"
|
|
668
|
-
},
|
|
669
|
-
"viewersCount": {
|
|
670
|
-
"type": "number",
|
|
671
|
-
"description": "Total viewers across all streams"
|
|
672
|
-
},
|
|
673
|
-
"broadcastersCount": {
|
|
674
|
-
"type": "number",
|
|
675
|
-
"description": "Number of channels currently streaming this game"
|
|
676
|
-
},
|
|
677
|
-
"boxArtURL": {
|
|
678
|
-
"type": "string",
|
|
679
|
-
"description": "URL of the game box art image"
|
|
680
|
-
}
|
|
681
|
-
},
|
|
682
|
-
"required": [
|
|
683
|
-
"id",
|
|
684
|
-
"name",
|
|
685
|
-
"displayName",
|
|
686
|
-
"viewersCount",
|
|
687
|
-
"broadcastersCount",
|
|
688
|
-
"boxArtURL"
|
|
689
|
-
],
|
|
690
|
-
"additionalProperties": false
|
|
691
|
-
}
|
|
692
|
-
},
|
|
693
|
-
"required": [
|
|
694
|
-
"game"
|
|
695
|
-
],
|
|
696
|
-
"additionalProperties": false
|
|
697
|
-
}
|
|
698
|
-
},
|
|
699
|
-
{
|
|
700
|
-
"name": "search_channels",
|
|
701
|
-
"displayName": "Search Channels",
|
|
702
|
-
"description": "Search for Twitch channels by keyword. Returns matching channels with their live status, follower count, and current stream info if live.",
|
|
703
|
-
"summary": "Search for Twitch channels",
|
|
704
|
-
"icon": "search",
|
|
705
|
-
"group": "Search",
|
|
706
|
-
"input_schema": {
|
|
707
|
-
"type": "object",
|
|
708
|
-
"properties": {
|
|
709
|
-
"query": {
|
|
710
|
-
"type": "string",
|
|
711
|
-
"description": "Search query text"
|
|
712
|
-
}
|
|
713
|
-
},
|
|
714
|
-
"required": [
|
|
715
|
-
"query"
|
|
716
|
-
],
|
|
717
|
-
"additionalProperties": false
|
|
718
|
-
},
|
|
719
|
-
"output_schema": {
|
|
720
|
-
"type": "object",
|
|
721
|
-
"properties": {
|
|
722
|
-
"channels": {
|
|
723
|
-
"type": "array",
|
|
724
|
-
"items": {
|
|
725
|
-
"type": "object",
|
|
726
|
-
"properties": {
|
|
727
|
-
"id": {
|
|
728
|
-
"type": "string",
|
|
729
|
-
"description": "Channel user ID"
|
|
730
|
-
},
|
|
731
|
-
"login": {
|
|
732
|
-
"type": "string",
|
|
733
|
-
"description": "Channel login name"
|
|
734
|
-
},
|
|
735
|
-
"displayName": {
|
|
736
|
-
"type": "string",
|
|
737
|
-
"description": "Channel display name"
|
|
738
|
-
},
|
|
739
|
-
"profileImageURL": {
|
|
740
|
-
"type": "string",
|
|
741
|
-
"description": "Profile image URL"
|
|
742
|
-
},
|
|
743
|
-
"followerCount": {
|
|
744
|
-
"type": "number",
|
|
745
|
-
"description": "Total number of followers"
|
|
746
|
-
},
|
|
747
|
-
"isLive": {
|
|
748
|
-
"type": "boolean",
|
|
749
|
-
"description": "Whether the channel is currently live"
|
|
750
|
-
},
|
|
751
|
-
"stream": {
|
|
752
|
-
"anyOf": [
|
|
753
|
-
{
|
|
754
|
-
"type": "object",
|
|
755
|
-
"properties": {
|
|
756
|
-
"id": {
|
|
757
|
-
"type": "string",
|
|
758
|
-
"description": "Stream ID"
|
|
759
|
-
},
|
|
760
|
-
"title": {
|
|
761
|
-
"type": "string",
|
|
762
|
-
"description": "Stream title"
|
|
763
|
-
},
|
|
764
|
-
"viewersCount": {
|
|
765
|
-
"type": "number",
|
|
766
|
-
"description": "Current number of viewers"
|
|
767
|
-
},
|
|
768
|
-
"type": {
|
|
769
|
-
"type": "string",
|
|
770
|
-
"description": "Stream type (e.g. \"live\")"
|
|
771
|
-
},
|
|
772
|
-
"createdAt": {
|
|
773
|
-
"type": "string",
|
|
774
|
-
"description": "ISO 8601 timestamp when the stream started"
|
|
775
|
-
},
|
|
776
|
-
"broadcaster": {
|
|
777
|
-
"type": "object",
|
|
778
|
-
"properties": {
|
|
779
|
-
"id": {
|
|
780
|
-
"type": "string",
|
|
781
|
-
"description": "Twitch user ID"
|
|
782
|
-
},
|
|
783
|
-
"login": {
|
|
784
|
-
"type": "string",
|
|
785
|
-
"description": "Twitch login name (lowercase, URL-safe)"
|
|
786
|
-
},
|
|
787
|
-
"displayName": {
|
|
788
|
-
"type": "string",
|
|
789
|
-
"description": "User display name"
|
|
790
|
-
},
|
|
791
|
-
"profileImageURL": {
|
|
792
|
-
"type": "string",
|
|
793
|
-
"description": "URL of the user's profile image"
|
|
794
|
-
}
|
|
795
|
-
},
|
|
796
|
-
"required": [
|
|
797
|
-
"id",
|
|
798
|
-
"login",
|
|
799
|
-
"displayName",
|
|
800
|
-
"profileImageURL"
|
|
801
|
-
],
|
|
802
|
-
"additionalProperties": false,
|
|
803
|
-
"description": "Broadcaster info"
|
|
804
|
-
},
|
|
805
|
-
"game": {
|
|
806
|
-
"type": "object",
|
|
807
|
-
"properties": {
|
|
808
|
-
"id": {
|
|
809
|
-
"type": "string",
|
|
810
|
-
"description": "Game/category ID"
|
|
811
|
-
},
|
|
812
|
-
"name": {
|
|
813
|
-
"type": "string",
|
|
814
|
-
"description": "Game/category name"
|
|
815
|
-
}
|
|
816
|
-
},
|
|
817
|
-
"required": [
|
|
818
|
-
"id",
|
|
819
|
-
"name"
|
|
820
|
-
],
|
|
821
|
-
"additionalProperties": false,
|
|
822
|
-
"description": "Game/category being streamed"
|
|
823
|
-
}
|
|
824
|
-
},
|
|
825
|
-
"required": [
|
|
826
|
-
"id",
|
|
827
|
-
"title",
|
|
828
|
-
"viewersCount",
|
|
829
|
-
"type",
|
|
830
|
-
"createdAt",
|
|
831
|
-
"broadcaster",
|
|
832
|
-
"game"
|
|
833
|
-
],
|
|
834
|
-
"additionalProperties": false
|
|
835
|
-
},
|
|
836
|
-
{
|
|
837
|
-
"type": "null"
|
|
838
|
-
}
|
|
839
|
-
],
|
|
840
|
-
"description": "Current stream info if live, null otherwise"
|
|
841
|
-
}
|
|
842
|
-
},
|
|
843
|
-
"required": [
|
|
844
|
-
"id",
|
|
845
|
-
"login",
|
|
846
|
-
"displayName",
|
|
847
|
-
"profileImageURL",
|
|
848
|
-
"followerCount",
|
|
849
|
-
"isLive",
|
|
850
|
-
"stream"
|
|
851
|
-
],
|
|
852
|
-
"additionalProperties": false
|
|
853
|
-
}
|
|
854
|
-
}
|
|
855
|
-
},
|
|
856
|
-
"required": [
|
|
857
|
-
"channels"
|
|
858
|
-
],
|
|
859
|
-
"additionalProperties": false
|
|
860
|
-
}
|
|
861
|
-
},
|
|
862
|
-
{
|
|
863
|
-
"name": "search_categories",
|
|
864
|
-
"displayName": "Search Categories",
|
|
865
|
-
"description": "Search for games and categories on Twitch by keyword. Returns matching games with viewer counts and box art.",
|
|
866
|
-
"summary": "Search for games and categories",
|
|
867
|
-
"icon": "search",
|
|
868
|
-
"group": "Search",
|
|
869
|
-
"input_schema": {
|
|
870
|
-
"type": "object",
|
|
871
|
-
"properties": {
|
|
872
|
-
"query": {
|
|
873
|
-
"type": "string",
|
|
874
|
-
"description": "Search query text"
|
|
875
|
-
}
|
|
876
|
-
},
|
|
877
|
-
"required": [
|
|
878
|
-
"query"
|
|
879
|
-
],
|
|
880
|
-
"additionalProperties": false
|
|
881
|
-
},
|
|
882
|
-
"output_schema": {
|
|
883
|
-
"type": "object",
|
|
884
|
-
"properties": {
|
|
885
|
-
"categories": {
|
|
886
|
-
"type": "array",
|
|
887
|
-
"items": {
|
|
888
|
-
"type": "object",
|
|
889
|
-
"properties": {
|
|
890
|
-
"id": {
|
|
891
|
-
"type": "string",
|
|
892
|
-
"description": "Game/category ID"
|
|
893
|
-
},
|
|
894
|
-
"name": {
|
|
895
|
-
"type": "string",
|
|
896
|
-
"description": "Game/category name"
|
|
897
|
-
},
|
|
898
|
-
"displayName": {
|
|
899
|
-
"type": "string",
|
|
900
|
-
"description": "Localized display name for the game"
|
|
901
|
-
},
|
|
902
|
-
"viewersCount": {
|
|
903
|
-
"type": "number",
|
|
904
|
-
"description": "Total viewers across all streams"
|
|
905
|
-
},
|
|
906
|
-
"broadcastersCount": {
|
|
907
|
-
"type": "number",
|
|
908
|
-
"description": "Number of channels currently streaming this game"
|
|
909
|
-
},
|
|
910
|
-
"boxArtURL": {
|
|
911
|
-
"type": "string",
|
|
912
|
-
"description": "URL of the game box art image"
|
|
913
|
-
}
|
|
914
|
-
},
|
|
915
|
-
"required": [
|
|
916
|
-
"id",
|
|
917
|
-
"name",
|
|
918
|
-
"displayName",
|
|
919
|
-
"viewersCount",
|
|
920
|
-
"broadcastersCount",
|
|
921
|
-
"boxArtURL"
|
|
922
|
-
],
|
|
923
|
-
"additionalProperties": false
|
|
924
|
-
}
|
|
925
|
-
}
|
|
926
|
-
},
|
|
927
|
-
"required": [
|
|
928
|
-
"categories"
|
|
929
|
-
],
|
|
930
|
-
"additionalProperties": false
|
|
931
|
-
}
|
|
932
|
-
},
|
|
933
|
-
{
|
|
934
|
-
"name": "get_user_clips",
|
|
935
|
-
"displayName": "Get User Clips",
|
|
936
|
-
"description": "Get clips from a Twitch channel sorted by view count. Provide the broadcaster login name and optionally filter by time period.",
|
|
937
|
-
"summary": "Get clips from a Twitch channel",
|
|
938
|
-
"icon": "clapperboard",
|
|
939
|
-
"group": "Clips",
|
|
940
|
-
"input_schema": {
|
|
941
|
-
"type": "object",
|
|
942
|
-
"properties": {
|
|
943
|
-
"login": {
|
|
944
|
-
"type": "string",
|
|
945
|
-
"description": "Broadcaster login name (e.g., \"shroud\")"
|
|
946
|
-
},
|
|
947
|
-
"period": {
|
|
948
|
-
"description": "Time period filter (default ALL_TIME)",
|
|
949
|
-
"type": "string",
|
|
950
|
-
"enum": [
|
|
951
|
-
"LAST_DAY",
|
|
952
|
-
"LAST_WEEK",
|
|
953
|
-
"LAST_MONTH",
|
|
954
|
-
"ALL_TIME"
|
|
955
|
-
]
|
|
956
|
-
},
|
|
957
|
-
"first": {
|
|
958
|
-
"description": "Number of clips to return (default 10, max 25)",
|
|
959
|
-
"type": "integer",
|
|
960
|
-
"minimum": 1,
|
|
961
|
-
"maximum": 25
|
|
962
|
-
}
|
|
963
|
-
},
|
|
964
|
-
"required": [
|
|
965
|
-
"login"
|
|
966
|
-
],
|
|
967
|
-
"additionalProperties": false
|
|
968
|
-
},
|
|
969
|
-
"output_schema": {
|
|
970
|
-
"type": "object",
|
|
971
|
-
"properties": {
|
|
972
|
-
"clips": {
|
|
973
|
-
"type": "array",
|
|
974
|
-
"items": {
|
|
975
|
-
"type": "object",
|
|
976
|
-
"properties": {
|
|
977
|
-
"id": {
|
|
978
|
-
"type": "string",
|
|
979
|
-
"description": "Clip ID"
|
|
980
|
-
},
|
|
981
|
-
"slug": {
|
|
982
|
-
"type": "string",
|
|
983
|
-
"description": "URL-safe slug for the clip"
|
|
984
|
-
},
|
|
985
|
-
"title": {
|
|
986
|
-
"type": "string",
|
|
987
|
-
"description": "Clip title"
|
|
988
|
-
},
|
|
989
|
-
"viewCount": {
|
|
990
|
-
"type": "number",
|
|
991
|
-
"description": "Total number of views"
|
|
992
|
-
},
|
|
993
|
-
"createdAt": {
|
|
994
|
-
"type": "string",
|
|
995
|
-
"description": "ISO 8601 timestamp when the clip was created"
|
|
996
|
-
},
|
|
997
|
-
"thumbnailURL": {
|
|
998
|
-
"type": "string",
|
|
999
|
-
"description": "URL of the clip thumbnail image"
|
|
1000
|
-
},
|
|
1001
|
-
"durationSeconds": {
|
|
1002
|
-
"type": "number",
|
|
1003
|
-
"description": "Clip duration in seconds"
|
|
1004
|
-
},
|
|
1005
|
-
"broadcaster": {
|
|
1006
|
-
"type": "object",
|
|
1007
|
-
"properties": {
|
|
1008
|
-
"id": {
|
|
1009
|
-
"type": "string",
|
|
1010
|
-
"description": "Broadcaster user ID"
|
|
1011
|
-
},
|
|
1012
|
-
"login": {
|
|
1013
|
-
"type": "string",
|
|
1014
|
-
"description": "Broadcaster login name"
|
|
1015
|
-
},
|
|
1016
|
-
"displayName": {
|
|
1017
|
-
"type": "string",
|
|
1018
|
-
"description": "Broadcaster display name"
|
|
1019
|
-
}
|
|
1020
|
-
},
|
|
1021
|
-
"required": [
|
|
1022
|
-
"id",
|
|
1023
|
-
"login",
|
|
1024
|
-
"displayName"
|
|
1025
|
-
],
|
|
1026
|
-
"additionalProperties": false,
|
|
1027
|
-
"description": "Broadcaster who was clipped"
|
|
1028
|
-
},
|
|
1029
|
-
"game": {
|
|
1030
|
-
"type": "object",
|
|
1031
|
-
"properties": {
|
|
1032
|
-
"id": {
|
|
1033
|
-
"type": "string",
|
|
1034
|
-
"description": "Game/category ID"
|
|
1035
|
-
},
|
|
1036
|
-
"name": {
|
|
1037
|
-
"type": "string",
|
|
1038
|
-
"description": "Game/category name"
|
|
1039
|
-
}
|
|
1040
|
-
},
|
|
1041
|
-
"required": [
|
|
1042
|
-
"id",
|
|
1043
|
-
"name"
|
|
1044
|
-
],
|
|
1045
|
-
"additionalProperties": false,
|
|
1046
|
-
"description": "Game/category at the time of the clip"
|
|
1047
|
-
}
|
|
1048
|
-
},
|
|
1049
|
-
"required": [
|
|
1050
|
-
"id",
|
|
1051
|
-
"slug",
|
|
1052
|
-
"title",
|
|
1053
|
-
"viewCount",
|
|
1054
|
-
"createdAt",
|
|
1055
|
-
"thumbnailURL",
|
|
1056
|
-
"durationSeconds",
|
|
1057
|
-
"broadcaster",
|
|
1058
|
-
"game"
|
|
1059
|
-
],
|
|
1060
|
-
"additionalProperties": false
|
|
1061
|
-
}
|
|
1062
|
-
}
|
|
1063
|
-
},
|
|
1064
|
-
"required": [
|
|
1065
|
-
"clips"
|
|
1066
|
-
],
|
|
1067
|
-
"additionalProperties": false
|
|
1068
|
-
}
|
|
1069
|
-
},
|
|
1070
|
-
{
|
|
1071
|
-
"name": "get_game_clips",
|
|
1072
|
-
"displayName": "Get Game Clips",
|
|
1073
|
-
"description": "Get top clips for a specific game/category on Twitch. Provide the game name and optionally filter by time period.",
|
|
1074
|
-
"summary": "Get top clips for a game or category",
|
|
1075
|
-
"icon": "clapperboard",
|
|
1076
|
-
"group": "Clips",
|
|
1077
|
-
"input_schema": {
|
|
1078
|
-
"type": "object",
|
|
1079
|
-
"properties": {
|
|
1080
|
-
"name": {
|
|
1081
|
-
"type": "string",
|
|
1082
|
-
"description": "Game name (e.g., \"Fortnite\", \"Just Chatting\")"
|
|
1083
|
-
},
|
|
1084
|
-
"period": {
|
|
1085
|
-
"description": "Time period filter (default LAST_WEEK)",
|
|
1086
|
-
"type": "string",
|
|
1087
|
-
"enum": [
|
|
1088
|
-
"LAST_DAY",
|
|
1089
|
-
"LAST_WEEK",
|
|
1090
|
-
"LAST_MONTH",
|
|
1091
|
-
"ALL_TIME"
|
|
1092
|
-
]
|
|
1093
|
-
},
|
|
1094
|
-
"first": {
|
|
1095
|
-
"description": "Number of clips to return (default 10, max 25)",
|
|
1096
|
-
"type": "integer",
|
|
1097
|
-
"minimum": 1,
|
|
1098
|
-
"maximum": 25
|
|
1099
|
-
}
|
|
1100
|
-
},
|
|
1101
|
-
"required": [
|
|
1102
|
-
"name"
|
|
1103
|
-
],
|
|
1104
|
-
"additionalProperties": false
|
|
1105
|
-
},
|
|
1106
|
-
"output_schema": {
|
|
1107
|
-
"type": "object",
|
|
1108
|
-
"properties": {
|
|
1109
|
-
"clips": {
|
|
1110
|
-
"type": "array",
|
|
1111
|
-
"items": {
|
|
1112
|
-
"type": "object",
|
|
1113
|
-
"properties": {
|
|
1114
|
-
"id": {
|
|
1115
|
-
"type": "string",
|
|
1116
|
-
"description": "Clip ID"
|
|
1117
|
-
},
|
|
1118
|
-
"slug": {
|
|
1119
|
-
"type": "string",
|
|
1120
|
-
"description": "URL-safe slug for the clip"
|
|
1121
|
-
},
|
|
1122
|
-
"title": {
|
|
1123
|
-
"type": "string",
|
|
1124
|
-
"description": "Clip title"
|
|
1125
|
-
},
|
|
1126
|
-
"viewCount": {
|
|
1127
|
-
"type": "number",
|
|
1128
|
-
"description": "Total number of views"
|
|
1129
|
-
},
|
|
1130
|
-
"createdAt": {
|
|
1131
|
-
"type": "string",
|
|
1132
|
-
"description": "ISO 8601 timestamp when the clip was created"
|
|
1133
|
-
},
|
|
1134
|
-
"thumbnailURL": {
|
|
1135
|
-
"type": "string",
|
|
1136
|
-
"description": "URL of the clip thumbnail image"
|
|
1137
|
-
},
|
|
1138
|
-
"durationSeconds": {
|
|
1139
|
-
"type": "number",
|
|
1140
|
-
"description": "Clip duration in seconds"
|
|
1141
|
-
},
|
|
1142
|
-
"broadcaster": {
|
|
1143
|
-
"type": "object",
|
|
1144
|
-
"properties": {
|
|
1145
|
-
"id": {
|
|
1146
|
-
"type": "string",
|
|
1147
|
-
"description": "Broadcaster user ID"
|
|
1148
|
-
},
|
|
1149
|
-
"login": {
|
|
1150
|
-
"type": "string",
|
|
1151
|
-
"description": "Broadcaster login name"
|
|
1152
|
-
},
|
|
1153
|
-
"displayName": {
|
|
1154
|
-
"type": "string",
|
|
1155
|
-
"description": "Broadcaster display name"
|
|
1156
|
-
}
|
|
1157
|
-
},
|
|
1158
|
-
"required": [
|
|
1159
|
-
"id",
|
|
1160
|
-
"login",
|
|
1161
|
-
"displayName"
|
|
1162
|
-
],
|
|
1163
|
-
"additionalProperties": false,
|
|
1164
|
-
"description": "Broadcaster who was clipped"
|
|
1165
|
-
},
|
|
1166
|
-
"game": {
|
|
1167
|
-
"type": "object",
|
|
1168
|
-
"properties": {
|
|
1169
|
-
"id": {
|
|
1170
|
-
"type": "string",
|
|
1171
|
-
"description": "Game/category ID"
|
|
1172
|
-
},
|
|
1173
|
-
"name": {
|
|
1174
|
-
"type": "string",
|
|
1175
|
-
"description": "Game/category name"
|
|
1176
|
-
}
|
|
1177
|
-
},
|
|
1178
|
-
"required": [
|
|
1179
|
-
"id",
|
|
1180
|
-
"name"
|
|
1181
|
-
],
|
|
1182
|
-
"additionalProperties": false,
|
|
1183
|
-
"description": "Game/category at the time of the clip"
|
|
1184
|
-
}
|
|
1185
|
-
},
|
|
1186
|
-
"required": [
|
|
1187
|
-
"id",
|
|
1188
|
-
"slug",
|
|
1189
|
-
"title",
|
|
1190
|
-
"viewCount",
|
|
1191
|
-
"createdAt",
|
|
1192
|
-
"thumbnailURL",
|
|
1193
|
-
"durationSeconds",
|
|
1194
|
-
"broadcaster",
|
|
1195
|
-
"game"
|
|
1196
|
-
],
|
|
1197
|
-
"additionalProperties": false
|
|
1198
|
-
}
|
|
1199
|
-
}
|
|
1200
|
-
},
|
|
1201
|
-
"required": [
|
|
1202
|
-
"clips"
|
|
1203
|
-
],
|
|
1204
|
-
"additionalProperties": false
|
|
1205
|
-
}
|
|
1206
|
-
},
|
|
1207
|
-
{
|
|
1208
|
-
"name": "get_user_videos",
|
|
1209
|
-
"displayName": "Get User Videos",
|
|
1210
|
-
"description": "Get videos (VODs, highlights, uploads) from a Twitch channel. Optionally filter by video type and sort order.",
|
|
1211
|
-
"summary": "Get videos from a Twitch channel",
|
|
1212
|
-
"icon": "video",
|
|
1213
|
-
"group": "Videos",
|
|
1214
|
-
"input_schema": {
|
|
1215
|
-
"type": "object",
|
|
1216
|
-
"properties": {
|
|
1217
|
-
"login": {
|
|
1218
|
-
"type": "string",
|
|
1219
|
-
"description": "Broadcaster login name (e.g., \"shroud\")"
|
|
1220
|
-
},
|
|
1221
|
-
"type": {
|
|
1222
|
-
"description": "Video type filter (default: all types)",
|
|
1223
|
-
"type": "string",
|
|
1224
|
-
"enum": [
|
|
1225
|
-
"ARCHIVE",
|
|
1226
|
-
"HIGHLIGHT",
|
|
1227
|
-
"UPLOAD",
|
|
1228
|
-
"PAST_PREMIERE"
|
|
1229
|
-
]
|
|
1230
|
-
},
|
|
1231
|
-
"sort": {
|
|
1232
|
-
"description": "Sort order (default TIME — most recent first)",
|
|
1233
|
-
"type": "string",
|
|
1234
|
-
"enum": [
|
|
1235
|
-
"TIME",
|
|
1236
|
-
"VIEWS"
|
|
1237
|
-
]
|
|
1238
|
-
},
|
|
1239
|
-
"first": {
|
|
1240
|
-
"description": "Number of videos to return (default 10, max 25)",
|
|
1241
|
-
"type": "integer",
|
|
1242
|
-
"minimum": 1,
|
|
1243
|
-
"maximum": 25
|
|
1244
|
-
}
|
|
1245
|
-
},
|
|
1246
|
-
"required": [
|
|
1247
|
-
"login"
|
|
1248
|
-
],
|
|
1249
|
-
"additionalProperties": false
|
|
1250
|
-
},
|
|
1251
|
-
"output_schema": {
|
|
1252
|
-
"type": "object",
|
|
1253
|
-
"properties": {
|
|
1254
|
-
"videos": {
|
|
1255
|
-
"type": "array",
|
|
1256
|
-
"items": {
|
|
1257
|
-
"type": "object",
|
|
1258
|
-
"properties": {
|
|
1259
|
-
"id": {
|
|
1260
|
-
"type": "string",
|
|
1261
|
-
"description": "Video ID"
|
|
1262
|
-
},
|
|
1263
|
-
"title": {
|
|
1264
|
-
"type": "string",
|
|
1265
|
-
"description": "Video title"
|
|
1266
|
-
},
|
|
1267
|
-
"viewCount": {
|
|
1268
|
-
"type": "number",
|
|
1269
|
-
"description": "Total number of views"
|
|
1270
|
-
},
|
|
1271
|
-
"publishedAt": {
|
|
1272
|
-
"type": "string",
|
|
1273
|
-
"description": "ISO 8601 timestamp when the video was published"
|
|
1274
|
-
},
|
|
1275
|
-
"lengthSeconds": {
|
|
1276
|
-
"type": "number",
|
|
1277
|
-
"description": "Video duration in seconds"
|
|
1278
|
-
},
|
|
1279
|
-
"game": {
|
|
1280
|
-
"type": "object",
|
|
1281
|
-
"properties": {
|
|
1282
|
-
"id": {
|
|
1283
|
-
"type": "string",
|
|
1284
|
-
"description": "Game/category ID"
|
|
1285
|
-
},
|
|
1286
|
-
"name": {
|
|
1287
|
-
"type": "string",
|
|
1288
|
-
"description": "Game/category name"
|
|
1289
|
-
}
|
|
1290
|
-
},
|
|
1291
|
-
"required": [
|
|
1292
|
-
"id",
|
|
1293
|
-
"name"
|
|
1294
|
-
],
|
|
1295
|
-
"additionalProperties": false,
|
|
1296
|
-
"description": "Game/category associated with the video"
|
|
1297
|
-
},
|
|
1298
|
-
"thumbnailURL": {
|
|
1299
|
-
"type": "string",
|
|
1300
|
-
"description": "URL of the video thumbnail image"
|
|
1301
|
-
}
|
|
1302
|
-
},
|
|
1303
|
-
"required": [
|
|
1304
|
-
"id",
|
|
1305
|
-
"title",
|
|
1306
|
-
"viewCount",
|
|
1307
|
-
"publishedAt",
|
|
1308
|
-
"lengthSeconds",
|
|
1309
|
-
"game",
|
|
1310
|
-
"thumbnailURL"
|
|
1311
|
-
],
|
|
1312
|
-
"additionalProperties": false
|
|
1313
|
-
}
|
|
1314
|
-
},
|
|
1315
|
-
"totalCount": {
|
|
1316
|
-
"type": "number",
|
|
1317
|
-
"description": "Total number of videos available"
|
|
1318
|
-
}
|
|
1319
|
-
},
|
|
1320
|
-
"required": [
|
|
1321
|
-
"videos",
|
|
1322
|
-
"totalCount"
|
|
1323
|
-
],
|
|
1324
|
-
"additionalProperties": false
|
|
1325
|
-
}
|
|
1326
|
-
},
|
|
1327
|
-
{
|
|
1328
|
-
"name": "get_video",
|
|
1329
|
-
"displayName": "Get Video",
|
|
1330
|
-
"description": "Get details about a specific Twitch video by its ID. Returns title, view count, duration, game, and broadcaster info.",
|
|
1331
|
-
"summary": "Get details about a specific video",
|
|
1332
|
-
"icon": "video",
|
|
1333
|
-
"group": "Videos",
|
|
1334
|
-
"input_schema": {
|
|
1335
|
-
"type": "object",
|
|
1336
|
-
"properties": {
|
|
1337
|
-
"id": {
|
|
1338
|
-
"type": "string",
|
|
1339
|
-
"description": "Video ID (e.g., \"2717949378\")"
|
|
1340
|
-
}
|
|
1341
|
-
},
|
|
1342
|
-
"required": [
|
|
1343
|
-
"id"
|
|
1344
|
-
],
|
|
1345
|
-
"additionalProperties": false
|
|
1346
|
-
},
|
|
1347
|
-
"output_schema": {
|
|
1348
|
-
"type": "object",
|
|
1349
|
-
"properties": {
|
|
1350
|
-
"video": {
|
|
1351
|
-
"type": "object",
|
|
1352
|
-
"properties": {
|
|
1353
|
-
"id": {
|
|
1354
|
-
"type": "string",
|
|
1355
|
-
"description": "Video ID"
|
|
1356
|
-
},
|
|
1357
|
-
"title": {
|
|
1358
|
-
"type": "string",
|
|
1359
|
-
"description": "Video title"
|
|
1360
|
-
},
|
|
1361
|
-
"viewCount": {
|
|
1362
|
-
"type": "number",
|
|
1363
|
-
"description": "Total number of views"
|
|
1364
|
-
},
|
|
1365
|
-
"publishedAt": {
|
|
1366
|
-
"type": "string",
|
|
1367
|
-
"description": "ISO 8601 timestamp when the video was published"
|
|
1368
|
-
},
|
|
1369
|
-
"lengthSeconds": {
|
|
1370
|
-
"type": "number",
|
|
1371
|
-
"description": "Video duration in seconds"
|
|
1372
|
-
},
|
|
1373
|
-
"game": {
|
|
1374
|
-
"type": "object",
|
|
1375
|
-
"properties": {
|
|
1376
|
-
"id": {
|
|
1377
|
-
"type": "string",
|
|
1378
|
-
"description": "Game/category ID"
|
|
1379
|
-
},
|
|
1380
|
-
"name": {
|
|
1381
|
-
"type": "string",
|
|
1382
|
-
"description": "Game/category name"
|
|
1383
|
-
}
|
|
1384
|
-
},
|
|
1385
|
-
"required": [
|
|
1386
|
-
"id",
|
|
1387
|
-
"name"
|
|
1388
|
-
],
|
|
1389
|
-
"additionalProperties": false,
|
|
1390
|
-
"description": "Game/category associated with the video"
|
|
1391
|
-
},
|
|
1392
|
-
"thumbnailURL": {
|
|
1393
|
-
"type": "string",
|
|
1394
|
-
"description": "URL of the video thumbnail image"
|
|
1395
|
-
},
|
|
1396
|
-
"broadcaster": {
|
|
1397
|
-
"type": "object",
|
|
1398
|
-
"properties": {
|
|
1399
|
-
"id": {
|
|
1400
|
-
"type": "string",
|
|
1401
|
-
"description": "Broadcaster user ID"
|
|
1402
|
-
},
|
|
1403
|
-
"login": {
|
|
1404
|
-
"type": "string",
|
|
1405
|
-
"description": "Broadcaster login name"
|
|
1406
|
-
},
|
|
1407
|
-
"displayName": {
|
|
1408
|
-
"type": "string",
|
|
1409
|
-
"description": "Broadcaster display name"
|
|
1410
|
-
}
|
|
1411
|
-
},
|
|
1412
|
-
"required": [
|
|
1413
|
-
"id",
|
|
1414
|
-
"login",
|
|
1415
|
-
"displayName"
|
|
1416
|
-
],
|
|
1417
|
-
"additionalProperties": false,
|
|
1418
|
-
"description": "Video broadcaster"
|
|
1419
|
-
}
|
|
1420
|
-
},
|
|
1421
|
-
"required": [
|
|
1422
|
-
"id",
|
|
1423
|
-
"title",
|
|
1424
|
-
"viewCount",
|
|
1425
|
-
"publishedAt",
|
|
1426
|
-
"lengthSeconds",
|
|
1427
|
-
"game",
|
|
1428
|
-
"thumbnailURL",
|
|
1429
|
-
"broadcaster"
|
|
1430
|
-
],
|
|
1431
|
-
"additionalProperties": false
|
|
1432
|
-
}
|
|
1433
|
-
},
|
|
1434
|
-
"required": [
|
|
1435
|
-
"video"
|
|
1436
|
-
],
|
|
1437
|
-
"additionalProperties": false
|
|
1438
|
-
}
|
|
1439
|
-
},
|
|
1440
|
-
{
|
|
1441
|
-
"name": "get_channel_emotes",
|
|
1442
|
-
"displayName": "Get Channel Emotes",
|
|
1443
|
-
"description": "Get subscription emotes for a Twitch channel. Returns the emote name (token) and ID for each emote across all subscription tiers.",
|
|
1444
|
-
"summary": "Get subscription emotes for a channel",
|
|
1445
|
-
"icon": "smile",
|
|
1446
|
-
"group": "Chat",
|
|
1447
|
-
"input_schema": {
|
|
1448
|
-
"type": "object",
|
|
1449
|
-
"properties": {
|
|
1450
|
-
"login": {
|
|
1451
|
-
"type": "string",
|
|
1452
|
-
"description": "Channel login name (e.g., \"shroud\")"
|
|
1453
|
-
}
|
|
1454
|
-
},
|
|
1455
|
-
"required": [
|
|
1456
|
-
"login"
|
|
1457
|
-
],
|
|
1458
|
-
"additionalProperties": false
|
|
1459
|
-
},
|
|
1460
|
-
"output_schema": {
|
|
1461
|
-
"type": "object",
|
|
1462
|
-
"properties": {
|
|
1463
|
-
"emotes": {
|
|
1464
|
-
"type": "array",
|
|
1465
|
-
"items": {
|
|
1466
|
-
"type": "object",
|
|
1467
|
-
"properties": {
|
|
1468
|
-
"id": {
|
|
1469
|
-
"type": "string",
|
|
1470
|
-
"description": "Emote ID"
|
|
1471
|
-
},
|
|
1472
|
-
"token": {
|
|
1473
|
-
"type": "string",
|
|
1474
|
-
"description": "Emote name/token used in chat"
|
|
1475
|
-
}
|
|
1476
|
-
},
|
|
1477
|
-
"required": [
|
|
1478
|
-
"id",
|
|
1479
|
-
"token"
|
|
1480
|
-
],
|
|
1481
|
-
"additionalProperties": false
|
|
1482
|
-
}
|
|
1483
|
-
}
|
|
1484
|
-
},
|
|
1485
|
-
"required": [
|
|
1486
|
-
"emotes"
|
|
1487
|
-
],
|
|
1488
|
-
"additionalProperties": false
|
|
1489
|
-
}
|
|
1490
|
-
}
|
|
1491
|
-
]
|
|
1492
|
-
}
|