# Twitch Clips & VODs Export

> Export Twitch clips or VODs of channels for a date range: title, views, duration, creator, game and links. Official Twitch API with your own free key.

URL: https://cliqtomedia.com/actors/twitch-clips-vods/

Category: Video, audio & streaming · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto

Add Twitch channels and pick clips or VODs. Choose a date range. Each row has title, views, length, game and link. It saves data and links, not video files.

## How to use it: 3 steps

1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `twitch` in Channels. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Twitch Clips & VODs Scraper exports the clips or past videos (VODs) of any Twitch channels for any date range, one row per clip or video with title, views, duration, clip creator, game, link and thumbnail, from the official Twitch API with your own free Twitch key.

- Clips come most-viewed first. Twitch shows only about 1,000 clips for one date range, so for a long range the Actor splits it into smaller time windows (down to one hour). This way a channel with many thousands of clips can be exported.
- VODs come newest first: past broadcasts, highlights and uploads. You can choose which of the three types you want.

### Good for

- Get the top clips of a streamer for a week, a month or all time.
- Make a list of a channel's past broadcasts with titles, length and views before Twitch deletes them.
- Compare clip activity of several channels for the same period (up to 100 channels per run).
- Schedule a daily run to build a growing archive of fresh clips and VODs.

### Not a good fit

- No video or audio files. Use the `url` to watch the clip or video on Twitch.
- No chat messages, follower counts or live streams.
- Twitch deletes past broadcasts after 7–60 days (it depends on the streamer's account). Old broadcasts are gone and cannot be exported. Highlights and uploads stay.
- Twitch does not send a game for VODs, so `gameName` is empty for VOD rows.
- A free Twitch developer app is required. It takes two minutes to make. With no app keys, you get a single free row that explains the setup.

## Price

Prices will be shown after release.

## Questions

### Do I need a Twitch key?

Yes. Make a free app in the Twitch developer console. Paste its Client ID and Secret.

### Does it download videos?

No. It gives data and links only. Use the url to watch on Twitch.

### Can I get many clips from a big channel?

Yes, up to 10,000 per channel per run. The Actor splits the date range into small windows.

### Why is the game empty for VODs?

Twitch does not send a category for videos.

### Do I need to pay Twitch?

No. Twitch does not charge for API access. You only need a Twitch login with 2FA switched on and one free app in the developer console.

### Is my key safe?

Yes. `clientId` and `clientSecret` are secret inputs that Apify encrypts. They do not appear in rows, logs or `RUN_SUMMARY`. The temporary Twitch token exists only while the run works and is revoked at the end.

### Can it download the clip or video files?

No. The Actor returns data and links only. Use `url` to watch on Twitch.

### Can I use the data commercially?

Your use of the data falls under the Twitch developer rules for your own app. They ask for credit to Twitch and set limits on keeping some data. The `source` and `url` fields help you give credit. Check the Twitch Developer Agreement for your use.

## Data fields

- `status` (string): ok = a clip or VOD; api_key_required = free notice row when the Client ID or Secret is missing.
- `id` (string): Clip slug (as in clips.twitch.tv/<id>) or video id.
- `type` (string): clip or vod.
- `channel` (string): Channel login, as in twitch.tv/<login>.
- `channelName` (string): Channel display name.
- `channelId` (string): Twitch channel (broadcaster) id; stable.
- `title` (string): Clip or video title.
- `creatorName` (string): Clip: the viewer who made the clip. VOD: the channel.
- `viewCount` (integer): Views; null when Twitch sent no number.
- `durationSec` (number): Length in seconds: clips with tenths (17.9), VODs whole seconds.
- `createdAt` (string): When the clip or video was created, ISO 8601 UTC.
- `url` (string): Link to the clip or video on Twitch.
- `thumbnailUrl` (string): Preview image; VODs at 1280x720; null while Twitch is still processing a VOD.
- `gameId` (string): Clip: Twitch category id. Null for VODs (Twitch gives none).
- `gameName` (string): Clip: category name, e.g. Just Chatting.
- `language` (string): Two-letter language of the broadcast.
- `vodId` (string): Clip: the video it was cut from; null when that VOD is gone.
- `vodOffsetSec` (integer): Clip: where in that video the clip starts, seconds.
- `isFeatured` (boolean): Clip: featured by the channel.
- `videoType` (string): VOD: archive (past broadcast), highlight or upload.
- `description` (string): VOD description.
- `publishedAt` (string): VOD: when it was published, ISO 8601 UTC.
- `source` (string): Always twitch-helix (official Twitch API).
- `fetchedAt` (string): When the Actor read this row, ISO 8601 UTC.
- `message` (string): Only on the api_key_required row: how to get a free key.

## Input settings

- `clientId` (string): Client ID of your own Twitch application from dev.twitch.tv/console/apps. Stored encrypted; never written to the dataset, logs or run summary.
- `clientSecret` (string): Client Secret of the same app (Manage → New Secret). Stored encrypted; the short-lived app token made from it is revoked at the end of the run.
- `channels` (array): Twitch channel logins or links, e.g. shroud or https://www.twitch.tv/shroud. Up to 100. Unknown channels are listed in the run summary, not charged.
- `type` (string): Clips come most-viewed first within the period; VODs come newest first.
- `startedAt` (string): Created on or after this date (UTC), e.g. 2026-10-01, or a period back from now like 7 days. Empty = all time.
- `endedAt` (string): Created before the end of this date (UTC). Empty = now.
- `vodTypes` (array): Only for VODs. Default: all three. Twitch deletes past broadcasts after 7-60 days; highlights and uploads stay.
- `maxItems` (integer): Stop after this many saved clips or VODs for each channel. Each saved item is one paid result.

## Step by step on Apify

1. Open the Input tab.
2. Paste your Twitch Client ID (`clientId`) and Twitch Client Secret (`clientSecret`).
3. Keep the prefilled Channels (`channels`) value `twitch`, Export (`type`) value `Clips` and Max items per channel (`maxItems`) value `10`, or type your own channel.
4. Click Start.
5. Open the Output tab and check the Clips and VODs table: `title`, `viewCount` and `url` for each clip.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| Find a streamer's best clips for a period | `channels`, `type: clips`, `startedAt`, `endedAt` | clip | `title`, `viewCount`, `creatorName`, `url` | export to a sheet, pick clips for a video |
| Archive a channel's past broadcasts | `channels`, `type: vods`, `vodTypes: ["archive"]` | VOD | `title`, `durationSec`, `createdAt`, `url` | schedule weekly before Twitch deletes them |
| Compare channels | several `channels`, same period | clip | `channel`, `viewCount`, `createdAt` | spreadsheet or BI tool |
| Watch new clips of a channel | `channels`, `startedAt: "1 day"` | clip | `id`, `createdAt`, `viewCount` | schedule + webhook to Slack or a database |

## Tips

- Clips come most viewed first. Use a short date range for fresh clips.
- Use the id field to remove repeats between daily runs.
- Pick the VOD types you want: broadcasts, highlights or uploads.

## Limits



- Each run pays the `apify-actor-start` fee once. This includes runs with missing or wrong Twitch keys.
- The channel fee is charged once for each channel that exists on Twitch and is searched, also when it has nothing in your period. Unknown channels are not charged.
- The `api_key_required` notice row is free. Skipped repeats and items outside your period or VOD types are free.
- If a run ends early, for example because your cost cap was hit, you pay only for rows that reached the Dataset.
- Platform usage (compute, storage) is included in these prices.
- Up to 100 channels and up to 10,000 items per channel in one run.
- In our tests one run saved 10,000 clips in about 100 seconds. Very big runs (many channels × many items) can reach the time limit; the Actor then keeps the saved rows and ends with `PARTIAL` and `TIME_LIMIT`. Split such work into several runs.
- Runs time out after 300 seconds by default. Work ends 15 seconds early so the summary is always written. Raising the timeout helps up to 15 minutes of work.

## Sample result

```json
{
  "status": "ok",
  "id": "CrispyJollyGullHassaanChop-nPlLKGxGRcBj37e4",
  "type": "clip",
  "channel": "twitch",
  "channelName": "Twitch",
  "channelId": "12826",
  "title": "F1 2017 E3 Gameplay!",
  "creatorName": "power_tester",
  "viewCount": 4647095,
  "durationSec": 59.9,
  "createdAt": "2023-07-12T01:07:36.000Z",
  "url": "https://www.twitch.tv/twitch/clip/CrispyJollyGullHassaanChop-nPlLKGxGRcBj37e4",
  "thumbnailUrl": "https://static-cdn.jtvnw.net/twitch-video-assets/twitch-vap-video-assets-prod-us-west-2/28003ace-b7f2-4d69-950c-2aa57e8797f2/landscape/thumb/thumb-0000000000-480x272.jpg",
  "gameId": "0",
  "gameName": null,
  "language": "en",
  "vodId": null,
  "vodOffsetSec": null,
  "isFeatured": false,
  "videoType": null,
  "description": null,
  "publishedAt": null,
  "source": "twitch-helix",
  "fetchedAt": "2026-10-22T05:40:54.605Z",
  "message": null
}
```

## Similar tools

- [YouTube Search Results Scraper — No Login](https://cliqtomedia.com/actors/youtube-search-scraper/)
- [YouTube Subtitles & Transcript Scraper API](https://cliqtomedia.com/actors/youtube-transcript-scraper/)
- [YouTube Comments Scraper](https://cliqtomedia.com/actors/youtube-comments-scraper/)
- [Apple Podcast Directory & RSS Contacts Scraper](https://cliqtomedia.com/actors/podcast-directory-rss-contacts-scraper/)
- [Audio & Podcast Transcriber (Speech to Text)](https://cliqtomedia.com/actors/audio-video-transcriber/)
- [Social Video Downloader: TikTok, Instagram, X - No Login](https://cliqtomedia.com/actors/social-video-downloader/)
