Kick Clips
Pricing
from $1.80 / 1,000 discovered clips
Kick Clips
Find public Kick clips by scope and rank them by views per hour or total views. Enrich one Kick clip URL with metadata, media details, and an optional transcript. Get structured clip data with source links when Kick provides them.
Pricing
from $1.80 / 1,000 discovered clips
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
🎮 Find Public Kick Clips for Your Next Review
Stream researchers, clip editors, and content teams can find public Kick clips by scope, time window, and ranking, or enrich one known Kick clip URL. The dataset returns stable clip IDs, source pages, creator and category details, views, likes, clip age, rank, duration, thumbnails, and a source video link when Kick provides one. For a known clip, you can request media details and a time-aligned transcript, then add a translation. This gives you structured data to review clips and pass source links into your own workflow.
- Search public Kick clips by a chosen scope and ranking with Kick Clips Search.
- Enrich one public Kick clip URL with normalized details using Kick Clip Metadata.
- Review one public clip and its returned fields with Kick Clips Viewer.
- Use Kick Clip Downloader to get a source video link for a public Kick clip when Kick provides one.
- Request a detected-language transcript with ordered time-aligned segments using Kick Clip Transcript.
📊 Kick Clip Data for Research and Workflows
Each dataset row is one public Kick clip. Discovery rows include a rank in the selected scope. Known clip lookups have a null rank and can include media details, a transcript, and an optional translation. Values that Kick does not provide stay null.
▶️ Run Discovery or Enrich One Kick Clip
Choose Discover clips to search a global, category, or channel scope. Choose Enrich a clip URL when you already have one public Kick clip page. Set a time window, ranking basis, filters, and result limit for discovery. For a known clip, you can request a transcript and choose a translation language.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
findClipsBy | string | Choose discover to find many clips, or enrich to read one known Kick clip URL. |
discoveryScope | string | For discovery, choose global, category, or channel. The matching scope field is used. |
category | string | The Kick category name or slug for category discovery. It is ignored for other scopes. |
channel | string | The Kick channel name or slug for channel discovery. It is ignored for other scopes. |
recencyWindow | string | Limits discovery to lastHour, last24Hours, last7Days, last30Days, or allTime. |
rankBy | string | Uses viewsPerHour for recently rising clips or totalViews for the most watched clips. |
maxItems | integer | Stops discovery after this many ranked clips. Leave it empty to return all matching clips until the source is exhausted. |
excludeMature | boolean | When true, leaves out clips flagged as mature. |
maxDurationSeconds | integer | Keeps clips at or below this duration in seconds. Leave it empty to allow any duration. |
minimumViews | integer | Keeps clips with at least this many views. Leave it empty to skip this filter. |
minimumViewsPerHour | number | Keeps clips with at least this views-per-hour rate. Leave it empty to skip this filter. |
onlyNewClips | boolean | With recurring runs, returns clips this Actor has not delivered in earlier runs. The first run can return all matching clips. |
clipUrl | string | The public Kick clip URL used when findClipsBy is enrich. It must use the kick.com domain. |
includeTranscript | boolean | For a known clip, requests a detected-language transcript with ordered, time-aligned segments. |
translationLanguage | string | The target language for a requested transcript translation. Leave it empty to keep only the detected language. |
Work limit
maxItems is the Actor Work Limit for discovery. Leave it empty to return all available matching clips until the source is exhausted. There is no fixed maximum in the input schema.
Example input
This is the public input from a successful discovery run.
{"findClipsBy": "discover","discoveryScope": "global","recencyWindow": "last7Days","rankBy": "viewsPerHour","maxItems": 25,"excludeMature": false,"onlyNewClips": false,"includeTranscript": false}
🧾 Output
The output schema provides a dataset link. Open that link to view the rows described below. The four tables cover the discovery row, known-clip metadata, transcript, and translation shapes.
Run output
| Field | Type | What it does |
|---|---|---|
datasetUrl | string | Link to the dataset that contains the clip rows. |
Discovery row
Discovery rows have a rank for their position in the selected scope. The table is complete for the public clip row shape.
| Field | Type | What it does |
|---|---|---|
clipId | string | Stable ID of the Kick clip. |
clipUrl | string | Public Kick page for the clip. |
title | string or null | Title published for the clip. |
creator | object or null | Creator details published with the clip. |
creator.channelId | string or null | Stable ID of the creator channel. |
creator.username | string or null | Creator username on Kick. |
category | string or null | Kick category published for the clip. |
publishedAt | string or null | Time when Kick published the clip. |
views | integer or null | Number of views reported for the clip. |
likes | integer or null | Number of likes reported for the clip. |
clipAgeSeconds | number or null | Clip age at the time of the result, in seconds. |
viewsPerHour | number or null | View rate used for velocity ranking, in views per hour. |
rank | integer or null | Position of the clip in discovery results. |
isMature | boolean or null | Whether Kick flags the clip as mature. |
durationSeconds | number or null | Clip duration in seconds. |
videoUrl | string or null | Dependable source-hosted video URL when Kick provides one. |
thumbnailUrl | string or null | Source thumbnail URL when Kick provides one. |
media | object or null | Technical media details when Kick provides them. |
media.fileType | string or null | Source file type. |
media.fileSizeBytes | integer or null | Source file size in bytes. |
media.width | integer or null | Video width in pixels. |
media.height | integer or null | Video height in pixels. |
media.frameRate | number or null | Video frame rate in frames per second. |
media.videoCodec | string or null | Video codec used by the source file. |
media.audioCodec | string or null | Audio codec used by the source file. |
media.bitrateKbps | number or null | Source file bitrate in kilobits per second. |
media.dynamicRange | string or null | Source video dynamic range when provided. |
transcript | object or null | Requested transcript and optional translation for a known clip. |
transcript.detectedLanguage | string or null | Language detected for the original transcript. |
transcript.segments | array of objects | Ordered time-aligned segments in the original language. |
transcript.segments[].startSeconds | number | Segment start time in seconds. |
transcript.segments[].endSeconds | number | Segment end time in seconds. |
transcript.segments[].text | string | Words spoken in the segment. |
transcript.translation | object or null | Requested translation with the same segment timing. |
transcript.translation.language | string | Target translation language. |
transcript.translation.segments | array of objects | Ordered translated segments aligned to the original transcript. |
transcript.translation.segments[].startSeconds | number | Translated segment start time in seconds. |
transcript.translation.segments[].endSeconds | number | Translated segment end time in seconds. |
transcript.translation.segments[].text | string | Translated words for the segment. |
Genuine discovery row
This row came from a successful discovery run.
{"clipId": "clip_01M2N8ADTSMHTD7JQ8QH49W65A","clipUrl": "https://kick.com/odablock/clips/clip_01M2N8ADTSMHTD7JQ8QH49W65A","title": "ar 3","creator": {"channelId": "2401072","username": "MaxPauly"},"category": "Just Chatting","publishedAt": "2026-09-16T14:01:24.105Z","views": 1,"likes": 0,"clipAgeSeconds": 32.853,"viewsPerHour": 109.57903387818463,"rank": 1,"isMature": false,"durationSeconds": 180,"videoUrl": "https://clips.kick.com/clips/ca/clip_01M2N8ADTSMHTD7JQ8QH49W65A/playlist.m3u8","thumbnailUrl": "https://clips.kick.com/clips/ca/clip_01M2N8ADTSMHTD7JQ8QH49W65A/thumbnail.webp","media": null,"transcript": null}
Known clip metadata row
Known clip metadata rows have rank: null. The table is complete for the metadata shape, including media details when Kick provides them.
| Field | Type | What it does |
|---|---|---|
clipId | string | Stable ID of the Kick clip. |
clipUrl | string | Public Kick page for the clip. |
title | string or null | Title published for the clip. |
creator | object or null | Creator details published with the clip. |
creator.channelId | string or null | Stable ID of the creator channel. |
creator.username | string or null | Creator username on Kick. |
category | string or null | Kick category published for the clip. |
publishedAt | string or null | Time when Kick published the clip. |
views | integer or null | Number of views reported for the clip. |
likes | integer or null | Number of likes reported for the clip. |
clipAgeSeconds | number or null | Clip age at the time of the result, in seconds. |
viewsPerHour | number or null | View rate shown for the clip, in views per hour. |
rank | integer or null | Position in discovery results. It is null for this known clip lookup. |
isMature | boolean or null | Whether Kick flags the clip as mature. |
durationSeconds | number or null | Clip duration in seconds. |
videoUrl | string or null | Dependable source-hosted video URL when Kick provides one. |
thumbnailUrl | string or null | Source thumbnail URL when Kick provides one. |
media | object or null | Technical media details when Kick provides them. |
media.fileType | string or null | Source file type. |
media.fileSizeBytes | integer or null | Source file size in bytes. |
media.width | integer or null | Video width in pixels. |
media.height | integer or null | Video height in pixels. |
media.frameRate | number or null | Video frame rate in frames per second. |
media.videoCodec | string or null | Video codec used by the source file. |
media.audioCodec | string or null | Audio codec used by the source file. |
media.bitrateKbps | number or null | Source file bitrate in kilobits per second. |
media.dynamicRange | string or null | Source video dynamic range when provided. |
transcript | object or null | Requested transcript and optional translation for a known clip. |
transcript.detectedLanguage | string or null | Language detected for the original transcript. |
transcript.segments | array of objects | Ordered time-aligned segments in the original language. |
transcript.segments[].startSeconds | number | Segment start time in seconds. |
transcript.segments[].endSeconds | number | Segment end time in seconds. |
transcript.segments[].text | string | Words spoken in the segment. |
transcript.translation | object or null | Requested translation with the same segment timing. |
transcript.translation.language | string | Target translation language. |
transcript.translation.segments | array of objects | Ordered translated segments aligned to the original transcript. |
transcript.translation.segments[].startSeconds | number | Translated segment start time in seconds. |
transcript.translation.segments[].endSeconds | number | Translated segment end time in seconds. |
transcript.translation.segments[].text | string | Translated words for the segment. |
Genuine known clip metadata row
This row came from a successful known-clip run.
{"clipId": "clip_01M2MTJ9QHMFZYNHS8TAMFF03D","clipUrl": "https://kick.com/jugandoconelgordopou/clips/clip_01M2MTJ9QHMFZYNHS8TAMFF03D","title": "jajajaja siempre lo mismo 😅","creator": {"channelId": "101598468","username": "JugandoconelgordoPou"},"category": "Sunset Riders","publishedAt": "2026-09-16T10:01:19.487Z","views": 1,"likes": 0,"clipAgeSeconds": 14494.803,"viewsPerHour": 0.24836487946748914,"rank": null,"isMature": false,"durationSeconds": 30,"videoUrl": "https://clips.kick.com/clips/15/clip_01M2MTJ9QHMFZYNHS8TAMFF03D/playlist.m3u8","thumbnailUrl": "https://clips.kick.com/clips/15/clip_01M2MTJ9QHMFZYNHS8TAMFF03D/thumbnail.webp","media": {"fileType": "video/mp4","fileSizeBytes": 8520939,"width": 1280,"height": 720,"frameRate": 30,"videoCodec": "h264","audioCodec": "aac","bitrateKbps": 2046.826,"dynamicRange": "SDR"},"transcript": null}
Known clip transcript row
Transcript rows have rank: null and a transcript object. The table is complete for the transcript shape. A translation is optional.
| Field | Type | What it does |
|---|---|---|
clipId | string | Stable ID of the Kick clip. |
clipUrl | string | Public Kick page for the clip. |
title | string or null | Title published for the clip. |
creator | object or null | Creator details published with the clip. |
creator.channelId | string or null | Stable ID of the creator channel. |
creator.username | string or null | Creator username on Kick. |
category | string or null | Kick category published for the clip. |
publishedAt | string or null | Time when Kick published the clip. |
views | integer or null | Number of views reported for the clip. |
likes | integer or null | Number of likes reported for the clip. |
clipAgeSeconds | number or null | Clip age at the time of the result, in seconds. |
viewsPerHour | number or null | View rate shown for the clip, in views per hour. |
rank | integer or null | Position in discovery results. It is null for this known clip lookup. |
isMature | boolean or null | Whether Kick flags the clip as mature. |
durationSeconds | number or null | Clip duration in seconds. |
videoUrl | string or null | Dependable source-hosted video URL when Kick provides one. |
thumbnailUrl | string or null | Source thumbnail URL when Kick provides one. |
media | object or null | Technical media details when Kick provides them. |
media.fileType | string or null | Source file type. |
media.fileSizeBytes | integer or null | Source file size in bytes. |
media.width | integer or null | Video width in pixels. |
media.height | integer or null | Video height in pixels. |
media.frameRate | number or null | Video frame rate in frames per second. |
media.videoCodec | string or null | Video codec used by the source file. |
media.audioCodec | string or null | Audio codec used by the source file. |
media.bitrateKbps | number or null | Source file bitrate in kilobits per second. |
media.dynamicRange | string or null | Source video dynamic range when provided. |
transcript | object or null | Requested transcript and optional translation for a known clip. |
transcript.detectedLanguage | string or null | Language detected for the original transcript. |
transcript.segments | array of objects | Ordered time-aligned segments in the original language. |
transcript.segments[].startSeconds | number | Segment start time in seconds. |
transcript.segments[].endSeconds | number | Segment end time in seconds. |
transcript.segments[].text | string | Words spoken in the segment. |
transcript.translation | object or null | Requested translation with the same segment timing. |
transcript.translation.language | string | Target translation language. |
transcript.translation.segments | array of objects | Ordered translated segments aligned to the original transcript. |
transcript.translation.segments[].startSeconds | number | Translated segment start time in seconds. |
transcript.translation.segments[].endSeconds | number | Translated segment end time in seconds. |
transcript.translation.segments[].text | string | Translated words for the segment. |
Genuine known clip transcript row
This row came from a successful run with a transcript request.
{"clipId": "clip_01M2MTJ9QHMFZYNHS8TAMFF03D","clipUrl": "https://kick.com/jugandoconelgordopou/clips/clip_01M2MTJ9QHMFZYNHS8TAMFF03D","title": "jajajaja siempre lo mismo 😅","creator": {"channelId": "101598468","username": "JugandoconelgordoPou"},"category": "Sunset Riders","publishedAt": "2026-09-16T10:01:19.487Z","views": 1,"likes": 0,"clipAgeSeconds": 14494.752,"viewsPerHour": 0.24836575334300304,"rank": null,"isMature": false,"durationSeconds": 30,"videoUrl": "https://clips.kick.com/clips/15/clip_01M2MTJ9QHMFZYNHS8TAMFF03D/playlist.m3u8","thumbnailUrl": "https://clips.kick.com/clips/15/clip_01M2MTJ9QHMFZYNHS8TAMFF03D/thumbnail.webp","media": {"fileType": "video/mp4","fileSizeBytes": 8520939,"width": 1280,"height": 720,"frameRate": 30,"videoCodec": "h264","audioCodec": "aac","bitrateKbps": 2046.826,"dynamicRange": "SDR"},"transcript": {"detectedLanguage": "spanish","segments": [{"startSeconds": 22,"endSeconds": 33.304,"text": "[Risas]"}]}}
Known clip translation row
Translation rows have rank: null, a transcript, and a nested translation. The table is complete for this shape.
| Field | Type | What it does |
|---|---|---|
clipId | string | Stable ID of the Kick clip. |
clipUrl | string | Public Kick page for the clip. |
title | string or null | Title published for the clip. |
creator | object or null | Creator details published with the clip. |
creator.channelId | string or null | Stable ID of the creator channel. |
creator.username | string or null | Creator username on Kick. |
category | string or null | Kick category published for the clip. |
publishedAt | string or null | Time when Kick published the clip. |
views | integer or null | Number of views reported for the clip. |
likes | integer or null | Number of likes reported for the clip. |
clipAgeSeconds | number or null | Clip age at the time of the result, in seconds. |
viewsPerHour | number or null | View rate shown for the clip, in views per hour. |
rank | integer or null | Position in discovery results. It is null for this known clip lookup. |
isMature | boolean or null | Whether Kick flags the clip as mature. |
durationSeconds | number or null | Clip duration in seconds. |
videoUrl | string or null | Dependable source-hosted video URL when Kick provides one. |
thumbnailUrl | string or null | Source thumbnail URL when Kick provides one. |
media | object or null | Technical media details when Kick provides them. |
media.fileType | string or null | Source file type. |
media.fileSizeBytes | integer or null | Source file size in bytes. |
media.width | integer or null | Video width in pixels. |
media.height | integer or null | Video height in pixels. |
media.frameRate | number or null | Video frame rate in frames per second. |
media.videoCodec | string or null | Video codec used by the source file. |
media.audioCodec | string or null | Audio codec used by the source file. |
media.bitrateKbps | number or null | Source file bitrate in kilobits per second. |
media.dynamicRange | string or null | Source video dynamic range when provided. |
transcript | object or null | Requested transcript and optional translation for a known clip. |
transcript.detectedLanguage | string or null | Language detected for the original transcript. |
transcript.segments | array of objects | Ordered time-aligned segments in the original language. |
transcript.segments[].startSeconds | number | Segment start time in seconds. |
transcript.segments[].endSeconds | number | Segment end time in seconds. |
transcript.segments[].text | string | Words spoken in the segment. |
transcript.translation | object or null | Requested translation with the same segment timing. |
transcript.translation.language | string | Target translation language. |
transcript.translation.segments | array of objects | Ordered translated segments aligned to the original transcript. |
transcript.translation.segments[].startSeconds | number | Translated segment start time in seconds. |
transcript.translation.segments[].endSeconds | number | Translated segment end time in seconds. |
transcript.translation.segments[].text | string | Translated words for the segment. |
Genuine known clip translation row
This row came from a successful run with a transcript and translation request.
{"clipId": "clip_01M2MTJ9QHMFZYNHS8TAMFF03D","clipUrl": "https://kick.com/jugandoconelgordopou/clips/clip_01M2MTJ9QHMFZYNHS8TAMFF03D","title": "jajajaja siempre lo mismo 😅","creator": {"channelId": "101598468","username": "JugandoconelgordoPou"},"category": "Sunset Riders","publishedAt": "2026-09-16T10:01:19.487Z","views": 1,"likes": 0,"clipAgeSeconds": 14495.042,"viewsPerHour": 0.24836078432887604,"rank": null,"isMature": false,"durationSeconds": 30,"videoUrl": "https://clips.kick.com/clips/15/clip_01M2MTJ9QHMFZYNHS8TAMFF03D/playlist.m3u8","thumbnailUrl": "https://clips.kick.com/clips/15/clip_01M2MTJ9QHMFZYNHS8TAMFF03D/thumbnail.webp","media": {"fileType": "video/mp4","fileSizeBytes": 8520939,"width": 1280,"height": 720,"frameRate": 30,"videoCodec": "h264","audioCodec": "aac","bitrateKbps": 2046.826,"dynamicRange": "SDR"},"transcript": {"detectedLanguage": "spanish","segments": [{"startSeconds": 22,"endSeconds": 33.304,"text": "[Risas]"}],"translation": {"language": "Spanish","segments": [{"startSeconds": 22,"endSeconds": 33.304,"text": "[Risas]"}]}}}
💳 Pricing
This Actor uses pay-per-event pricing. Charges are tied to saved output events. A discovery charge covers each saved discovered clip. A metadata charge covers one saved known-clip enrichment row. Transcript and translation charges cover the requested transcript or translation when produced.
| Event | What it covers |
|---|---|
| Discovered clip | One public Kick clip found during discovery, with metadata and a source video URL when available. |
| Clip metadata | Metadata for one supplied public Kick clip, with unavailable source values kept as null. |
| Clip transcript | One detected-language transcript with ordered time-aligned segments for a public Kick clip. |
| Clip translation | One translation of a clip transcript into the requested language with the original segment alignment. |
🔌 Integrations
Use the Apify API to start runs and read the dataset. You can also schedule runs, use webhooks, or export the dataset from Apify.
❓ FAQ
What happens when a clip has no video link?
The row still includes the public clip page and the other values Kick provides. videoUrl is null when Kick does not expose a dependable source-hosted video URL.
Can I look up one known clip instead of discovering clips?
Yes. Set findClipsBy to enrich and provide one public Kick clip URL. The row has rank: null because it was not found in a discovery list.
How does views per hour ranking work?
Choose viewsPerHour in rankBy to put the highest reported view rate first. The returned viewsPerHour value shows the rate used for the rank.
What happens when I leave Maximum clips empty?
The Actor returns all available matching clips until the source is exhausted. The input schema has no fixed upper limit for this field.
Can I request a transcript and translation?
Yes. For a known clip, turn on includeTranscript. You can also set translationLanguage to keep the original transcript and add aligned translated segments when available.
Does this Actor download or store the clip file?
No. It returns the public Kick page and a source-hosted video URL when Kick provides one. It does not store a copy or transform the video.
Can it search arbitrary Kick text?
No. Discovery uses the supported global, category, and channel scopes. It is not a web-wide or arbitrary text search.
How are unavailable fields handled?
Unavailable source values are returned as null instead of being guessed.
How are duplicate clips handled?
The first eligible occurrence of a source clip is saved. Later matches for the same clip are ignored, so one row describes that first saved match.
Do I need a Kick login or developer API key?
No. The Actor works with public Kick clips and does not require a Kick login or developer API key.
📝 Changelog
v0.0 (16-09-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Twitch Scraper - Collect public Twitch clip and VOD metadata for adjacent live-stream research.
- YouTube Trending Videos Scraper - Track ranked public YouTube videos by region and category.
- TikTok Search Scraper - Search public TikTok videos by keyword for short-form content research.
- YouTube Shorts Downloader - Resolve known public YouTube Shorts into source media links and metadata.
- TikTok Video Downloader - Get source media links and metadata from known public TikTok video URLs.
Made with ❤️ by Maxime Dupré