Twitch Clips Scraper avatar

Twitch Clips Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Twitch Clips Scraper

Twitch Clips Scraper

Scrape top or recent clips from any Twitch channel with view count, duration, thumbnail, and game metadata.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Farhan Febrian Nauval

Farhan Febrian Nauval

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Extract the top clips from any Twitch channel in bulk — clip title, view count, duration, game, creator handle, and full-resolution thumbnail — in a clean structured JSON output.

Why use this actor

  • No account / no login required — just give it a Twitch channel login (or full channel URL).
  • No API key needed — this actor returns the same clip data the Twitch web app shows on the Clips tab.
  • Rich detail — clip title, view count, duration in seconds, the game played at the time, the broadcaster handle, and a high-resolution thumbnail URL ready to embed.
  • Top-clips ranking — clips come back in descending view-count order so the most viral moments are always first.
  • Bulk input — pass a list of channels in one run; one dataset row per clip.
  • Stable JSON output suitable for pipelines, spreadsheets, and databases — every row carries _input, _source, _scrapedAt envelope fields so you can join results back to your input list.

How it works

  1. You provide a list of Twitch channel logins (e.g. xqc) or full channel URLs.
  2. The actor fetches each channel's clips list, paginating until it has up to maxResults clips per channel.
  3. Each clip is flattened into a structured JSON record — title, view count, duration, game, creator, thumbnail.
  4. Results stream into your dataset, ready to download as JSON, CSV, or Excel.

You do not need to manage scrapers, browsers, or rotating IPs — all handled internally.

Input

{
"channels": [
"xqc",
"shroud"
],
"period": "LAST_WEEK",
"maxResults": 20,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["DATACENTER"]
}
}
FieldTypeDescription
channelsarrayList of Twitch channel logins or channel URLs. Both xqc and https://www.twitch.tv/xqc are accepted.
periodstringTime window for the top-clips ranking: LAST_DAY, LAST_WEEK, LAST_MONTH, or ALL_TIME. Defaults to LAST_WEEK.
maxResultsintegerMaximum number of clips returned per channel. Default: 20. Max: 200.
proxyConfigurationobjectApify Proxy settings. Datacenter proxy works for most channels.

Output

Input: xqc, maxResults: 3

{
"_input": "xqc",
"_source": "S1-primary",
"_scrapedAt": "2026-05-18T11:23:35.624365+00:00",
"id": "3942697259",
"slug": "DeliciousDelightfulPicklesWOOP",
"url": "https://www.twitch.tv/xqc/clip/DeliciousDelightfulPicklesWOOP",
"title": "xqc makes the wrong choice",
"viewCount": 943767,
"durationSeconds": 44,
"createdAt": "2020-12-09T19:18:10Z",
"thumbnailURL": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/ce4b4ef1-4e8d-4391-bff6-2bc4c5506a4d/landscape/thumb/thumb-0000000000-1920x1080.jpg",
"broadcaster": {
"id": "71092938",
"login": "xqc",
"displayName": "xQc"
},
"game": {
"id": "65876",
"name": "Cyberpunk 2077"
},
"language": "EN",
"isFeatured": false
}
FieldTypeDescription
_inputstringThe channel login or URL exactly as you supplied it. Use this to join results back to your input list.
_sourcestringInternal tag for the path used to fetch the record. S1-primary means the fastest, richest path; values starting with S2-fallback indicate a fallback was used.
_scrapedAtstringISO-8601 UTC timestamp when the record was scraped.
idstringTwitch's numeric clip ID. Stable across renames.
slugstringHuman-readable clip slug used in the public URL (e.g. DeliciousDelightfulPicklesWOOP).
urlstringCanonical public clip URL — opens the clip in the Twitch web player.
titlestringClip title set by the clipper.
viewCountintegerTotal views on the clip at scrape time.
durationSecondsintegerClip length in seconds (typically 5–60).
createdAtstringISO-8601 UTC timestamp when the clip was first cut.
thumbnailURLstringFull-resolution preview image URL (1920x1080 landscape). Safe to embed in dashboards.
broadcaster.idstringNumeric Twitch user ID of the streamer the clip belongs to.
broadcaster.loginstringStreamer login (URL handle).
broadcaster.displayNamestringStreamer display name with original casing.
game.idstringTwitch's internal game/category ID.
game.namestringGame or category name shown at the moment the clip was cut (e.g. Cyberpunk 2077).
languagestringStream language at the time of the clip (e.g. EN).
isFeaturedbooleantrue if Twitch has flagged this clip as featured on the channel.

Error envelope

Channels that don't exist or fail to fetch return a structured error instead of crashing the run:

{
"_input": "this-channel-does-not-exist-xyz",
"_error": "fetch_failed",
"_errorDetail": "channel not found",
"_scrapedAt": "2026-05-18T11:23:40.012345+00:00"
}

Filter on _error to triage failed rows.

Pricing

This actor is billed per result: $3.50 per 1,000 clips (Tier 3). Each clip returned = 1 result. Errors (channel not found, fetch failures) are not billed.

Other Sosmed Actors

PlatformActorBest for
TwitchTwitch Channel ScraperChannel profile, followers, live status
TwitchTwitch Video Detail ScraperFull VOD detail — title, duration, view count
YouTubeYouTube Shorts ScraperShort-form vertical clips from any channel
InstagramInstagram Account Reels ScraperReels feed for any Instagram handle
ThreadsThreads Account Threads ScraperAll threads posted by a Threads account
BlueskyBluesky Account Posts ScraperPosts feed for any Bluesky handle

Browse the full catalog at apify.com/xtracto.

Notes

  • Clip rankings shift over time — the same channel scraped today vs. tomorrow can return a different set, especially for LAST_DAY and LAST_WEEK periods.
  • Clips persist even after the original VOD is deleted by the streamer, so old viral moments remain reachable.
  • Very new channels with fewer than 5 clips may return an empty result set.
  • viewCount is eventually-consistent and may lag the live counter on twitch.tv by a few minutes.
  • For large jobs (many channels x high maxResults), enable Apify Proxy rotation to avoid per-IP rate limits.