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_KEYin the environment before running the helper. - The helper reads
CRAWLORA_API_KEYfrom the environment and sends requests tohttps://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/videosor atwitch.tv/videos/{id}URL), page through its chat replay with/twitch/vod-comments video=<id>, advancingoffsetfrom the last comment'soffset_secondsto 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-gamesfor 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/schedulefor one login → a single "what's this streamer up to" summary. - VOD moment-finder:
/twitch/videosto find the VOD id →/twitch/vod-commentsstarting atoffset=0, paging forward by the last comment'soffset_seconds→ scan chat for reactions around a timestamp. - Category browse:
/twitch/top-gamesfor 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_KEYonly — never hardcode, query-param, or commit it. login/channelparams are the lowercase URL slug (e.g.caedrelfortwitch.tv/caedrel), not a display name — lowercase before calling./twitch/schedulereturns an empty segments list, not an error, when a channel has no schedule configured./twitch/searchis sourced from Twitch's search-typeahead surface — a capped suggestion list (limitmax 30), not a fully paginated results page./twitch/vod-commentspaginates by re-requesting withoffsetset to the last returned comment'soffset_seconds— there's no separate page token.