Kick Clips avatar

Kick Clips

Pricing

from $1.80 / 1,000 discovered clips

Go to Apify Store
Kick 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é

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.

📊 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

FieldTypeWhat it does
findClipsBystringChoose discover to find many clips, or enrich to read one known Kick clip URL.
discoveryScopestringFor discovery, choose global, category, or channel. The matching scope field is used.
categorystringThe Kick category name or slug for category discovery. It is ignored for other scopes.
channelstringThe Kick channel name or slug for channel discovery. It is ignored for other scopes.
recencyWindowstringLimits discovery to lastHour, last24Hours, last7Days, last30Days, or allTime.
rankBystringUses viewsPerHour for recently rising clips or totalViews for the most watched clips.
maxItemsintegerStops discovery after this many ranked clips. Leave it empty to return all matching clips until the source is exhausted.
excludeMaturebooleanWhen true, leaves out clips flagged as mature.
maxDurationSecondsintegerKeeps clips at or below this duration in seconds. Leave it empty to allow any duration.
minimumViewsintegerKeeps clips with at least this many views. Leave it empty to skip this filter.
minimumViewsPerHournumberKeeps clips with at least this views-per-hour rate. Leave it empty to skip this filter.
onlyNewClipsbooleanWith recurring runs, returns clips this Actor has not delivered in earlier runs. The first run can return all matching clips.
clipUrlstringThe public Kick clip URL used when findClipsBy is enrich. It must use the kick.com domain.
includeTranscriptbooleanFor a known clip, requests a detected-language transcript with ordered, time-aligned segments.
translationLanguagestringThe 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

FieldTypeWhat it does
datasetUrlstringLink 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.

FieldTypeWhat it does
clipIdstringStable ID of the Kick clip.
clipUrlstringPublic Kick page for the clip.
titlestring or nullTitle published for the clip.
creatorobject or nullCreator details published with the clip.
creator.channelIdstring or nullStable ID of the creator channel.
creator.usernamestring or nullCreator username on Kick.
categorystring or nullKick category published for the clip.
publishedAtstring or nullTime when Kick published the clip.
viewsinteger or nullNumber of views reported for the clip.
likesinteger or nullNumber of likes reported for the clip.
clipAgeSecondsnumber or nullClip age at the time of the result, in seconds.
viewsPerHournumber or nullView rate used for velocity ranking, in views per hour.
rankinteger or nullPosition of the clip in discovery results.
isMatureboolean or nullWhether Kick flags the clip as mature.
durationSecondsnumber or nullClip duration in seconds.
videoUrlstring or nullDependable source-hosted video URL when Kick provides one.
thumbnailUrlstring or nullSource thumbnail URL when Kick provides one.
mediaobject or nullTechnical media details when Kick provides them.
media.fileTypestring or nullSource file type.
media.fileSizeBytesinteger or nullSource file size in bytes.
media.widthinteger or nullVideo width in pixels.
media.heightinteger or nullVideo height in pixels.
media.frameRatenumber or nullVideo frame rate in frames per second.
media.videoCodecstring or nullVideo codec used by the source file.
media.audioCodecstring or nullAudio codec used by the source file.
media.bitrateKbpsnumber or nullSource file bitrate in kilobits per second.
media.dynamicRangestring or nullSource video dynamic range when provided.
transcriptobject or nullRequested transcript and optional translation for a known clip.
transcript.detectedLanguagestring or nullLanguage detected for the original transcript.
transcript.segmentsarray of objectsOrdered time-aligned segments in the original language.
transcript.segments[].startSecondsnumberSegment start time in seconds.
transcript.segments[].endSecondsnumberSegment end time in seconds.
transcript.segments[].textstringWords spoken in the segment.
transcript.translationobject or nullRequested translation with the same segment timing.
transcript.translation.languagestringTarget translation language.
transcript.translation.segmentsarray of objectsOrdered translated segments aligned to the original transcript.
transcript.translation.segments[].startSecondsnumberTranslated segment start time in seconds.
transcript.translation.segments[].endSecondsnumberTranslated segment end time in seconds.
transcript.translation.segments[].textstringTranslated 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.

FieldTypeWhat it does
clipIdstringStable ID of the Kick clip.
clipUrlstringPublic Kick page for the clip.
titlestring or nullTitle published for the clip.
creatorobject or nullCreator details published with the clip.
creator.channelIdstring or nullStable ID of the creator channel.
creator.usernamestring or nullCreator username on Kick.
categorystring or nullKick category published for the clip.
publishedAtstring or nullTime when Kick published the clip.
viewsinteger or nullNumber of views reported for the clip.
likesinteger or nullNumber of likes reported for the clip.
clipAgeSecondsnumber or nullClip age at the time of the result, in seconds.
viewsPerHournumber or nullView rate shown for the clip, in views per hour.
rankinteger or nullPosition in discovery results. It is null for this known clip lookup.
isMatureboolean or nullWhether Kick flags the clip as mature.
durationSecondsnumber or nullClip duration in seconds.
videoUrlstring or nullDependable source-hosted video URL when Kick provides one.
thumbnailUrlstring or nullSource thumbnail URL when Kick provides one.
mediaobject or nullTechnical media details when Kick provides them.
media.fileTypestring or nullSource file type.
media.fileSizeBytesinteger or nullSource file size in bytes.
media.widthinteger or nullVideo width in pixels.
media.heightinteger or nullVideo height in pixels.
media.frameRatenumber or nullVideo frame rate in frames per second.
media.videoCodecstring or nullVideo codec used by the source file.
media.audioCodecstring or nullAudio codec used by the source file.
media.bitrateKbpsnumber or nullSource file bitrate in kilobits per second.
media.dynamicRangestring or nullSource video dynamic range when provided.
transcriptobject or nullRequested transcript and optional translation for a known clip.
transcript.detectedLanguagestring or nullLanguage detected for the original transcript.
transcript.segmentsarray of objectsOrdered time-aligned segments in the original language.
transcript.segments[].startSecondsnumberSegment start time in seconds.
transcript.segments[].endSecondsnumberSegment end time in seconds.
transcript.segments[].textstringWords spoken in the segment.
transcript.translationobject or nullRequested translation with the same segment timing.
transcript.translation.languagestringTarget translation language.
transcript.translation.segmentsarray of objectsOrdered translated segments aligned to the original transcript.
transcript.translation.segments[].startSecondsnumberTranslated segment start time in seconds.
transcript.translation.segments[].endSecondsnumberTranslated segment end time in seconds.
transcript.translation.segments[].textstringTranslated 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.

FieldTypeWhat it does
clipIdstringStable ID of the Kick clip.
clipUrlstringPublic Kick page for the clip.
titlestring or nullTitle published for the clip.
creatorobject or nullCreator details published with the clip.
creator.channelIdstring or nullStable ID of the creator channel.
creator.usernamestring or nullCreator username on Kick.
categorystring or nullKick category published for the clip.
publishedAtstring or nullTime when Kick published the clip.
viewsinteger or nullNumber of views reported for the clip.
likesinteger or nullNumber of likes reported for the clip.
clipAgeSecondsnumber or nullClip age at the time of the result, in seconds.
viewsPerHournumber or nullView rate shown for the clip, in views per hour.
rankinteger or nullPosition in discovery results. It is null for this known clip lookup.
isMatureboolean or nullWhether Kick flags the clip as mature.
durationSecondsnumber or nullClip duration in seconds.
videoUrlstring or nullDependable source-hosted video URL when Kick provides one.
thumbnailUrlstring or nullSource thumbnail URL when Kick provides one.
mediaobject or nullTechnical media details when Kick provides them.
media.fileTypestring or nullSource file type.
media.fileSizeBytesinteger or nullSource file size in bytes.
media.widthinteger or nullVideo width in pixels.
media.heightinteger or nullVideo height in pixels.
media.frameRatenumber or nullVideo frame rate in frames per second.
media.videoCodecstring or nullVideo codec used by the source file.
media.audioCodecstring or nullAudio codec used by the source file.
media.bitrateKbpsnumber or nullSource file bitrate in kilobits per second.
media.dynamicRangestring or nullSource video dynamic range when provided.
transcriptobject or nullRequested transcript and optional translation for a known clip.
transcript.detectedLanguagestring or nullLanguage detected for the original transcript.
transcript.segmentsarray of objectsOrdered time-aligned segments in the original language.
transcript.segments[].startSecondsnumberSegment start time in seconds.
transcript.segments[].endSecondsnumberSegment end time in seconds.
transcript.segments[].textstringWords spoken in the segment.
transcript.translationobject or nullRequested translation with the same segment timing.
transcript.translation.languagestringTarget translation language.
transcript.translation.segmentsarray of objectsOrdered translated segments aligned to the original transcript.
transcript.translation.segments[].startSecondsnumberTranslated segment start time in seconds.
transcript.translation.segments[].endSecondsnumberTranslated segment end time in seconds.
transcript.translation.segments[].textstringTranslated 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.

FieldTypeWhat it does
clipIdstringStable ID of the Kick clip.
clipUrlstringPublic Kick page for the clip.
titlestring or nullTitle published for the clip.
creatorobject or nullCreator details published with the clip.
creator.channelIdstring or nullStable ID of the creator channel.
creator.usernamestring or nullCreator username on Kick.
categorystring or nullKick category published for the clip.
publishedAtstring or nullTime when Kick published the clip.
viewsinteger or nullNumber of views reported for the clip.
likesinteger or nullNumber of likes reported for the clip.
clipAgeSecondsnumber or nullClip age at the time of the result, in seconds.
viewsPerHournumber or nullView rate shown for the clip, in views per hour.
rankinteger or nullPosition in discovery results. It is null for this known clip lookup.
isMatureboolean or nullWhether Kick flags the clip as mature.
durationSecondsnumber or nullClip duration in seconds.
videoUrlstring or nullDependable source-hosted video URL when Kick provides one.
thumbnailUrlstring or nullSource thumbnail URL when Kick provides one.
mediaobject or nullTechnical media details when Kick provides them.
media.fileTypestring or nullSource file type.
media.fileSizeBytesinteger or nullSource file size in bytes.
media.widthinteger or nullVideo width in pixels.
media.heightinteger or nullVideo height in pixels.
media.frameRatenumber or nullVideo frame rate in frames per second.
media.videoCodecstring or nullVideo codec used by the source file.
media.audioCodecstring or nullAudio codec used by the source file.
media.bitrateKbpsnumber or nullSource file bitrate in kilobits per second.
media.dynamicRangestring or nullSource video dynamic range when provided.
transcriptobject or nullRequested transcript and optional translation for a known clip.
transcript.detectedLanguagestring or nullLanguage detected for the original transcript.
transcript.segmentsarray of objectsOrdered time-aligned segments in the original language.
transcript.segments[].startSecondsnumberSegment start time in seconds.
transcript.segments[].endSecondsnumberSegment end time in seconds.
transcript.segments[].textstringWords spoken in the segment.
transcript.translationobject or nullRequested translation with the same segment timing.
transcript.translation.languagestringTarget translation language.
transcript.translation.segmentsarray of objectsOrdered translated segments aligned to the original transcript.
transcript.translation.segments[].startSecondsnumberTranslated segment start time in seconds.
transcript.translation.segments[].endSecondsnumberTranslated segment end time in seconds.
transcript.translation.segments[].textstringTranslated 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.

EventWhat it covers
Discovered clipOne public Kick clip found during discovery, with metadata and a source video URL when available.
Clip metadataMetadata for one supplied public Kick clip, with unavailable source values kept as null.
Clip transcriptOne detected-language transcript with ordered time-aligned segments for a public Kick clip.
Clip translationOne 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

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 🫡

Made with ❤️ by Maxime Dupré