Twitch VOD Downloader avatar

Twitch VOD Downloader

Pricing

Pay per event

Go to Apify Store
Twitch VOD Downloader

Twitch VOD Downloader

Process one publicly accessible Twitch VOD or clip for structured metadata and an optional stored video file.

Pricing

Pay per event

Rating

0.0

(0)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Turn one playable Twitch VOD or clip into a stable Dataset row, with an optional copy of the media saved to Apify storage.

  • Accepts a single public VOD or Clip address per run.
  • Separates fast metadata inspection from file-producing download modes.
  • Surfaces 39 normalized fields even when Twitch leaves some values unavailable.
  • Deliberately omits chat and comment collection from the public controls.

Open the Actor dashboard

Inspect the REST API

Why Choose This API

Twitch recordings and clips use different page forms, yet downstream systems usually need one predictable record. This Actor converts a supported Twitch page into the same identifiers, creator details, timestamps, dimensions, counters, artwork, and provenance fields used throughout the AgentX video family.

Choose metadata when the page facts are the product. Choose a quality tier only when your workflow is allowed to retain the media. The requested tier is a preference: Twitch decides which renditions exist, and the downloader selects from those real choices.

Scope is intentionally narrow. The Actor does not enumerate a channel, watch a live schedule, replay Twitch chat, locate clips by game, authenticate as a subscriber, or archive a collection. A VOD or clip must already be known and publicly playable.

Quick Start Guide

Start with this request:

{
"video_url": "https://www.twitch.tv/riotgames/clip/GoodAlertBurritoTheTarFu",
"video_quality": "metadata"
}

Swap in a VOD you are permitted to process. A Twitch Clip URL is also within the documented contract. Verify the chosen page in a private browser window; a working test must play without a Twitch account or subscription.

Run metadata first and match the ID, channel, title, duration, and preview image against the page. Only then select low, medium, or high. A channel landing page, directory, collection, deleted broadcast, or subscriber-only recording is an invalid test for this single-item interface.

Input Parameters

FieldValueRequiredBehavior
video_urlstringYesPublic Twitch VOD or Clip page to process.
video_qualitystringNometadata, low, medium, or high; omission behaves as metadata mode.

video_url is the only mandatory property and its displayed sample is a public clip. video_quality intentionally has neither prefill nor example, so an optional control never silently changes the caller’s request.

Unknown keys fail schema validation. There are no fields for cookies, credentials, channel names, chat, comments, pagination, dates, geography, or a URL list.

Output Data Schema

Each successful item can expose the following groups:

GroupDataset keys
Identity and artworkthumbnail, id, platform, title, description
Timing and ownerduration, published_at, author, author_id, author_url
Taxonomy and reachcategories, tags, view_count, like_count, shares_count, dislike_count, comment_count
Media factswidth, height, fps, audio_title, audio_artist, video
Audit fieldscomments, processed_at, processor

| Source and availability | source_url, media_type, live_status, availability, age_limit, language | | Creator reach | followers, is_verified | | File and captions | file_ext, file_size, saves_count, subtitles, chapters | An abbreviated illustrative item is:

{
"id": "0000000000",
"platform": "Twitch:vod",
"title": "Illustrative Twitch broadcast",
"author": "illustrative_channel",
"thumbnail": "https://example.com/twitch-preview.jpg",
"comments": [],
"video": ""
}

This is a contract example, not captured Twitch data. Empty or null fields mean the extractor did not receive that value. video stays empty in metadata mode. comments is reserved for shape compatibility and does not represent Twitch chat.

Integration Examples

The same VOD-shaped request can be submitted with HTTP:

curl -X POST "https://api.apify.com/v2/acts/agentx~twitch-video-downloader/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"video_url":"https://www.twitch.tv/riotgames/clip/GoodAlertBurritoTheTarFu","video_quality":"metadata"}'

The matching MCP declaration keeps the identical arguments:

{
"mcpServers": {
"twitch-media": {
"url": "https://mcp.apify.com?tools=agentx/twitch-video-downloader",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
},
"exampleToolArguments": {
"video_url": "https://www.twitch.tv/riotgames/clip/GoodAlertBurritoTheTarFu",
"video_quality": "metadata"
}
}

Never commit an Apify token. Review the hosted MCP guide before connecting an agent or automation.

Pricing & Cost Calculator

EventTriggerDeclared amount
actor_usageMetered compute, proxy, and storage consumption$0.00001
metadataA processed item without media storage$0.09
downloadA processed item whose video is stored$0.30

Therefore the smallest declared metadata case is $0.09 plus metered usage; the smallest declared download case is $0.30 plus metered usage.

Use Cases & Applications

An authorized streamer can index individual VODs for an internal library. A research team can preserve the title, channel, duration, artwork, and source ID of a cited broadcast. Editors can hand a permitted clip file to a review queue. Speech systems can route an allowed recording to transcription after storage.

For longitudinal work, schedule the exact URL again and compare saved records outside this Actor. It does not discover new broadcasts or calculate deltas itself.

Limits & Troubleshooting

Availability changes frequently on Twitch. Deletion, clip expiry, subscriber gates, account prompts, regional limits, age gates, absent renditions, throttling, ads, or extractor changes can prevent a result. No public input supplies authentication or a country route.

When metadata fails, confirm the precise VOD or Clip URL still plays privately and is not merely a channel or collection. Retry metadata before escalating. When metadata succeeds but no stored URL appears, verify the selected mode, logs, and key-value storage.

A release regression set should include one public VOD, one public Clip, a channel URL expected to fail, a removed item, and one permitted download. Capture the extractor key, media ID, requested mode, terminal status, and storage outcome.

FAQ

Will it crawl every broadcast from a channel?

No. The interface processes one known media page.

Is a live channel supported?

Live capture is outside this public VOD-and-Clip contract. Use a live-stream-specific Actor.

Are Twitch chat messages returned?

No. Chat and comments have no public input and the reserved array is ordinarily empty.

Can it unlock subscriber archives?

No authentication field is provided, so protected recordings are outside scope.

What does the high setting guarantee?

It expresses a preference, not a fixed resolution. Available Twitch renditions control the file.

Why is a counter null rather than zero?

Null means unavailable; zero would be a measured value.

Can I send a batch of URLs?

No. Submit distinct runs or orchestrate them externally.

Should I prefer a VOD or a Clip address?

Prefer a Clip when you need a stable reference. Channel VODs are removed on Twitch's retention schedule, so an archived broadcast can disappear within weeks, while a Clip persists as long as the channel does. Both forms resolve through the same contract, and platform records which one was processed.

Only process broadcasts or clips you have authority to access and retain. You are responsible for Twitch terms, creator rights, copyright, privacy, local law, and deletion obligations.

Support & Community

Support requests should include the stable Actor ID, a redacted source URL, the submitted input, and the run ID.

Open the Actor dashboard

Inspect the REST API