Twitch Channel Scraper avatar

Twitch Channel Scraper

Pricing

from $4.00 / 1,000 channel scrapeds

Go to Apify Store
Twitch Channel Scraper

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

4

Monthly active users

2 days ago

Last modified

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. recentVideos lists the newest broadcasts with viewCount, durationSeconds, publishedAt and game.
  • Top clips by window. clipsPeriod ranks topClips over 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. found marks 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 login values.
  • 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 }
}
FieldTypeWhat it controls
channelsarray of stringsTwitch usernames or channel URLs. Required.
maxVideosintegerRecent VODs per channel. Default 10; 0 skips videos.
maxClipsintegerTop clips per channel. Default 10; 0 skips clips.
clipsPeriodstringLAST_DAY, LAST_WEEK, LAST_MONTH (default) or ALL_TIME.
responseFormatstringdetailed (default) or concise.
proxyConfigurationobjectApify Proxy settings.

Output

FieldWhat it contains
channelUrl, login, channelId, displayName, descriptionChannel identity and bio
createdAt, accountAgeYearsAccount creation date and age
isPartner, isAffiliate, broadcasterTypeMonetization status
followerCountTotal followers
isLive, streamTitle, streamGameLive state with the live or last-set title and category
streamViewers, streamStartedAt, streamTypeLive stream details, present while the channel is live
lastBroadcastTitle, lastBroadcastStartedAtMost recent broadcast
recentVideosVODs with id, title, viewCount, durationSeconds, publishedAt, game, url
topClipsClips with slug, title, viewCount, durationSeconds, createdAt, url
primaryColorHex, profileImageUrl, bannerImageUrl, offlineImageUrlBranding
found, scrapedAtWhether 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 ApifyClient
client = 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 situationHelpful actionExpected outcome
A long creator list for a quick size checkUse concise format with maxVideos and maxClips at 0Compact profile and audience rows
Engagement vettingSet maxVideos to 10 or moreEnough VOD views to judge typical reach
Viral moment researchSet clipsPeriod to LAST_WEEKThe clips driving attention right now
Live-status dashboardSchedule frequent jobs with concise formatFresh isLive and streamGame per channel
Mixed URLs and usernamesPaste both into channelsEach 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.