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

5

Total users

2

Monthly active users

11 days ago

Last modified

Share

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

Twitch Scraper collects public Twitch data from channels, channel search, top live streams, game directories, top games, clips, and VOD pages. Use it when you need repeatable Twitch metadata for creator research, live-stream monitoring, game discovery, content planning, or exports into your own tools without using a Twitch API key.

  • Build Twitch creator lists with profile fields, follower counts when available, partner flags, affiliate flags, live status, and recent broadcast details.
  • Monitor top Twitch live streams with stream titles, viewer counts, games, broadcaster details, preview images, tags, and source rankings.
  • Track Twitch game directories by scraping live streams for a game name or game directory URL.
  • Export Twitch clips metadata from public channel clips for a selected time period.
  • Enrich Twitch VOD metadata from public Twitch video URLs or video IDs.

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.

📦 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, profile image URL, banner image URL, follower count when Twitch exposes it, partner and affiliate flags, live status, viewers, stream title, current game, start time, channel creation date, last broadcast details, optional recent VODs, and optional top clips.

Stream rows can include stream ID, title, viewer count, game, start time, preview image URL, broadcaster profile details, tags, source URL, and source ranking.

Game rows can include game ID, display name, viewer count, broadcaster count, box art URL, tags, source URL, and source ranking.

Clip and video rows can include clip or video ID, title, views, duration, creation date, thumbnail URL, public URL, game details, broadcaster details, and 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

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 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.

🔌 Integrations

  • Call the Actor with the Apify API when you need Twitch data inside your own app or pipeline.
  • Schedule recurring runs to monitor stream, game, clip, or creator changes.
  • Export datasets as JSON, CSV, Excel, XML, RSS, or HTML from Apify.
  • Connect finished runs to webhooks, dashboards, spreadsheets, BI tools, or data warehouses.

❓ 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.

🕹️ Can I scrape streams for a specific Twitch game?

Yes. Use Streams by game and enter a game name such as Just Chatting or a Twitch game directory URL.

📹 Can I scrape Twitch VOD metadata?

Yes. Use VOD metadata with public Twitch video URLs or video IDs. The Actor returns metadata rows and source URLs, not downloaded video files.

🧠 Why not use the Twitch API?

Use the Twitch API when you want to build against Twitch's official developer platform and can manage app setup, auth, quotas, and API-specific responses. Use this Actor when you want a no-key Apify workflow for public Twitch metadata, scheduled exports, datasets, and integrations.

🔁 What are Twitch alternatives?

For adjacent public creator and media research, you can use YouTube, TikTok, Twitter/X, Reddit, SoundCloud, or other platform-specific Apify actors depending on the source you need.

📝 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é