Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Twitch Scraper: channels, streams, games, clips and videos

Apify Actor Actor Version Actor Price GitHub Issues Last Commit

Scrape Twitch channel profiles, live streams, top games, clips, and videos. No login, no API key. Covers channel lookup, channel search, top live streams, per-game streams, top games, clips, and VODs.

Twitch Scraper on Apify


Why use Twitch Scraper

  • Sponsorship research: Check a streamer's follower count and live viewer numbers before signing a deal, and compare candidates in one sheet.
  • Esports tracking: See which games are pulling the most viewers right now, so rising titles show up before they trend.
  • Clip sourcing: Pull a channel's top clips from a chosen time window to find highlight-worthy moments without watching hours of footage.
  • Category leaderboards: Build a ranked list of the biggest channels in a category to size an audience before a pitch.
  • No account needed: Every mode runs without a Twitch login, password, or API key.

How to use Twitch Scraper

  1. Click Try for free at the top of this page.
  2. Pick a mode: channel lookup, channel search, top live streams, streams by game, top games, clips, or videos.
  3. Fill in Targets: channel names, search phrases, or game names, depending on the mode.
  4. Set Max results to cap how many rows come back.
  5. Click Start. The actor collects every matching record and writes one flat row per item.
  6. Download your results: Export as Excel, CSV, JSON, or HTML from the Output tab.

Input

Field Type Required Description
mode enum Yes What to scrape: channels, searchChannels, topStreams, gameStreams, topGames, clips, or videos.
targets array of strings No Channel names or profile links, search phrases, or game names, depending on the mode. Not used by top live streams or top games.
clipPeriod enum No Time window for ranking clips by views: last day, last week, last month, or all time. Defaults to all time.
includeRecentVideos boolean No Attach each channel's most recent videos as a nested list on the channel row. Channels mode only.
recentVideosLimit integer No How many recent videos to attach per channel, from 0 to 10.
includeTopClips boolean No Attach each channel's top clips as a nested list on the channel row. Channels mode only.
topClipsLimit integer No How many top clips to attach per channel, from 0 to 10.
maxResults integer No Maximum number of rows to return. Higher values are trimmed to Twitch's per-request cap. Defaults to 30.
proxyConfiguration object No Proxy settings. The default works fine for this Actor.

Output

Each row is one channel, stream, game, clip, or video, tagged by rowType. All fields are flat with no nested data (unless enrichment is turned on), so the file opens cleanly in any spreadsheet program.

{
  "rowType": "channel",
  "sourceMode": "channels",
  "sourceTarget": "shroud",
  "sourceUrl": "https://www.twitch.tv/shroud",
  "channelId": "37402112",
  "login": "shroud",
  "displayName": "shroud",
  "description": "I'm back baby",
  "followerCount": 11300579,
  "isPartner": true,
  "isAffiliate": false,
  "isLive": false,
  "profileImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/c754eebf-745b-4e0a-814a-10bcaecaabbc-profile_image-300x300.png"
}

Data table

Field Type Description
rowType string Row kind: channel, stream, game, clip, or video.
sourceMode string Which mode produced this row.
sourceTarget string The channel, game, or search phrase that produced this row.
sourceUrl string Direct link to the channel, game directory, clip, or video.
scrapedAt string When this row was collected, in ISO 8601 UTC.
followerCount number Total followers on the channel.
isPartner / isAffiliate boolean Twitch partner or affiliate status.
isLive boolean Whether the channel is currently streaming.
viewersCount number Live viewer count for stream rows.
gameName string Game or category the row belongs to.
viewCount number Views on a clip or video.
durationSeconds number Length of a clip or video, in seconds.

Pricing

$1.30 per 1,000 results. No monthly subscriptions and no minimum commits. New Apify accounts include $5 of free usage, so you can try it before you pay.

You only pay for the records you collect. A typical run of 100 results completes in under 30 seconds.


Quick start

Create a .env file from .env.example, add your Apify API token, and run:

npm install
npm start

The script uses the Apify API client to start the Twitch Scraper actor and fetch results.


Tips and optimization

  • Start small: A first run of 5 to 10 results shows the output shape before scaling up.
  • Use the right mode: Channel lookup and search return profile data, while streams and games modes return live activity.
  • Turn on enrichment only when needed: Recent videos and top clips add extra fields per channel, so leave them off for faster, cheaper runs.
  • Cap your spend: Set maxResults to keep any run within budget.

FAQ

Does it need a Twitch account or login? No. Every mode runs without a login, password, or API key. Just pick a mode and click Start.

How fresh is the data? Every run reads live data at the moment it runs, so viewer counts, follower counts, and live status are always current.

Which modes are supported? Seven: channel lookup, channel search, top live streams sitewide, live streams for a specific game, the top games directory, clips, and videos.

Can it scrape Twitch chat messages? No. Chat messages and full follower lists are out of scope for this Actor.


Support

For bug reports, missing fields, or feature requests, open an issue under the Issues tab, or visit the Twitch Scraper page on Apify.

About

Scrape Twitch channel profiles, live streams, top games, clips, and videos. No login, no API key. Covers channel lookup, channel search, top live streams, per-game streams, top games, clips, and VODs.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages