Twitch Scraper
Pricing
from $1.60 / 1,000 scraped twitch channels
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é
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
2
Monthly active users
11 days ago
Last modified
Categories
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
- Choose Mode based on the Twitch surface you want.
- Add one target per line unless you are using Top live streams or Top games, which can run without targets.
- Set Results per target for search, stream, game, clip, and top-list modes.
- For channel profiles, decide whether to include recent videos and top clips.
- For clips, choose the clip period.
- 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:
channelsgets one public channel profile per channel target.searchChannelssearches Twitch channels by keyword.topStreamsgets top live streams and does not require targets.gameStreamsgets live streams for a game name or game directory URL.topGamesgets top Twitch games and does not require targets.clipsgets clips from channel targets.videosgets 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
- YouTube Channel Scraper ↗ - Export YouTube channel profiles and recent video rows without a YouTube API key.
- Twitter Scraper ↗ - Search Twitter/X posts and export current trending topics.
- TikTok Video Downloader ↗ - Save public TikTok video or audio files with dataset metadata.
- SoundCloud Scraper ↗ - Collect public tracks, artists, playlists, albums, and comments from SoundCloud.
- Reddit Scraper ↗ - Search Reddit posts and comments around a topic or brand.
Made with ❤️ by Maxime Dupré