Twitch Videos Scraper — VOD Metadata & Metrics
Pricing
from $4.00 / 1,000 twitch video scrapeds
Twitch Videos Scraper — VOD Metadata & Metrics
Extract public Twitch channel videos (VODs) with titles, descriptions, views, duration, dates, category, thumbnails, and channel metadata. One dataset item per video; no login required.
Pricing
from $4.00 / 1,000 twitch video scrapeds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
What is Twitch Videos Scraper — VOD Metadata & Metrics?
Twitch Videos Scraper — VOD Metadata & Metrics returns one dataset row per public Twitch video (VOD) from the channels you list: video ID and link, title, publish time, duration in seconds, view count, broadcast type, game or category, thumbnail, and channel context including display name and follower count. Influencer marketers, esports and gaming analysts, agencies and AI agents use it to compare streamers' recent output, see which games draw views, and build content inventories, with no Twitch account or login.
Why people use this Twitch VOD scraper
- Recent VODs per channel. List channels in
channelUrlsand get each one's newest archived videos, newest first. - Views and length together.
viewCountanddurationSecondslet you compare reach per hour of streaming. - Category on every video.
gameIdandgameNameshow what each stream was about. - Channel context included.
channelFollowerCount,channelDisplayNameandchannelIdride along on every row, ready for views-to-followers ratios. - Two caps for cost control.
maxVideosPerChannelandmaxTotalVideosbound each channel and the whole run.
Best fit for this Actor
- Best fit for creator vetting, sponsorship research, gaming category analysis and VOD inventories across known channels.
- Designed for public archived videos on channels you name, using channel URLs or bare logins such as
shroud. - Use
resultPositionto keep each channel's videos in Twitch's order, newest first. - When you need a channel's profile, live status and top clips, continue with Twitch Channel Scraper.
- For creator outreach, then use Twitch Email Scraper on the same channels to find their public business contacts.
Example workflow: from a creator shortlist to a sponsorship pick
An influencer agency starts with fifteen streamers in channelUrls, with maxVideosPerChannel at 20 and maxTotalVideos at 300. The dataset returns each VOD's viewCount, durationSeconds, gameName and publishedAt, plus each channel's channelFollowerCount. They compute views per hour and views relative to followers, compare how often each creator streams the client's game category, and export a ranked shortlist to the client deck. A weekly schedule on the same list then shows who is trending up.
Input
{"channelUrls": ["https://www.twitch.tv/shroud", "pokimane"],"maxVideosPerChannel": 20,"maxTotalVideos": 100}
| Field | Type | What it controls |
|---|---|---|
channelUrls | array of strings | Public Twitch channel URLs or bare logins. Required. |
maxVideosPerChannel | integer | Newest archived videos per channel, from 1 to 100. Default 20. |
maxTotalVideos | integer | Cap on videos saved across the run, from 1 to 500. Default 100. |
Output
One row per video.
| Field | What it contains |
|---|---|
videoId, videoUrl, title | Video identity, link and title |
description | Video description, when the streamer sets one |
publishedAt, durationSeconds | Publish time and length |
viewCount | Views at collection time |
broadcastType | Twitch video type, such as ARCHIVE |
gameId, gameName | Game or category |
thumbnailUrl | Thumbnail image |
channelId, channelLogin, channelDisplayName, channelUrl, channelFollowerCount | Channel context |
input, resultPosition | The channel input and the video's position in its feed |
recordType, source, scrapedAt | Record type, data source and collection time |
Example row:
{"recordType": "twitch-video","source": "twitch-web-graphql","input": "https://www.twitch.tv/shroud","channelId": "37402112","channelLogin": "shroud","channelDisplayName": "shroud","channelUrl": "https://www.twitch.tv/shroud","channelFollowerCount": 11293115,"videoId": "2888211641","videoUrl": "https://www.twitch.tv/videos/2888211641","title": "ITS FINALLY GLOBAL LETS PLAY WITH GOOD PING :)","publishedAt": "2026-09-30T17:38:37.000Z","durationSeconds": 22246,"viewCount": 386979,"broadcastType": "ARCHIVE","gameId": "771448419","gameName": "AION 2","thumbnailUrl": "https://static-cdn.jtvnw.net/cf_vods/d2nvs31859zcd8/d105b5c140067be69936_shroud_319408345559_1790789913//thumb/thumb0-640x360.jpg","resultPosition": 1,"scrapedAt": "2026-10-01T01:31:19.111Z"}
Each run also writes OUTPUT and RUN_SUMMARY records to the default key-value store with the run outcome and totals.
Pricing
This Actor uses Pay per event plus Apify platform usage. Each video saved is one Twitch video scraped event, and each run has one Actor Start event plus the platform usage of the run. For example, five channels with maxVideosPerChannel at 20 are up to 100 video events plus the start event and usage. maxTotalVideos caps the whole run, so it doubles as a spending limit. The live Pricing tab on this page shows the current event prices.
API example
curl -X POST "https://api.apify.com/v2/acts/khadinakbar~twitch-videos-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \-H "Content-Type: application/json" \-d '{"channelUrls": ["shroud"], "maxVideosPerChannel": 10, "maxTotalVideos": 10}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("khadinakbar/twitch-videos-scraper").call(run_input={"channelUrls": ["shroud", "pokimane"], "maxVideosPerChannel": 20})for video in client.dataset(run["defaultDatasetId"]).iterate_items():hours = video["durationSeconds"] / 3600print(video["channelLogin"], video["gameName"], round(video["viewCount"] / hours))
Use with AI agents (MCP)
Connect the Actor to Claude, ChatGPT or Cursor through Apify MCP and ask:
Get the last 10 VODs from these three Twitch channels and tell me which games each streamer played and which video had the most views per hour.
The agent passes the channels in channelUrls with maxVideosPerChannel at 10, reads rows with get-dataset-items, groups by channelLogin and gameName, and cites each videoUrl. Each saved video is one event, so maxTotalVideos keeps the cost of the request predictable.
Best results
| Starting situation | Helpful action | Expected outcome |
|---|---|---|
| A long creator list | Set maxVideosPerChannel low, such as 10 | A quick, even sample per channel |
| Deep history on one channel | Raise maxVideosPerChannel toward 100 | More archived videos from that channel |
| Sponsorship vetting | Divide viewCount by durationSeconds and by channelFollowerCount | Comparable reach metrics |
| Category research | Group rows by gameName | What each creator streams most |
| Ongoing tracking | Schedule the same channelUrls weekly | Fresh views and new VODs each run |
Builder's note
I built this for the question sponsors ask first: what has this creator streamed lately, and who watched it. I kept channel follower counts on every video row so reach ratios need no second lookup, and the two caps make it easy to sample many creators evenly before going deep on a few.
FAQ
Do I need a Twitch account?
No. The Actor reads public Twitch data with no login.
Which videos are included?
The newest public archived videos on each channel, up to maxVideosPerChannel.
Are view counts live?
They are the counts at collection time. Re-run the same input to refresh them.
Responsible use
This Actor collects public Twitch video metadata. Respect Twitch's terms and applicable privacy laws, and review data carefully before using it to make decisions about individual creators. Twitch is a trademark of its owner; this independent Actor is not affiliated with or endorsed by Twitch.