Twitch Videos Scraper — VOD Metadata & Metrics avatar

Twitch Videos Scraper — VOD Metadata & Metrics

Pricing

from $4.00 / 1,000 twitch video scrapeds

Go to Apify Store
Twitch Videos Scraper — VOD Metadata & Metrics

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

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

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 channelUrls and get each one's newest archived videos, newest first.
  • Views and length together. viewCount and durationSeconds let you compare reach per hour of streaming.
  • Category on every video. gameId and gameName show what each stream was about.
  • Channel context included. channelFollowerCount, channelDisplayName and channelId ride along on every row, ready for views-to-followers ratios.
  • Two caps for cost control. maxVideosPerChannel and maxTotalVideos bound 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 resultPosition to 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
}
FieldTypeWhat it controls
channelUrlsarray of stringsPublic Twitch channel URLs or bare logins. Required.
maxVideosPerChannelintegerNewest archived videos per channel, from 1 to 100. Default 20.
maxTotalVideosintegerCap on videos saved across the run, from 1 to 500. Default 100.

Output

One row per video.

FieldWhat it contains
videoId, videoUrl, titleVideo identity, link and title
descriptionVideo description, when the streamer sets one
publishedAt, durationSecondsPublish time and length
viewCountViews at collection time
broadcastTypeTwitch video type, such as ARCHIVE
gameId, gameNameGame or category
thumbnailUrlThumbnail image
channelId, channelLogin, channelDisplayName, channelUrl, channelFollowerCountChannel context
input, resultPositionThe channel input and the video's position in its feed
recordType, source, scrapedAtRecord 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 ApifyClient
client = 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"] / 3600
print(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 situationHelpful actionExpected outcome
A long creator listSet maxVideosPerChannel low, such as 10A quick, even sample per channel
Deep history on one channelRaise maxVideosPerChannel toward 100More archived videos from that channel
Sponsorship vettingDivide viewCount by durationSeconds and by channelFollowerCountComparable reach metrics
Category researchGroup rows by gameNameWhat each creator streams most
Ongoing trackingSchedule the same channelUrls weeklyFresh 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.