Twitch Streamer & Channel Scraper
Pricing
Pay per usage
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
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
| Parameter | Type | Default | Description |
|---|---|---|---|
channels | Array of strings | (required) | Twitch channel names or URLs to scrape |
category | String | "" | Optional game/category to browse for discovering streamers |
maxResults | Integer | 50 | Maximum number of channels to return |
includeClips | Boolean | false | Whether to scrape top clips per channel |
maxClipsPerChannel | Integer | 20 | Max clips to fetch per channel (when clips are enabled) |
proxyConfiguration | Object | Apify Proxy | Proxy 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 ChattingLeague of LegendsFortniteVALORANTMinecraftGrand Theft Auto VApex LegendsCounter-StrikeArtMusicScience & TechnologySoftware 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:
-
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.
-
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.
-
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. -
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.
-
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
| Channels | Clips Enabled | Est. Time | Est. Cost |
|---|---|---|---|
| 10 | No | ~30s | $0.04 |
| 50 | No | ~2 min | $0.20 |
| 100 | Yes (20/ch) | ~5 min | $0.40 |
| 500 | No | ~15 min | $2.00 |
| 1000 | Yes (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
maxResultsvalues. - 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.
Related Actors
- YouTube Scraper — YouTube video data
- YouTube Channel Scraper — Channel analytics
- TikTok Scraper — Short-form video data
- Twitter Scraper — Twitter/X posts
- Social Media Brand Monitor — Cross-platform monitoring