Twitch Channels & Streams Scraper: Categories, VODs & Clips
Pricing
from $1.00 / 1,000 results
Twitch Channels & Streams Scraper: Categories, VODs & Clips
Collect public Twitch channel profiles, live streams by category, top categories and channel VOD or clip metadata without login.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Philip Kirkbride
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Features
Share
Collect public Twitch data into a clean dataset: channel profiles with follower counts and live status, live streams in a category ranked by viewers, the top categories right now, and a channel's recent videos (VODs) and clips. No Twitch login, developer account or app keys are needed.
What sets it apart: five kinds of Twitch data in one Actor and one flat price of $1 per 1,000 rows; profiles in bulk (up to 1,000 channels in a run) with followers, partner/affiliate status, the current stream and the last broadcast in the same row; and every row collected live at run time.
Use cases
- Creator and influencer research: check follower counts, partner or affiliate status and the last broadcast for a list of channels.
- Live market snapshots: see the top categories and who is streaming in them right now, by language.
- Brand and esports monitoring: schedule profile runs for teams, publishers or sponsors and track followers and live status over time.
- Content analysis: list a channel's recent VODs and clips with titles, durations, views and categories.
- Lead lists for agencies: build a sheet of streamers in a category with their channel links.
Quick start
The Console form is prefilled with profiles mode. An empty input ({}) returns ten public channel profiles (NASA, Monterey Bay Aquarium, Bob Ross, Twitch, Twitch Gaming, Games Done Quick, ESL CS, ESL Dota 2, Riot Games and Rocket League), one row each.
Your own channels:
{"mode": "profiles", "channels": ["nasa", "https://www.twitch.tv/montereyaq"], "maxResults": 20}
Live English streams in one category, most viewers first:
{"mode": "streams", "categoryNames": ["Science & Technology"], "language": "en", "maxResults": 20}
A channel's latest videos:
{"mode": "vods", "channels": ["nasa"], "maxResults": 20}
Modes
Choose one mode per run.
| Mode | What you give | What you get |
|---|---|---|
profiles | channels (or nothing, for the ten sample channels) | One row per channel: profile, followers, partner/affiliate flags, live status, current stream, last broadcast, avatar. |
streams | categoryNames (exact Twitch category names) | Live streams in each category, most viewers first. Optional language. |
categories | nothing | The top categories Twitch lists right now (up to 100), with current viewers and content tags. |
vods | channels | The channel's public videos, newest first. |
clips | channels | The channel's clips, in Twitch's default order. |
Input
| Name | Type | Default | What it does |
|---|---|---|---|
mode | string | profiles | profiles, streams, categories, vods or clips. |
channels | array | ten sample channels in profiles mode | Channel logins, @logins or twitch.tv links. Used by profiles, vods and clips. |
categoryNames | array | none | Exact category names, for example Science & Technology. Used by streams only. |
language | string | empty | Two-letter lowercase stream language such as en or es. Used by streams only. |
maxResults | integer | 20 | Total rows for the run, from 1 to 1,000. Listing modes return at most 100 rows per channel or category. |
A field that does not apply to the chosen mode (for example categoryNames in vods mode), an unknown field or a malformed login stops the run at once with a message naming it. Repeated channels are read once.
Output
Every row has rowType (channel, stream, category, vod or clip), id and a url on twitch.tv. Dates are ISO 8601; missing values are null. The same item is delivered once per run.
| Row type | Fields |
|---|---|
channel | login, displayName, description, avatarUrl, followersCount, isPartner, isAffiliate, isLive, current streamId, title, viewersCount, startedAt, categoryId, categoryName, and lastBroadcastId, lastBroadcastTitle, lastBroadcastStartedAt |
stream | login, displayName, streamId, title, viewersCount, startedAt, categoryId, categoryName |
category | name, viewersCount, tags |
vod | login, title, durationSeconds, viewsCount, createdAt, categoryName |
clip | the vod fields plus slug |
Output example
A channel row (example values from a real run):
{"rowType": "channel", "id": "151920918", "url": "https://www.twitch.tv/nasa", "login": "nasa", "displayName": "NASA", "description": "Explore the universe and discover our home planet with the official NASA channel on Twitch. ", "avatarUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/8dbb66f7-0b18-4ca6-b0be-7e53aa7bf50b-profile_image-300x300.png", "followersCount": 1894574, "isPartner": true, "isAffiliate": false, "isLive": false, "lastBroadcastId": "320470471518", "lastBroadcastTitle": "U.S. Spacewalk 100", "lastBroadcastStartedAt": "2026-10-02T01:51:52.089314Z", "streamId": null, "title": null, "viewersCount": null, "startedAt": null, "categoryId": null, "categoryName": null}
A video row:
{"rowType": "vod", "id": "2889241879", "url": "https://www.twitch.tv/videos/2889241879", "login": "nasa", "title": "NASA's SpaceX Crew-13 Arrival & Welcome Remarks", "durationSeconds": 16551, "viewsCount": 300612, "createdAt": "2026-10-01T21:15:58Z", "categoryName": "Science & Technology"}
Pricing
| Event | Price |
|---|---|
| Row delivered (any row type) | $1.00 per 1,000 rows ($0.001 each) |
| Run start | $0.005 |
The run-start event is charged per GB of memory, rounded up; the default 512 MB run is one start event. Platform usage is included.
Worked examples: the empty-input run (10 profiles) costs about $0.015; 1,000 channel profiles ≈ $1.01 (1,000 × $0.001 + $0.005).
Scheduling and monitoring
Save a task with your channels and schedule it daily or hourly to build a history of followers, live status and viewers. Compare rows across runs by id. For live market snapshots, schedule categories or streams runs at the hours you care about; each run is a point-in-time view.
FAQ
How many results per category or channel? Up to 100 per channel or category in a run (the first page Twitch lists). Profiles have no per-target limit: up to 1,000 channels per run.
Is the data live? Yes. Viewer counts, live status and followers are read when the run happens.
Which formats can I export? JSON, CSV, Excel or XML from the dataset, or read the rows through the Apify API and integrations.
What if a channel does not exist? It is named in the run status. If other targets returned rows, the run succeeds with them; if nothing was delivered, the run fails with the reason. A category with nobody live succeeds with zero rows.
How long does a run take? Usually seconds. The default timeout is 5 minutes; a run that reaches it keeps the rows already saved and lists the targets it did not reach.
Limits
- Metadata only: no chat, viewer lists, follower or following lists, social links, subscriber-only content, or video and audio downloads. A video row does not mean the video can be played without restrictions.
- Listing modes return the first 100 rows per channel or category; older videos and clips beyond that are not collected.
- Only public channels and content.