Twitch Scraper avatar

Twitch Scraper

Pricing

from $1.60 / 1,000 scraped twitch channels

Go to Apify Store
Twitch Scraper

Twitch Scraper

Scrape public Twitch channel profiles, live streams, games, clips, and VOD metadata. Export source URLs, public metrics, media URLs, and timestamps.

Pricing

from $1.60 / 1,000 scraped twitch channels

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

🎮 Twitch scraper for channels, streams, games, clips, and VODs

Twitch Scraper collects public data from Twitch channels, live streams, games, clips, and VOD pages. Add channel URLs, usernames, game names, game directory URLs, VOD URLs, or VOD IDs, then export rows with profile fields, live status, viewer counts, media URLs, source URLs, and scrape timestamps.

Use this Twitch scraper for creator research, live-stream monitoring, game discovery, clip tracking, VOD enrichment, or repeatable Twitch data feeds. It works with public Twitch surfaces and does not ask for cookies, a login, or a Twitch API key.

For a small first run, keep Mode set to Top live streams and start the Actor. Switch to Channel profiles with a target such as https://www.twitch.tv/shroud when you want one channel profile.

✅ What this Actor does

  • Scrapes Twitch channel profiles.
  • Searches Twitch channels by keyword.
  • Scrapes top live streams.
  • Scrapes live streams for a game or game directory.
  • Scrapes top games.
  • Scrapes clips from a channel for a selected time period.
  • Scrapes public VOD metadata from Twitch video URLs or IDs.
  • Saves one dataset row per Twitch result.
  • Adds source fields so every row can be traced back to the input.
  • Stops at your selected result limits and skips unavailable public items.

This Actor focuses on public Twitch metadata. It does not download videos, scrape private chat, log in, bypass subscriber-only content, or collect hidden data.

📦 Data you can export

Every row includes rowType, sourceMode, sourceTarget, sourceRank, sourceUrl, and scrapedAt. Other fields depend on the Twitch surface you scrape.

Channel rows can include:

  • Channel ID, login, display name, description, and URL
  • Profile and banner image URLs
  • Follower count when Twitch exposes it
  • Partner and affiliate flags
  • Live status, viewers, stream title, current game, and start time
  • Channel creation date
  • Last broadcast title, game, and date
  • Optional recent VODs and top clips

Stream rows can include:

  • Stream ID, title, viewer count, game, start time, and preview image URL
  • Broadcaster profile details
  • Tags and source ranking

Game rows can include:

  • Game ID, display name, viewer count, broadcaster count, box art URL, and tags

Clip and video rows can include:

  • Clip or video ID, title, views, duration, creation date, thumbnail URL, and URL
  • Game details
  • Broadcaster details
  • Curator details for clips

Unavailable fields are saved as null or empty arrays instead of guessed values.

🚀 How to run

  1. Choose Mode based on the Twitch surface you want.
  2. Add one target per line unless you are using Top live streams or Top games, which can run without targets.
  3. Set Results per target for search, stream, game, clip, and top-list modes.
  4. For channel profiles, decide whether to include recent videos and top clips.
  5. For clips, choose the clip period.
  6. Run the Actor and open the dataset.

Start with one or two targets and a low result limit when testing a new workflow.

🔎 Input options

mode controls what the Actor collects:

  • channels gets one public channel profile per channel target.
  • searchChannels searches Twitch channels by keyword.
  • topStreams gets top live streams and does not require targets.
  • gameStreams gets live streams for a game name or game directory URL.
  • topGames gets top Twitch games and does not require targets.
  • clips gets clips from channel targets.
  • videos gets one VOD metadata row per VOD URL or ID.

targets accepts values for the selected mode: usernames such as shroud, channel URLs such as https://www.twitch.tv/shroud, game names such as Just Chatting, game directory URLs, VOD URLs, or VOD IDs.

maxResults limits rows per target for browse and search modes. Twitch browse surfaces are capped at 30 results per target.

clipPeriod controls the clip time range.

includeRecentVideos, includeTopClips, recentVideosLimit, and topClipsLimit control optional channel enrichment.

Example input:

{
"mode": "channels",
"targets": ["https://www.twitch.tv/shroud"],
"maxResults": 30,
"clipPeriod": "LAST_WEEK",
"includeRecentVideos": true,
"includeTopClips": false,
"recentVideosLimit": 5,
"topClipsLimit": 5
}

📄 Output example

{
"rowType": "channel",
"sourceMode": "channels",
"sourceTarget": "https://www.twitch.tv/shroud",
"sourceRank": 1,
"sourceUrl": "https://www.twitch.tv/shroud",
"id": "37402112",
"login": "shroud",
"displayName": "shroud",
"profileImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/example-profile_image-300x300.png",
"bannerImageUrl": "https://static-cdn.jtvnw.net/jtv_user_pictures/example-channel_offline_image.png",
"followersCount": 10000000,
"isPartner": true,
"isAffiliate": false,
"isLive": true,
"currentViewers": 25000,
"streamTitle": "Live stream title",
"currentGame": "Just Chatting",
"startedAt": "2026-05-27T12:00:00.000Z",
"createdAt": "2011-11-22T00:00:00.000Z",
"lastBroadcastTitle": "Previous broadcast title",
"lastBroadcastGame": "Marvel Rivals",
"lastBroadcastDate": "2026-05-26T21:10:00.000Z",
"recentVideos": [
{
"id": "1234567890",
"title": "Recent VOD title",
"url": "https://www.twitch.tv/videos/1234567890",
"createdAt": "2026-05-26T21:10:00.000Z",
"durationSeconds": 5400,
"viewCount": 123456
}
],
"topClips": [],
"scrapedAt": "2026-05-27T12:30:00.000Z"
}

💳 Pricing

This Actor uses pay-per-event pricing. Channel profile rows use the channel event because they can include richer profile and enrichment data. Stream, game, clip, and video rows use the lighter Twitch item event.

You only pay for rows that are successfully saved to the dataset. Unavailable channels, missing videos, and empty searches do not create paid output rows.

💡 Common use cases

  • Build creator lists with profile, follower, and live-status fields.
  • Monitor live streams for a game, category, or competitor set.
  • Track games and streamers gaining attention.
  • Export clips and VOD metadata for content research.
  • Enrich a CRM or creator database with Twitch profile fields.
  • Schedule recurring exports into Apify integrations, webhooks, spreadsheets, or BI tools.

⚠️ Limits and notes

  • The Actor uses public Twitch data, so fields can be missing when Twitch does not expose them.
  • Top streams, top games, channel search, game streams, and clips are capped at 30 rows per target.
  • channels mode saves one channel row per valid target.
  • videos mode saves one VOD row per valid VOD URL or ID.
  • Clip URLs are not input targets. Use a channel target and choose a clip period.
  • Results can change quickly because Twitch live streams, viewer counts, games, clips, and VOD availability change throughout the day.

❓ FAQ

🔑 Do I need a Twitch API key?

No. The Actor works with public Twitch surfaces and does not require a Twitch API key, cookies, or login.

📥 Can it download Twitch videos or clips?

No. It exports public metadata and source URLs. It does not download media files.

🎯 Can I run it without targets?

Yes, but only for Top live streams and Top games. Other modes need at least one target.

🧩 Why are some fields empty?

Twitch does not expose every field on every public page. Empty fields are returned as null or empty arrays instead of being guessed.

📝 Changelog

  • 0.0: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

🔗 Other actors

Made with ❤️ by Maxime Dupré