Twitch VOD & Clip Metadata Extractor avatar

Twitch VOD & Clip Metadata Extractor

Pricing

from $0.75 / 1,000 twitch metadata results

Go to Apify Store
Twitch VOD & Clip Metadata Extractor

Twitch VOD & Clip Metadata Extractor

Extract public Twitch VOD and clip metadata from URLs or numeric VOD IDs: titles, creators, dates, durations, views, thumbnails, chapters, and availability. Metadata only—no video or audio downloads, channel discovery, or media files.

Pricing

from $0.75 / 1,000 twitch metadata results

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

What this Actor does

Extract public metadata from specific Twitch VOD and clip URLs without downloading video or audio. The Actor writes one Dataset row per processed normalized input; duplicate canonical targets are removed by default. Transport data such as media formats, manifests, CDN URLs, temporary headers, and tokens stays out of the output.

It accepts public VOD URLs, public clip URLs, and numeric VOD IDs. It is designed for enriching known Twitch items; it does not discover a channel's catalogue or monitor live channels.

Use cases

  • Enrich a list of Twitch VOD or clip URLs with titles, creators, dates, duration, views, and availability.
  • Build a clean metadata catalogue before sending selected items to another workflow.
  • Resolve VOD IDs and clip slugs in bulk while keeping the Dataset metadata-only.

How to use

  1. Open the Actor in Apify Console.
  2. Add one or more public Twitch VOD/clip URLs or numeric VOD IDs to inputList.
  3. Choose maxItems and whether equivalent inputs should be deduplicated.
  4. Start the run and open the default Dataset for item rows. The default key-value store contains a SUMMARY record.

Example input:

{
"inputList": [
"https://clips.twitch.tv/FaintLightGullWholeWheat",
"https://www.twitch.tv/videos/1536751224"
],
"maxItems": 2,
"deduplicate": true
}

Input

FieldTypeRequiredDefaultDescription
inputListstring[]Yes—One to 100 public Twitch VOD URLs, clip URLs, or numeric VOD IDs.
maxItemsintegerNo25Maximum number of normalized inputs to process. 0 means all supplied inputs, up to 100.
deduplicatebooleanNotrueRemoves duplicate URLs and equivalent VOD ID/URL inputs before extraction.

The Actor accepts individual VOD and clip targets such as https://www.twitch.tv/videos/1536751224, https://clips.twitch.tv/FaintLightGullWholeWheat, and the numeric VOD ID 1536751224. Channel pages, channel video listings, search pages, category pages, and live-channel URLs are not valid inputs for this Actor.

Output

The default Dataset contains one row per normalized input. Successful rows have status: "success" and availability: "available". Unavailable or restricted targets produce a safe error row and the run finishes as failed so incomplete collections are not mistaken for complete ones. Successful rows already written remain available.

Fields such as descriptions, thumbnails, chapters, category names, follower counts, and live-state flags are nullable or empty when Twitch does not provide them for a target. A thumbnail is also null when Twitch returns only a temporary or signed URL. channelLogin contains the source-provided broadcaster login or name when available. retrievedAt is the UTC time of extraction. The Actor does not download or store media files.

This is a complete Dataset item from a successful run:

{
"status": "success",
"recordType": "clip",
"inputUrl": "https://clips.twitch.tv/FaintLightGullWholeWheat",
"sourceUrl": "https://clips.twitch.tv/FaintLightGullWholeWheat",
"id": "396245304",
"displayId": "FaintLightGullWholeWheat",
"title": "EA Play 2016 Live from the Novo Theatre",
"description": null,
"durationSeconds": 32,
"createdAt": "2016-06-12T21:36:33Z",
"publishedAt": null,
"viewCount": 30294,
"liveStatus": null,
"wasLive": null,
"isLive": null,
"channelName": "EA",
"channelLogin": "EA",
"channelId": "25163635",
"channelFollowerCount": 443065,
"channelIsVerified": false,
"creatorName": "stereotype_",
"creatorId": "43566419",
"uploaderName": null,
"uploaderId": null,
"categories": [],
"chapters": [],
"thumbnailUrl": null,
"availability": "available",
"retrievedAt": "2026-09-23T18:26:30Z",
"errorCode": null,
"errorMessage": null
}

VOD rows use recordType: "vod", a numeric VOD id, uploader fields, publication metadata, and any chapters exposed by Twitch. Clip rows can additionally include the clip creator and broadcaster fields. The run summary is available at the default key-value store record SUMMARY.

Pricing

This Actor uses Apify pay-per-event pricing. One successfully delivered metadata row is one twitch-metadata-result event; unavailable or restricted inputs are not charged for this custom result event.

Apify tierPrice per resultEquivalent per 1,000 results
FREE$0.001$1.00
BRONZE$0.0009$0.90
SILVER$0.0008$0.80
GOLD$0.00075$0.75
PLATINUM$0.00075$0.75
DIAMOND$0.00075$0.75

Apify resolves the active customer tier server-side. The Pricing tab remains the source of truth for the current configuration and any platform usage or storage charges.

ActorBest for
Social Blade Multi-Platform Analytics ScraperPublic creator analytics across Twitch and other supported social platforms.
YouTube Channel Videos Scraper | Shorts & StreamsBuilding a comparable public video catalogue for YouTube channels.

Limits and data quality

The input accepts at most 100 strings and the default run limit is 25 normalized targets. Twitch availability, titles, counts, categories, chapters, and thumbnails can change or be absent for deleted, private, restricted, expired, or otherwise inaccessible content. A successful row describes metadata observed during that run; it does not guarantee that the media or thumbnail remains available later.

The underlying public Twitch extraction surface can change. The Actor does not promise permanent historical coverage, exact counts, or fields that the source does not return. It may make requests needed to resolve metadata, but it does not call a media download operation and does not publish media transport URLs.

Frequently asked questions

Does this Actor download videos or clips?

No. It resolves metadata only and publishes an explicit metadata field list. Media files are not written to the Dataset or Actor storage.

Can I give it a Twitch channel URL?

No. This Actor handles known VOD and clip targets. Collect the individual public item URLs first, then pass the selected URLs here for detailed metadata.

What happens when one input is unavailable?

The Actor writes a sanitized error row for that input, preserves successful rows, writes the run summary, and fails the run so downstream automation can detect incomplete collection.

Why is a field null or an array empty?

The source did not expose that field for the target during the run. The Actor returns null or an empty array rather than inventing values or fetching unrelated content.

Can I use a numeric VOD ID?

Yes. Numeric VOD IDs are normalized to Twitch VOD URLs before extraction. Duplicate ID/URL representations are collapsed when deduplicate is enabled.

Responsible use

Use only public Twitch content you are entitled to process. You are responsible for complying with Twitch's terms, applicable copyright and privacy requirements, and local law. Public visibility does not grant permission to republish media or personal information.

Support

For an unexpected result, open an issue in the Actor's Issues tab with the run ID, a small public input, and the returned errorCode. Do not include credentials, cookies, private URLs, or temporary media URLs.