Twitch Streamer & Channel Scraper avatar

Twitch Streamer & Channel Scraper

Pricing

Pay per usage

Go to Apify Store
Twitch Streamer & Channel Scraper

Twitch Streamer & Channel Scraper

Scrape Twitch streamer profiles, live stream data, channel stats, and clips. Extract followers, viewers, stream titles, games, tags, and more. Perfect for influencer marketing, gaming analytics, and sponsorship research.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Ricardo Akiyoshi

Ricardo Akiyoshi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Categories

Share

Scrape Twitch streamer profiles, live stream data, channel statistics, and top clips. Built for influencer marketing research, gaming analytics, esports intelligence, sponsorship evaluation, and competitive streaming analysis.

What does this scraper do?

This actor extracts detailed information about Twitch channels and streamers including:

  • Channel Profile: Display name, login, user ID, profile image URL, banner URL, primary accent color, account creation date
  • Channel Stats: Follower count, total view count, partner/affiliate status, broadcaster type
  • Live Stream Info: Whether the channel is currently live, current viewer count, stream title, game/category being played, stream language, tags, stream start time
  • Broadcast Settings: Last known stream title, game, language settings
  • Last Broadcast: Start time, title, and game of the most recent stream
  • Social Media Links: All linked social accounts (Twitter, YouTube, Instagram, Discord, etc.)
  • Channel Panels: Panel titles, descriptions, images, and links from the streamer's about section
  • Clips (optional): Top clips by view count with title, URL, views, duration, creation date, thumbnail, game, broadcaster info, and clip curator

Use Cases

Influencer Marketing & Brand Partnerships

Identify the right Twitch streamers for your brand campaigns. Analyze follower counts, viewer engagement, game preferences, and streaming schedules to find creators that match your target audience. Export channel data to compare metrics across dozens of potential partners in a single spreadsheet.

Gaming Analytics & Market Intelligence

Track the Twitch streaming landscape for specific games or categories. Monitor which games are trending, how many streamers are active in each category, average viewer counts, and total audience sizes. Build dashboards that show gaming trends over time by running the scraper on a schedule.

Sponsorship Research & Valuation

Evaluate potential sponsorship deals by analyzing real channel metrics. Compare follower-to-viewer ratios, check partner/affiliate status (which affects monetization options), and review the streamer's content categories to ensure brand safety. Use historical data to identify channels with growing audiences.

Esports Team & Talent Scouting

Discover emerging streamers and competitive players by browsing game categories. Identify high-skill players with growing audiences who might be candidates for team recruitment, coaching, or content partnerships. Track viewer counts and streaming consistency to find dedicated creators.

Competitive Analysis for Streamers

If you are a streamer, analyze your competition. See who streams the same games, compare follower counts and viewer numbers, study their stream titles and tags for SEO insights, and review their panel layouts and social media linking strategies. Use this data to optimize your own channel.

Content Strategy & Trend Analysis

Research what types of content perform best on Twitch. Analyze stream titles and tags across top channels to identify popular keywords. Track which categories attract the most viewers and how audiences shift between games throughout the week.

Academic & Research Applications

Researchers studying streaming culture, digital entertainment, creator economies, or online communities can use this scraper to collect structured data at scale. Analyze streaming demographics, content patterns, community sizes, and platform dynamics.

Ad Tech & Audience Targeting

Build audience profiles based on Twitch viewing behavior. Identify which streamers share similar audiences, map game category overlaps, and discover niche communities for targeted advertising campaigns. Use follower counts and viewer data to estimate reach and impressions.

Input Configuration

ParameterTypeDefaultDescription
channelsArray of strings(required)Twitch channel names or URLs to scrape
categoryString""Optional game/category to browse for discovering streamers
maxResultsInteger50Maximum number of channels to return
includeClipsBooleanfalseWhether to scrape top clips per channel
maxClipsPerChannelInteger20Max clips to fetch per channel (when clips are enabled)
proxyConfigurationObjectApify ProxyProxy settings for the scraper

Channel Input Formats

The scraper accepts multiple input formats for channels:

  • Channel names: shroud, pokimane, xqc
  • Full URLs: https://www.twitch.tv/shroud
  • URLs with subpages: https://www.twitch.tv/shroud/about
  • With @ prefix: @pokimane
  • Mixed in the same list: You can combine all formats freely

Category Browsing

When a category is specified, the scraper discovers live streamers in that category and adds them to the scrape list. Common category names:

  • Just Chatting
  • League of Legends
  • Fortnite
  • VALORANT
  • Minecraft
  • Grand Theft Auto V
  • Apex Legends
  • Counter-Strike
  • Art
  • Music
  • Science & Technology
  • Software and Game Development

Example Input

Scrape specific channels

{
"channels": ["shroud", "pokimane", "xqc", "hasanabi"],
"maxResults": 50,
"includeClips": true,
"maxClipsPerChannel": 10
}

Browse a category to discover streamers

{
"channels": [],
"category": "Just Chatting",
"maxResults": 100,
"includeClips": false
}

Mixed: specific channels + category discovery

{
"channels": ["shroud", "https://www.twitch.tv/pokimane"],
"category": "Fortnite",
"maxResults": 50,
"includeClips": true,
"maxClipsPerChannel": 20
}

Output Data Schema

Each channel in the output dataset contains the following fields:

{
"login": "shroud",
"displayName": "shroud",
"id": "37402112",
"url": "https://www.twitch.tv/shroud",
"followers": 10200000,
"views": 520000000,
"isLive": true,
"currentViewers": 24531,
"streamTitle": "VALORANT ranked grind",
"game": "VALORANT",
"gameId": "516575",
"language": "en",
"tags": ["FPS", "Competitive", "English"],
"streamStartedAt": "2026-03-02T18:30:00Z",
"description": "Former CS:GO professional player...",
"profileImageUrl": "https://static-cdn.jtvnw.net/...",
"bannerUrl": "https://static-cdn.jtvnw.net/...",
"isPartner": true,
"isAffiliate": false,
"broadcasterType": "partner",
"createdAt": "2011-06-06T22:49:04Z",
"primaryColorHex": "9147FF",
"socialMediaLinks": [
{ "name": "Twitter", "title": "Twitter", "url": "https://twitter.com/shroud" },
{ "name": "YouTube", "title": "YouTube", "url": "https://youtube.com/shroud" }
],
"panels": [
{
"id": "12345",
"type": "DEFAULT",
"title": "About Me",
"description": "Professional streamer and former CS:GO pro...",
"imageUrl": null,
"linkUrl": null
}
],
"lastBroadcast": {
"startedAt": "2026-03-01T20:00:00Z",
"title": "Late night games",
"game": "VALORANT"
},
"broadcastSettings": {
"title": "VALORANT ranked grind",
"game": "VALORANT",
"language": "en"
},
"clips": [
{
"id": "clip_abc123",
"slug": "AmazingClipSlug",
"title": "Insane 1v5 ace",
"url": "https://clips.twitch.tv/AmazingClipSlug",
"viewCount": 1500000,
"duration": 30,
"createdAt": "2026-02-15T12:00:00Z",
"thumbnailUrl": "https://clips-media-assets2.twitch.tv/...",
"language": "en",
"game": "VALORANT",
"broadcaster": { "login": "shroud", "displayName": "shroud" },
"curator": { "login": "viewer123", "displayName": "viewer123" }
}
],
"clipCount": 1,
"scrapedAt": "2026-03-02T12:00:00Z",
"dataSource": "gql-api"
}

Extraction Strategies

The scraper uses multiple strategies in priority order to maximize data extraction reliability:

  1. Twitch GQL API (Primary) — Uses Twitch's internal GraphQL API with the public web client ID. This returns the richest data including exact follower counts, stream metadata, clip details, and category directory listings. Most reliable source for structured data.

  2. DOM Parsing (Fallback) — When GQL fails, the scraper loads channel pages via CheerioCrawler and extracts data from HTML elements using CSS selectors. Handles modern Twitch layouts with multiple selector fallbacks.

  3. Embedded State Extraction — Parses JavaScript state objects embedded in Twitch pages (__NEXT_DATA__, __RELAY_STORE__, __twilight_store__). These often contain the same data that powers the React UI.

  4. Meta Tag Parsing — Extracts Open Graph, Twitter Card, and standard HTML meta tags. Twitch pages include rich metadata with channel names, descriptions, and thumbnail images.

  5. JSON-LD Structured Data — Parses schema.org structured data when available for stream/video information.

Anti-Detection Features

  • 12 rotating user agents across Chrome, Firefox, Safari, and Edge on Windows, Mac, and Linux
  • Random request delays between 1-3 seconds to mimic human browsing
  • Standard browser headers including DNT, Sec-Fetch, Accept-Language
  • Proxy support via Apify Proxy (datacenter or residential) or custom proxy URLs
  • Rate limiting with configurable maximum concurrency (default: 5 parallel requests)
  • Exponential backoff on failed requests with up to 5 retries

Performance & Pricing

  • Cost: $0.004 per channel scraped (Pay Per Event pricing)
  • Speed: ~2-5 seconds per channel with GQL API, ~5-10 seconds with DOM fallback
  • Concurrency: Up to 5 parallel requests (configurable)
  • Memory: 256 MB recommended for up to 100 channels, 512 MB for 500+

Estimated Costs

ChannelsClips EnabledEst. TimeEst. Cost
10No~30s$0.04
50No~2 min$0.20
100Yes (20/ch)~5 min$0.40
500No~15 min$2.00
1000Yes (10/ch)~45 min$4.00

Integrations

Export scraped data in JSON, CSV, XML, Excel, or HTML format. Integrate with:

  • Google Sheets — Auto-sync channel stats to a spreadsheet for tracking
  • Zapier / Make — Trigger workflows when new streamers are discovered
  • Slack / Discord — Get notifications when channels go live
  • Airtable — Build a streamer CRM with enriched Twitch data
  • Power BI / Tableau — Create dashboards for gaming market analysis
  • Custom APIs — Use the Apify API to fetch results programmatically

Limitations

  • Twitch may rate-limit requests if too many are made in a short period. Use proxies and reasonable maxResults values.
  • Some channel data (exact subscriber counts, revenue, emotes) is private and cannot be scraped from public pages.
  • Clip data is limited to publicly available top clips. Private or deleted clips are not accessible.
  • Category browsing only shows currently live streams. Offline channels within a category are not discoverable through category browsing.
  • Very new or inactive channels may have limited data available.

Changelog

v1.0.0 (2026-03-02)

  • Initial release
  • GQL API + DOM fallback extraction strategies
  • Channel profile, stream data, clips, and category browsing
  • 12 rotating user agents with proxy support
  • PPE pricing at $0.004/channel

Support

For questions, bug reports, or feature requests, please open an issue on the Apify platform or contact us at ricardo.yudi@gmail.com.

License

MIT License. See ./LICENSE for details.