Twitch research
Resolve Twitch channels, games/categories, and teams, and pull live status,
clips, VODs, VOD chat replay, schedules, and search results as normalized
JSON from the Crawlora API — no Twitch developer app, no OAuth, no scraping.
When to use this skill
- "Is live right now, and what are they playing?"
- "Get the top clips from ."
- "What did chat say during ?" / VOD chat replay lookups.
- "What's 's upcoming schedule?"
- "Who's live in <game/category> right now?" or top games site-wide.
- "Who's on 's roster, and who's currently live?"
- "Search Twitch for a channel or category."
Setup (one-time)
- Get a free Crawlora API key (2,000 credits/mo, no card) at https://crawlora.net.
- Set
CRAWLORA_API_KEY in the environment before running the helper.
- The helper reads
CRAWLORA_API_KEY from the environment and sends requests to https://api.crawlora.net/api/v1. Missing/invalid key → 401.
How it works
- Resolve the channel login. A Twitch URL
https://twitch.tv/<login>
gives the channel login directly (it's already the lowercase URL slug) —
no separate id-lookup step is needed.
- Profile + live status:
/twitch/channel login=<login>.
- Content for that channel:
/twitch/clips login=<login> (recent
clips), /twitch/videos login=<login> (VODs), /twitch/schedule channel=<login> (upcoming broadcasts).
- VOD chat: once you have a VOD id (from
/twitch/videos or a
twitch.tv/videos/{id} URL), page through its chat replay with
/twitch/vod-comments video=<id>, advancing offset from the last
comment's offset_seconds to keep paginating.
- Team rosters:
/twitch/team team=<slug> for a team's members and
who's currently live.
- Discovery (no channel needed up front):
/twitch/search query=<text> to find channels/games by name; /twitch/top-games for
what's trending site-wide; /twitch/streams game=<slug> for the top
live streams under one game/category.
Full endpoint list, methods, and params: reference/endpoints.md.
Calling the API
# Channel profile + live status:
scripts/crawlora.sh /twitch/channel login=caedrel | jq '.'
# Clips and VODs for a channel:
scripts/crawlora.sh /twitch/clips login=caedrel limit=10 | jq '.data'
scripts/crawlora.sh /twitch/videos login=lck limit=10 | jq '.'
# Top games, then top streams under one:
scripts/crawlora.sh /twitch/top-games limit=10 | jq '.'
scripts/crawlora.sh /twitch/streams game=league-of-legends limit=10 | jq '.'
# VOD chat replay, paginating by offset_seconds:
scripts/crawlora.sh /twitch/vod-comments video=1234567890 offset=0 | jq '.'
Use scripts/crawlora.sh for all requests; it keeps the API key out of command-line arguments.
Endpoint reference
See reference/endpoints.md for every Twitch
endpoint this skill uses (method, path, params, description).
Examples
- Channel digest:
/twitch/channel (live status) + /twitch/clips +
/twitch/schedule for one login → a single "what's this streamer up to"
summary.
- VOD moment-finder:
/twitch/videos to find the VOD id →
/twitch/vod-comments starting at offset=0, paging forward by the last
comment's offset_seconds → scan chat for reactions around a timestamp.
- Category browse:
/twitch/top-games for the top categories →
/twitch/streams game=<slug> on the one of interest → surface the top
live streamers under it by viewer count.
Notes & limits
- Credits / pay-on-success: billed only on
2xx; free tier 2,000 credits/mo.
Key at https://crawlora.net.
- Public data only — public Twitch pages/GraphQL surface; respect
Twitch's terms.
- Security: key lives in
CRAWLORA_API_KEY only — never hardcode, query-param, or commit it.
login/channel params are the lowercase URL slug (e.g. caedrel for
twitch.tv/caedrel), not a display name — lowercase before calling.
/twitch/schedule returns an empty segments list, not an error, when a
channel has no schedule configured.
/twitch/search is sourced from Twitch's search-typeahead surface — a
capped suggestion list (limit max 30), not a fully paginated results page.
/twitch/vod-comments paginates by re-requesting with offset set to the
last returned comment's offset_seconds — there's no separate page token.
1---2name: twitch-research3description: Pulls structured Twitch data — channel profile and live status, clips, VODs, VOD chat replay, broadcast schedule, team rosters, top games, and search — via the Crawlora API as clean JSON, with no scraping or Twitch API OAuth setup. Use when the user gives a Twitch channel/game/team and wants live status, clips, VODs, chat replay, schedule, or discovery of streamers/categories.4---56# Twitch research78Resolve Twitch channels, games/categories, and teams, and pull live status,9clips, VODs, VOD chat replay, schedules, and search results as normalized10JSON from the Crawlora API — no Twitch developer app, no OAuth, no scraping.1112## When to use this skill1314- "Is <channel> live right now, and what are they playing?"15- "Get the top clips from <channel>."16- "What did chat say during <VOD>?" / VOD chat replay lookups.17- "What's <channel>'s upcoming schedule?"18- "Who's live in <game/category> right now?" or top games site-wide.19- "Who's on <team>'s roster, and who's currently live?"20- "Search Twitch for a channel or category."2122## Setup (one-time)2324- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).25- Set `CRAWLORA_API_KEY` in the environment before running the helper.26- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.2728## How it works29301. **Resolve the channel login.** A Twitch URL `https://twitch.tv/<login>`31 gives the channel login directly (it's already the lowercase URL slug) —32 no separate id-lookup step is needed.332. **Profile + live status:** `/twitch/channel login=<login>`.343. **Content for that channel:** `/twitch/clips login=<login>` (recent35 clips), `/twitch/videos login=<login>` (VODs), `/twitch/schedule36 channel=<login>` (upcoming broadcasts).374. **VOD chat:** once you have a VOD id (from `/twitch/videos` or a38 `twitch.tv/videos/{id}` URL), page through its chat replay with39 `/twitch/vod-comments video=<id>`, advancing `offset` from the last40 comment's `offset_seconds` to keep paginating.415. **Team rosters:** `/twitch/team team=<slug>` for a team's members and42 who's currently live.436. **Discovery** (no channel needed up front): `/twitch/search44 query=<text>` to find channels/games by name; `/twitch/top-games` for45 what's trending site-wide; `/twitch/streams game=<slug>` for the top46 live streams under one game/category.4748Full endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).4950## Calling the API5152```sh53# Channel profile + live status:54scripts/crawlora.sh /twitch/channel login=caedrel | jq '.'5556# Clips and VODs for a channel:57scripts/crawlora.sh /twitch/clips login=caedrel limit=10 | jq '.data'58scripts/crawlora.sh /twitch/videos login=lck limit=10 | jq '.'5960# Top games, then top streams under one:61scripts/crawlora.sh /twitch/top-games limit=10 | jq '.'62scripts/crawlora.sh /twitch/streams game=league-of-legends limit=10 | jq '.'6364# VOD chat replay, paginating by offset_seconds:65scripts/crawlora.sh /twitch/vod-comments video=1234567890 offset=0 | jq '.'66```6768Use `scripts/crawlora.sh` for all requests; it keeps the API key out of command-line arguments.697071## Endpoint reference7273See [`reference/endpoints.md`](reference/endpoints.md) for every Twitch74endpoint this skill uses (method, path, params, description).7576## Examples7778- **Channel digest:** `/twitch/channel` (live status) + `/twitch/clips` +79 `/twitch/schedule` for one login → a single "what's this streamer up to"80 summary.81- **VOD moment-finder:** `/twitch/videos` to find the VOD id →82 `/twitch/vod-comments` starting at `offset=0`, paging forward by the last83 comment's `offset_seconds` → scan chat for reactions around a timestamp.84- **Category browse:** `/twitch/top-games` for the top categories →85 `/twitch/streams game=<slug>` on the one of interest → surface the top86 live streamers under it by viewer count.8788## Notes & limits8990- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.91 Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).92- **Public data only** — public Twitch pages/GraphQL surface; respect93 Twitch's terms.94- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.95- `login`/`channel` params are the lowercase URL slug (e.g. `caedrel` for96 `twitch.tv/caedrel`), not a display name — lowercase before calling.97- `/twitch/schedule` returns an empty segments list, not an error, when a98 channel has no schedule configured.99- `/twitch/search` is sourced from Twitch's search-typeahead surface — a100 capped suggestion list (`limit` max 30), not a fully paginated results page.101- `/twitch/vod-comments` paginates by re-requesting with `offset` set to the102 last returned comment's `offset_seconds` — there's no separate page token.