Twitch Live Stream, Channel & VOD Metadata Extractor avatar

Twitch Live Stream, Channel & VOD Metadata Extractor

Pricing

from $0.49 / 1,000 results

Go to Apify Store
Twitch Live Stream, Channel & VOD Metadata Extractor

Twitch Live Stream, Channel & VOD Metadata Extractor

Get Twitch top live streams, channel profiles, category directories, VOD metadata and clip details, or resolve any twitch.tv URL into structured data.

Pricing

from $0.49 / 1,000 results

Rating

0.0

(0)

Developer

vexaloom-labs

vexaloom-labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Collect Twitch metadata without a login, OAuth app, or API key: live streams, channel profiles with social links and published schedules, category directories, category VODs, individual VODs and clips, search results, and resolved twitch.tv links. Every record is public data returned in clean JSON, with empty fields omitted.

What this actor does

  • Returns the live directory globally or inside one category, with viewer counts, language, start time, tags, broadcaster followers, partner status, and stream quality details
  • Builds channel profiles with bio, images, follower count, roles, social links, About panels, primary team, upcoming schedule, total VOD count, and emails published in the bio
  • Pages channel VODs and clips deeply, with VOD type/sort and clip period/sort controls
  • Searches Twitch channels, categories, and videos with independent deep pagination for each index
  • Adds category VODs, batch channel/VOD/clip lookup, multi-URL resolution, and category stats on stream records
  • Omits empty values at every depth instead of returning null, empty strings, or empty objects

Modes

ModeWhat you get
topStreamsCurrent live streams across Twitch, with language, tag, viewer, and sort filters
topGamesCategories sorted by current viewers, with follower and broadcaster counts
searchChannels, categories, and videos from Twitch search, with per-index pagination
byChannelOne or more channel profiles, plus optional recent VODs and clips
byCategoryLive streams in a category, with category viewer/follower/broadcaster stats attached
byCategoryVideosVODs for a category, filtered by type, language, and sort order
topClipsTop clips for a category over a chosen time window, sorted by views or trending
byVideoOne or many VODs by numeric ID or VOD URL
byClipOne or many clips by slug or clip URL
byUrlResolves channel, VOD, clip, and category URLs, including /videos and /clips tabs

Output per record

Every record carries a recordType of stream, channel, video, clip, or game, plus scrapedAt. Invalid URLs produce a typed error row, which does not count toward maxItems.

Live stream (recordType: "stream")

FieldDescription
streamIdTwitch stream ID
titleStream title
viewersCountCurrent concurrent viewers
streamTypeBroadcast type
languageBroadcast language code
startedAtStream start timestamp
previewImageURLLive preview thumbnail
channelId / channelName / displayNameBroadcaster identifiers
followersCountBroadcaster follower count
isPartner / isAffiliateBroadcaster role flags, when true
gameId / gameName / gameSlugCategory identifiers
tagsFreeform stream tags
isMatureMature-content flag
averageFPS / height / widthStream quality details
contentClassificationLabelsTwitch content labels, when present
broadcasterBroadcaster object with images, color, followers, roles, social links
gameCategory object with artwork and category stats when available
urlChannel URL

Channel (recordType: "channel")

FieldDescription
channelId / channelName / displayNameChannel identifiers
descriptionPublic channel bio
languageChannel broadcast language
createdAtAccount creation date
profileImageURL / bannerImageURL / offlineImageURLChannel images
primaryColorHexBrand color
isPartner / isAffiliate / isStaffRole flags, when true
followersCountTotal followers
streamTitle / currentGameConfigured stream title and category
isLiveWhether the channel is live
liveStreamNested live-stream details when live
lastBroadcastMost recent broadcast details
socialLinks[]Social links shown on the channel page
panels[]About-page panels with title, text, image, and link
primaryTeamPrimary Twitch team, when set
upcomingSchedule[]Published upcoming schedule segments
videosCountTotal current VODs on the channel
contactEmails[]Emails published in the public bio
urlChannel URL

VOD (recordType: "video")

FieldDescription
videoIdVOD ID
title / descriptionTitle and description when published
lengthSecondsDuration in seconds
viewCountTotal views
createdAt / publishedAt / updatedAt / recordedAtRelevant timestamps
previewImageURL / animatedPreviewURLThumbnails
broadcastType / statusVOD type and recording status
languageVideo language
contentTags[]Twitch content tags
gameId / gameName / gameSlug / gameAssociated category
channelId / channelName / displayName / ownerOwning channel
urlVOD URL

Clip (recordType: "clip")

FieldDescription
clipId / slugClip identifiers
titleClip title
viewCountTotal views
durationSecondsClip length
createdAtCreation timestamp
languageClip language
isFeaturedFeatured flag, when true
thumbnailURL / embedURLThumbnail and embed URL
videoOffsetSecondsOffset into the source broadcast, when known
gameId / gameName / gameSlug / gameAssociated category
channelId / channelName / displayName / broadcasterBroadcaster details
curatorWho created the clip
sourceVideoSource VOD ID and title, when linked
urlClip URL

Category (recordType: "game")

FieldDescription
gameIdCategory ID
name / displayName / slugCategory names and URL slug
viewersCount / followersCount / broadcastersCountCurrent category stats
boxArtURL / logoURL / coverURLCategory artwork
descriptionCategory description
tags[]Category content tags
originalReleaseDateRelease date when published
developers[] / publishers[]Companies when published
urlCategory directory URL

Input

FieldTypeDefaultDescription
modestringtopStreamsOne of the ten modes above
searchQuerystringlirikSearch term for search
searchTypestringallall, channel, game, or video
channelNamestring–One channel login or URL for byChannel
channelNamesarray[]Batch channel logins or URLs
categorySlugstring–Category slug, name, or directory URL
videoIdstring–One VOD ID or URL
videoIdsarray[]Batch VOD IDs or URLs
clipSlugstring–One clip slug or URL
clipSlugsarray[]Batch clip slugs or URLs
twitchUrlsarray[]URLs for byUrl
languagestringENBroadcast language, or (any)
streamSortstringVIEWER_COUNTMost viewers, fewest viewers, recently started, or recommended
streamTagsarray[]Require all listed freeform tags
streamTypestring–VOD type filter
videoSortstringTIMENewest or most viewed
clipPeriodstringLAST_WEEKLast day, week, month, or all time
clipSortstringVIEWS_DESCMost viewed or trending
includeChannelClipsbooleantrueInclude clips in byChannel
includeChannelVideosbooleantrueInclude VODs in byChannel
minViewersCountinteger–Drop streams below this viewer count
minViewCountinteger–Drop VODs and clips below this view count
minFollowersCountinteger–Drop channels and streams below this follower count
maxFollowersCountinteger–Drop channels and streams above this follower count
onlyLivebooleanfalseDrop offline channel profiles
containsKeywordstring–Title keyword filter
maxItemsinteger50Hard record cap (1–5000)

Example: top live streams in English

{
"mode": "topStreams",
"language": "EN",
"streamSort": "VIEWER_COUNT",
"maxItems": 50
}

Example: channel profiles with schedules and media

{
"mode": "byChannel",
"channelNames": ["lirik", "xqc", "pokimane"],
"includeChannelVideos": true,
"includeChannelClips": true,
"maxItems": 60
}

Example: category VODs

{
"mode": "byCategoryVideos",
"categorySlug": "minecraft",
"streamType": "ARCHIVE",
"videoSort": "VIEWS",
"maxItems": 100
}

Example: mixed URL resolution

{
"mode": "byUrl",
"twitchUrls": [
"https://www.twitch.tv/shroud",
"https://www.twitch.tv/videos/2766365638",
"https://www.twitch.tv/directory/category/just-chatting/videos"
],
"maxItems": 40
}

Use cases

  • Creator discovery — find channels by category, language, tags, follower range, or viewer count
  • Sponsorship research — compare live audiences and follower totals across streamers
  • Clip curation — pull top or trending clips for a category or channel over a chosen window
  • VOD archives — collect titles, durations, views, and categories for past broadcasts
  • Market monitoring — track category viewers, broadcaster counts, and changing top streams
  • Link enrichment — turn lists of Twitch links into structured channel, VOD, clip, or category rows

FAQ

Do I need a Twitch account, OAuth token, or API key? No. All modes work without a login or developer credentials.

Why does a run stop before maxItems? Twitch sometimes has fewer matching rows than requested. Clip lists stop at about 1,000 rows, search categories at about 30 matches, search channels at about 1,000 per term, and search videos at Twitch's 10,000-match ceiling. In byUrl, the cap is shared across the supplied URLs, so a small maxItems can stop before every URL is expanded. The actor reports when the source ends or a cap is reached instead of padding the dataset.

Why are some channel fields missing? Social links, schedules, panels, teams, and bio emails are optional on Twitch. They are included when the channel publishes them and omitted otherwise.

How many live streams can one run return? The live directory pages in groups of up to 30. Requesting thousands of rows means many pages and a longer run; the prefill stays small to keep daily tests cheap.

Can this pull chat messages or video files? No. This actor covers stream, channel, VOD, clip, and category metadata only. Chat replays and media downloads are separate tasks.

What is the difference between byCategory and byCategoryVideos? byCategory returns channels that are live in the category now. byCategoryVideos returns published VODs for that category.

How do I find a category slug? Open the category on Twitch and copy the last part of its URL, or use topGames and read slug.

Are duplicate records removed? Yes. Streams, channels, VODs, clips, and categories are deduplicated by their Twitch IDs across pages and batches.

Is this affiliated with Twitch? No. This actor reads public Twitch data and is not affiliated with, endorsed by, or sponsored by Twitch.