Twitch Scraper: Channels, Live Streams, VODs & Chat · Apify
Twitch Scraper | Channels, Live Streams, VODs & Chat avatar

Twitch Scraper | Channels, Live Streams, VODs & Chat

Pricing

from $2.00 / 1,000 channels

Go to Apify Store
Twitch Scraper | Channels, Live Streams, VODs & Chat

Twitch Scraper | Channels, Live Streams, VODs & Chat

Scrape Twitch channels by username, keyword or game, or the top live streams right now: followers, live viewers, stream title and tags, bio, business emails, socials and panel links. Add VODs, top clips and full chat replays. No login.

Pricing

from $2.00 / 1,000 channels

Rating

0.0

(0)

Developer

FalconScrape

FalconScrape

Maintained by Community

Actor stats

1

Bookmarked

16

Total users

9

Monthly active users

3 days ago

Last modified

Features

Limited permissions

Share

🚀 Twitch Scraper | Channels, Live Streams, VODs & Chat

Get Twitch stats for any channel without an account or API key. This Twitch scraper collects channels by username, keyword search, game category (the top streamers live there right now) or the top live streams on all of Twitch, and returns follower count, live status and viewer count, last stream, bio, business emails and panel links. Add each channel's VODs and top clips, and export the full chat logs of any past broadcast, as JSON, CSV or Excel.

🎯 Use Cases

  • Track Twitch stats over time: schedule a run and log follower count, live viewers and stream titles for the channels you follow, your own Twitch analytics without a dashboard subscription.
  • Find the top streamers in any game: list the most-watched live channels in Fortnite, Just Chatting or any category, or across all of Twitch, per stream language.
  • Export Twitch chat logs: download every chat message of a past broadcast with its time in the VOD, user and badges, for moderation reviews, sentiment analysis or highlight finding.
  • Influencer outreach with Twitch emails: collect business emails from bios and About panels, plus merch, tip and sponsor links, to build a streamer contact list.
  • Analyse Twitch VODs and clips: see which past broadcasts and clips get the most views, how long streams run and which games a channel plays.
  • Replace a Twitch API integration: get public channel data as a dataset or API call, with no app registration or OAuth tokens.

✨ Features

  • Channel profiles: follower count, partner and affiliate status, language, bio, profile and banner images, account creation date and total video count.
  • Live status and viewers: whether the channel is live, the stream title, game, viewer count, start time and tags, plus the last stream's date, title and game.
  • Contacts for outreach: business emails found in the bio and About panels, the channel's linked socials (socialLinks: YouTube, X, Instagram, TikTok, Discord…) and every panel link (merch, tips, sponsors).
  • Channel search: up to 100 channels per keyword.
  • Top streamers by game: the most-watched live channels in any category, paged as deep as you set Max items (up to 2,000 per category and language), with one list per stream language you add. Filter by follower count to find smaller streamers.
  • Top live streams: the most-watched live channels on all of Twitch right now (the top 30, or as many as Max items), overall or per stream language, no input needed. Each row has its rank in the list.
  • Twitch VODs: every past broadcast, highlight and upload a channel lists, newest first, with views, duration, game and publish date.
  • Top clips: most-viewed clips of all time, or of the last month, week or day, with views, duration, who clipped them and the VOD moment they came from.
  • Chat logs (chat replay): every chat message of a past broadcast with its time in the video, user, badges and emotes.
  • No duplicates: a channel, video or clip found through several searches or games is saved and charged once.
  • Fair billing: channels, games and videos that don't exist are skipped and not charged, and the run stops cleanly at your maximum cost per run.
  • No login: no Twitch account or API key needed.

🛠️ How It Works

  1. Add channels, search keywords or games, or tick Top live streams, in any mix, one per line. Channels work as shroud, @shroud or https://www.twitch.tv/shroud. Optionally set videos and clips per channel, or paste VOD URLs for chat logs.
  2. Set Max items: the cap for channels, videos and clips across the whole run (50 in the form). Channels are taken from your lists in turn, so one search can't use up the whole limit.
  3. Run the scraper. Rows land in the dataset, ready to download or to fetch via API, webhook or a scheduled run.

⚙️ Input

FieldWhat it does
Channels (channels)Usernames or channel URLs (also mobile, popout, embed and player links). Several on one line work too: shroud, pokimane.
Search channels (searchQueries)Keywords to find channels, e.g. valorant, cooking. Up to 100 channels per keyword.
Games / categories (games)Game or category names (Fortnite, Just Chatting) or category URLs. Returns the channels live there now, most-watched first: Twitch's first page (about 100) without Max items, as many as Max items with it (up to 2,000 per category and language).
Top live streams (topLiveStreams)true adds the most-watched live channels on all of Twitch right now: the top 30 without Max items, as many as Max items with it, per language when you set languages.
Stream languages (languages)Optional languages for the games and top live streams: codes such as en, es, de, ja, ko, zh_hk, or names such as Spanish. Each language returns its own list.
Videos per channel (videosPerChannel)Past broadcasts, highlights and uploads per channel, newest first. Default 0 = none. Up to every video the channel lists (shroud: 1,616).
Clips per channel (clipsPerChannel)Top clips per channel, most-viewed first. Default 0 = none. Twitch lists about 1,000 per period.
Clips period (clipPeriod)ALL_TIME (default), LAST_MONTH, LAST_WEEK or LAST_DAY.
Chat replay: video URLs (chatVideoUrls)VOD URLs (https://www.twitch.tv/videos/2890960011) or IDs for chat logs.
Max chat messages per video (maxChatMessagesPerVideo)Stop each chat replay after this many messages. Default 1000, 0 = the whole chat.
Min / Max followers (minFollowers, maxFollowers)Only save channels in this follower range; the rest are skipped and not charged.
Max items (maxItems)Maximum channels + videos + clips for the whole run. 0 = no limit (live lists then stop at 2,000 per list and language). Left out (API), there is no total limit and live lists stop at Twitch's first page. Chat messages are limited by the setting above.
{
"games": ["Just Chatting"],
"languages": ["en", "es"],
"videosPerChannel": 10,
"maxItems": 500
}

The top live streams in English and Spanish, with their stream titles, games, viewers and tags:

{
"topLiveStreams": true,
"languages": ["en", "es"],
"maxItems": 60
}

An empty input runs a small example with shroud and pokimane.

💰 Pricing

Pay only for what you get, with no monthly rental.

EventPriceWhat you get
Channel$0.002 per channel ($2.00 per 1,000)One channel with profile, followers, live status, emails and links
Video$0.0005 per video ($0.50 per 1,000)One past broadcast, highlight or upload
Clip$0.0005 per clip ($0.50 per 1,000)One clip
Chat message$0.00002 per message ($0.02 per 1,000)One chat replay message
Actor start$0.00005 per runCharged once when the run starts

Examples:

  • 100 channels = $0.20.
  • 100 channels with their 10 newest VODs each = $0.20 + $0.50 = $0.70.
  • The full chat log of a busy 3-hour broadcast (about 2,500 messages) = about $0.05.

📊 Sample Output: Twitch Stats, VODs, Clips and Chat Logs

Every row has a type: channel, video, clip or chatMessage. The Output tab has a separate view for each. A channel found through the Fortnite category (panels shortened):

{
"type": "channel",
"id": "41245072",
"login": "loserfruit",
"displayName": "Loserfruit",
"url": "https://www.twitch.tv/loserfruit",
"description": "\"The streamer to watch when no one else is live....\" - Thomas Jefferson",
"followers": 3048541,
"isPartner": true,
"isAffiliate": false,
"language": "en",
"isLive": true,
"streamTitle": "Final Update of Season 4 | Obsession + Honey Sprite",
"streamGame": "Fortnite",
"viewers": 527,
"streamStartedAt": "2026-10-15T09:44:02Z",
"streamTags": ["English", "Australian", "crashout", "spritehunting", "giftsubsplease"],
"lastStreamAt": "2026-10-15T09:44:07.578082Z",
"lastStreamTitle": "Final Update of Season 4 | Obsession + Honey Sprite",
"lastStreamGame": "Fortnite",
"videoCount": 104,
"emails": ["business@loserfruit.com", "loserfruit@gmail.com"],
"socialLinks": [
{ "name": "discord", "title": "Discord", "url": "https://discord.gg/loserfruit" },
{ "name": "youtube", "title": "YouTube", "url": "https://www.youtube.com/user/TheLoserfruit" },
{ "name": "instagram", "title": "Instagram", "url": "https://www.instagram.com/loserfruit/" }
],
"panelLinks": [
"https://geni.us/lufu",
"https://www.youtube.com/@GetRolledDND",
"https://teampwr.gg/",
"https://musclenation.org",
"https://rog.gg/LufuDuo"
],
"panels": [
{ "title": null, "description": null, "url": "https://geni.us/lufu" },
{
"title": null,
"description": "… got business? send emails here...\nbusiness@loserfruit.com\nanything else?\nloserfruit@gmail.com (just me)",
"url": null
},
"…"
],
"profileImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/210e4120-b337-4ee1-af9b-731cccfca85c-profile_image-300x300.png",
"bannerImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/447dc6f3-4588-4621-9aee-0032191d5474-profile_banner-480.jpeg",
"createdAt": "2013-03-11T22:01:35.739177Z",
"source": "game",
"sourceQuery": "Fortnite",
"rank": 12,
"scrapedAt": "2026-10-15T10:03:32.473Z"
}

A VOD, a clip and a chat message:

[
{
"type": "video",
"id": "2890960011",
"url": "https://www.twitch.tv/videos/2890960011",
"title": "grinding to 2100 + crafting perhaps",
"channel": "shroud",
"videoType": "archive",
"views": 3970,
"durationSeconds": 44292,
"game": "AION 2",
"language": "en",
"description": null,
"publishedAt": "2026-10-03T18:18:00Z",
"thumbnailUrl": "https://static-cdn.jtvnw.net/cf_vods/…/thumb0-640x360.jpg",
"scrapedAt": "2026-10-04T15:30:33.667Z"
},
{
"type": "clip",
"id": "3384387663",
"slug": "StylishQuaintWoodpeckerResidentSleeper-431DngfrzjaQchSs",
"url": "https://www.twitch.tv/pokimane/clip/StylishQuaintWoodpeckerResidentSleeper-431DngfrzjaQchSs",
"title": "wow",
"channel": "pokimane",
"views": 488732,
"durationSeconds": 35,
"game": "Just Chatting",
"language": "en",
"clippedBy": "response97",
"createdAt": "2022-09-01T19:22:23Z",
"vodId": "1578987447",
"vodOffsetSeconds": 1829,
"thumbnailUrl": "https://static-cdn.jtvnw.net/twitch-video-assets/…/thumb-0000000000-1920x1080.jpg",
"scrapedAt": "2026-10-20T15:21:35.142Z"
},
{
"type": "chatMessage",
"id": "1d66272e-b99f-46e8-8c18-3bfd7c6ae600",
"videoId": "2890960011",
"channel": "shroud",
"offsetSeconds": 17,
"postedAt": "2026-10-03T18:18:18.943Z",
"username": "izzy_tv",
"displayName": "izzy_tv",
"userId": "60978459",
"message": "OY",
"emoteIds": [],
"badges": ["subscriber/0", "nopixel-v-launch/1"],
"userColor": "#FFCB00",
"videoTitle": "grinding to 2100 + crafting perhaps"
}
]
FieldDescription
followers, videoCountTotals at the time of the run.
isLive, viewers, streamGameThe live stream right now; null when the channel is offline.
emailsEmail addresses written in the bio or About panels.
panelLinks, panelsEvery link from the channel's About panels, and each panel's text.
videoTypearchive (past broadcast), highlight or upload.
vodId, vodOffsetSecondsThe VOD a clip was cut from and the second it starts at.
offsetSecondsWhen the chat message was sent, in seconds from the start of the video.
source, sourceQueryHow the channel was found: channel, search, game or top (top live streams), and which keyword, game or language.
rankThe channel's position in its search, game or top live list (most-watched first for live lists); null for channels you entered.

🔁 Schedule Twitch Stats Tracking and Integrate

Live data is a snapshot, so run it on a schedule to turn it into Twitch analytics: hourly to track viewer count and live status, daily to track follower count and new VODs, and once after each broadcast to save its chat log. Set it up in Apify Schedules, keeping the same input so every run is a dated row you can compare. Send the results to Google Sheets, Zapier, Make, n8n or a webhook with Apify integrations, so new stats land where your team already works.

🤖 Use with AI Agents (MCP)

This Actor works as a tool in Claude, ChatGPT, Cursor and other MCP clients through the Apify MCP server (https://mcp.apify.com). An agent can call it with:

{ "games": ["Valorant"], "languages": ["en"], "maxItems": 20 }

❓ Twitch Stats and API FAQ

Does Twitch have an official API? Yes, the Twitch Helix API. To use it you register an application, get a client ID and an OAuth token, and stay within its rate limits. It doesn't return some data that public Twitch pages show, such as a past broadcast's chat replay or a channel's About panels. This Actor needs no key, app or token and returns that data in one dataset: channel stats, VODs, clips, panel links and chat logs.

Can I export the chat logs of a Twitch VOD? Yes. Paste the VOD URL in Chat replay and set Max chat messages per video to 0 for the whole chat. Each message comes with its time in the video, the user, badges and emote IDs. It works for past broadcasts that are still available; in extremely busy seconds a few messages may be missed.

How do I find the top streamers in a game? Add the game or category name, e.g. Fortnite. You get its most-watched live channels right now: set Max items for as many as you need (up to 2,000 per language). Add stream languages for one list per language, and Min / Max followers to keep only streamers of a certain size.

How do I get the top live streams on Twitch? Tick Top live streams ("topLiveStreams": true). You get the most-watched live channels on all of Twitch right now, with stream title, game, viewers, start time and tags. Set Max items for more than the top 30, and stream languages for a list per language.

Do I need a Twitch account? No. Everything comes from public channel pages.

Why is a field empty? viewers, streamTitle and streamGame are null when the channel is offline. emails is empty when the channel writes no address in its bio or panels, and panel title or description is null for image-only panels. videoCount can occasionally be null when Twitch doesn't return it.

Are there limits? Search returns up to 100 channels per keyword. Live lists (games and top streams) go up to 2,000 channels per list and language, and Twitch itself stops a category's list at about 1,300 (Just Chatting: about 1,300 of 5,000+ live): add languages for more. VODs: every video the channel lists, newest first (shroud: 1,616). Clips: about 1,000 per period. The run's status message says when a list or channel had more than the run read.