Twitch Channel Scraper
Pricing
from $4.00 / 1,000 channel scrapeds
Twitch Channel Scraper
Scrape public Twitch channels by username or URL: profile, live status, follower count, partner or affiliate type, recent videos (VODs) and top clips. No login needed.
Pricing
from $4.00 / 1,000 channel scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
6
Total users
4
Monthly active users
2 days ago
Last modified
Categories
Share
What is Twitch Channel Scraper?
Twitch Channel Scraper turns a list of Twitch usernames or channel URLs into one structured dataset row per channel. Each row returns the profile (login, display name, channel ID, bio, creation date, account age), partner or affiliate status, follower count, live status with stream title and game, the last broadcast, recent videos (VODs) with view counts and durations, top clips for a time window you choose, and branding images. Influencer marketers, esports analysts, sponsorship teams and AI agents use it to size up creators and track their activity, with no login.
Why marketers choose this Twitch scraper
- One row per creator. Profile, audience, live state, VODs and clips arrive together, ready for a spreadsheet or CRM.
- Live or offline, always useful. When a channel is live you get the live title and game; when offline you get the last-set title, category and
lastBroadcastStartedAt. - Recent VODs.
recentVideoslists the newest broadcasts withviewCount,durationSeconds,publishedAtandgame. - Top clips by window.
clipsPeriodrankstopClipsover the last day, week, month or all time. - Lean mode for agents.
responseFormat: "concise"drops images, videos and clips for a compact payload. - Clear status per channel.
foundmarks whether each requested channel exists.
Best fit for this Actor
- Best fit for creator vetting, sponsorship scouting, streamer dashboards and gaming market research.
- Designed for lists of known channels you want to compare side by side, once or on a schedule.
- When you are ready to reach out to the creators on your shortlist, continue with Twitch Email Scraper and pass it the same
loginvalues. - For full VOD history and per-video metrics beyond the recent list, use Twitch Videos Scraper after this Actor narrows the list.
Example workflow: from a creator list to a sponsorship shortlist
A gaming brand's partnerships lead starts with thirty candidate streamers in channels, with maxVideos at 10 and clipsPeriod set to LAST_MONTH. The dataset returns each creator's followerCount, broadcasterType, streamGame and recent VOD view counts. They export the rows to a spreadsheet, compare average VOD views against follower count to spot engaged audiences, keep creators who stream the right category, then pass the shortlist to the email step for outreach. A weekly schedule of the same input keeps follower and activity numbers current through the campaign.
Input
{"channels": ["shroud", "pokimane", "https://www.twitch.tv/xqc"],"maxVideos": 10,"maxClips": 10,"clipsPeriod": "LAST_MONTH","responseFormat": "detailed","proxyConfiguration": { "useApifyProxy": true }}
| Field | Type | What it controls |
|---|---|---|
channels | array of strings | Twitch usernames or channel URLs. Required. |
maxVideos | integer | Recent VODs per channel. Default 10; 0 skips videos. |
maxClips | integer | Top clips per channel. Default 10; 0 skips clips. |
clipsPeriod | string | LAST_DAY, LAST_WEEK, LAST_MONTH (default) or ALL_TIME. |
responseFormat | string | detailed (default) or concise. |
proxyConfiguration | object | Apify Proxy settings. |
Output
| Field | What it contains |
|---|---|
channelUrl, login, channelId, displayName, description | Channel identity and bio |
createdAt, accountAgeYears | Account creation date and age |
isPartner, isAffiliate, broadcasterType | Monetization status |
followerCount | Total followers |
isLive, streamTitle, streamGame | Live state with the live or last-set title and category |
streamViewers, streamStartedAt, streamType | Live stream details, present while the channel is live |
lastBroadcastTitle, lastBroadcastStartedAt | Most recent broadcast |
recentVideos | VODs with id, title, viewCount, durationSeconds, publishedAt, game, url |
topClips | Clips with slug, title, viewCount, durationSeconds, createdAt, url |
primaryColorHex, profileImageUrl, bannerImageUrl, offlineImageUrl | Branding |
found, scrapedAt | Whether the channel exists, and collection time |
{"channelUrl": "https://www.twitch.tv/shroud","login": "shroud","channelId": "37402112","displayName": "shroud","description": "I'm back baby","createdAt": "2012-11-03T15:50:32.87847Z","accountAgeYears": 13.9,"isPartner": true,"isAffiliate": false,"broadcasterType": "partner","followerCount": 11293035,"isLive": false,"streamTitle": "ITS FINALLY GLOBAL LETS PLAY WITH GOOD PING :)","streamGame": "AION 2","lastBroadcastTitle": "ITS FINALLY GLOBAL LETS PLAY WITH GOOD PING :)","lastBroadcastStartedAt": "2026-09-30T23:49:26.551709Z","found": true,"scrapedAt": "2026-10-01T13:36:11.898Z","primaryColorHex": "#00ADFF","profileImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/c754eebf-745b-4e0a-814a-10bcaecaabbc-profile_image-300x300.png","bannerImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/dbee25e8-55b7-4565-87f0-e9d4661dcc66-profile_banner-480.jpeg","offlineImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/0e68b939-5868-4ee5-b2b8-fdb51521c84d-channel_offline_image-1920x1080.jpeg","recentVideos": [{"id": "2888211641","title": "ITS FINALLY GLOBAL LETS PLAY WITH GOOD PING :)","viewCount": 390047,"durationSeconds": 22246,"publishedAt": "2026-09-30T17:38:37Z","game": "AION 2","url": "https://www.twitch.tv/videos/2888211641"}],"topClips": [{"slug": "PiercingRealMosquitoHotPokket-zJo00ZiWNByiM5bw","title": "Shroud Wardogs Settings 09102026","viewCount": 21420,"durationSeconds": 41,"createdAt": "2026-09-11T04:22:56Z","url": "https://clips.twitch.tv/PiercingRealMosquitoHotPokket-zJo00ZiWNByiM5bw"}]}
Pricing
This Actor uses Pay per event plus Apify platform usage. The events are Actor Start (once per run) and Channel scraped (one per existing channel returned). Channels marked found: false carry no channel event. For example, a list of 100 creators that all exist is one start event plus 100 channel events, plus the platform usage of the job. The live Pricing tab on this page shows the current price of each event.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~twitch-channel-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"channels": ["shroud", "pokimane"], "maxVideos": 5, "maxClips": 5}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/twitch-channel-scraper").call(run_input={"channels": ["shroud", "pokimane"], "maxVideos": 5})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["displayName"], item["followerCount"], item["isLive"])
Use with AI agents (MCP)
The Actor is available through Apify MCP for Claude, ChatGPT, Cursor and other MCP clients. Example prompt:
Check these Twitch channels: shroud, pokimane, xqc. For each, tell me the follower count, whether they are live, what they streamed last, and the average views of their last five VODs.
The agent sends the channel list with maxVideos at 5, reads rows with get-dataset-items, and averages viewCount across recentVideos. Keep channelUrl and scrapedAt with each answer for provenance, since live status and counts reflect collection time. For cost and scope, use responseFormat: "concise" when the question needs only profile and live data.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A long creator list for a quick size check | Use concise format with maxVideos and maxClips at 0 | Compact profile and audience rows |
| Engagement vetting | Set maxVideos to 10 or more | Enough VOD views to judge typical reach |
| Viral moment research | Set clipsPeriod to LAST_WEEK | The clips driving attention right now |
| Live-status dashboard | Schedule frequent jobs with concise format | Fresh isLive and streamGame per channel |
| Mixed URLs and usernames | Paste both into channels | Each normalized to its login |
Works with public Twitch channels; subscriber-only and private data sit outside its public-data scope.
Builder's note
I designed this around a single row per creator because sponsorship and research decisions compare people, not individual videos. I found that a channel's recent VOD views say more about real reach than follower count alone, so recentVideos is on by default, and the concise format exists for agents that only need to know who is live and how big they are.
FAQ
Do I need a Twitch account or API key?
No. The Actor reads Twitch's public web data with no login.
Does it return live viewer counts?
Yes. While a channel is live, streamViewers holds the viewer count at collection time.
What happens with a channel that does not exist?
You get a row with found: false, and that row carries no channel event.
Responsible use
This Actor collects publicly available Twitch data. Use it in line with Twitch's Terms of Service and applicable privacy laws such as the GDPR and CCPA, especially when contacting creators. Twitch is a trademark of Twitch Interactive, Inc.; this independent Actor is not affiliated with or endorsed by Twitch.