VK Clips Scraper
Pricing
from $1.70 / 1,000 vk clips
VK Clips Scraper
Collect public VK Clips from recommendations, keywords, or Clip URLs. Save structured metadata, engagement counts, thumbnails, audio details, and temporary media links when VK provides them.
Pricing
from $1.70 / 1,000 vk clips
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🎬 Build a public VK Clips dataset
For social media researchers, trend analysts, content teams, and developers, this Actor collects public VK Clips from recommendations, keyword searches, or Clip URLs. It saves structured rows with clip links, titles or captions, publication details, creator context, engagement counts, thumbnails, audio data, and temporary MP4 or HLS links when VK provides them. Use the data to review trends, compare public engagement, or feed a dataset into your workflow. It also gives you VK Clips download links when VK returns temporary source links.
- Search public short videos by topic with VK Clips Search.
- Collect public clip metadata in structured rows with VK Clips Scraper.
- Review temporary source media links from public clips with Download VK Clips.
- Resolve known public Clip URLs to media links and metadata with VK Clips Downloader.
- Review available source links for public clips with VK Clips Download.
📦 Public VK Clip records
Each saved row represents one accepted public VK Clip. The row includes a stable clip ID, canonical URL, available title or caption, publication time, duration, dimensions, owner details, engagement counts, thumbnail data, temporary media links, audio-track data, and the first keyword that found it when keyword discovery is used.
If the same source clip appears again through another keyword or submitted URL, the Actor keeps the first eligible occurrence and ignores later matches. The saved row describes that first match only. Private, deleted, restricted, or otherwise unavailable public content is not collected.
🚀 Find clips your way
Choose one discovery method for each run:
- Recommendations collects current public clips from VK's recommendation feed.
- Keywords searches public clips for one or more terms in one keyword run.
- Clip URLs refreshes current public metadata for submitted public Clip URLs. Unavailable clips are skipped so other submitted URLs can continue.
Set engagement minimums when you want to keep clips above selected public view, like, comment, or repost counts. Set Maximum clips to a positive number when you want a bounded run. Leave it empty to return all available results until the source is exhausted.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
discoveryMethod | string | Chooses recommendations, keywords, or clipUrls. |
keywords | array of strings | Enter one or more words or phrases for public VK Clip search. Use a separate run for a different search setup. |
clipUrls | array of objects | Enter one or more public VK Clip URLs. Each object contains a url value. The Actor refreshes current public metadata for each URL. |
clipUrls[].url | URL string | Public VK Clip URL to refresh. |
maxItems | integer, optional | Sets the maximum number of accepted clips saved by the run. Leave it empty to return all available results until the source is exhausted. |
filters | object, optional | Holds the minimum public engagement counts to apply. Leave a filter field empty to skip that filter. |
filters.minViews | integer, optional | Keeps clips with at least this many public views. |
filters.minLikes | integer, optional | Keeps clips with at least this many public likes. |
filters.minComments | integer, optional | Keeps clips with at least this many public comments. |
filters.minReposts | integer, optional | Keeps clips with at least this many public reposts. |
keywords is used with discoveryMethod set to keywords. clipUrls is used with discoveryMethod set to clipUrls. The selected method determines which method-specific field is shown.
Example input
This is the smallest public input from a successful current-beta run:
{"discoveryMethod": "recommendations","maxItems": 100}
🧾 Output
Run output
| Field | Type | What it does |
|---|---|---|
datasetItems | string | Opens saved public VK Clips in the default dataset. |
Dataset rows
Each dataset row uses one shape. Optional fields appear when VK provides them. The required top-level fields are clipId, clipUrl, and owner.
| Field | Type | What it does |
|---|---|---|
clipId | string | Stable identifier of the public VK Clip. |
clipUrl | URL string | Canonical public URL of the VK Clip. |
title | string, optional | Public title of the clip when VK provides one. |
description | string, optional | Public description or caption of the clip when VK provides one. |
publishedAt | ISO date-time string, optional | Date and time when the clip was published, when VK provides it. |
durationSeconds | integer, optional | Length of the clip in seconds when VK provides it. |
dimensions | object, optional | Source dimensions of the clip in pixels. |
dimensions.width | integer | Source width in pixels. |
dimensions.height | integer | Source height in pixels. |
owner | object | Public creator or community that owns the clip. It always includes id, type, and name. |
owner.id | string | Stable identifier of the public creator or community. |
owner.type | string | Owner type: user or community. |
owner.name | string | Public name of the creator or community. |
owner.handle | string, optional | Public handle when VK provides one. |
owner.profileUrl | URL string, optional | Public profile URL when VK provides one. |
owner.avatarUrl | URL string, optional | Public avatar image URL when VK provides one. |
owner.followersCount | integer, optional | Public follower count of the creator when VK provides it. |
owner.membersCount | integer, optional | Public member count of the community when VK provides it. |
engagement | object, optional | Public engagement counts for the clip when VK provides them. |
engagement.views | integer, optional | Public view count. |
engagement.likes | integer, optional | Public like count. |
engagement.comments | integer, optional | Public comment count. |
engagement.reposts | integer, optional | Public repost count. |
thumbnail | object, optional | One public thumbnail or preview image when available. It includes url. |
thumbnail.url | URL string | Direct public URL of the clip thumbnail or preview image. |
thumbnail.width | integer, optional | Thumbnail width in pixels when VK provides it. |
thumbnail.height | integer, optional | Thumbnail height in pixels when VK provides it. |
thumbnailVariants | array of objects, optional | Public thumbnail sizes exposed by VK. |
thumbnailVariants[].url | URL string | Direct public URL of a thumbnail size. |
thumbnailVariants[].width | integer, optional | Width of that thumbnail in pixels. |
thumbnailVariants[].height | integer, optional | Height of that thumbnail in pixels. |
media | object, optional | Temporary public MP4 and HLS links returned by VK. |
media.mp4 | array of objects, optional | Temporary public MP4 links in the qualities returned by VK. |
media.mp4[].url | URL string | Direct temporary public MP4 URL for a quality. |
media.mp4[].quality | string, optional | Quality label returned by VK. |
media.hls | array of objects, optional | Temporary public HLS links in the qualities returned by VK. |
media.hls[].url | URL string | Direct temporary public HLS URL for a quality. |
media.hls[].quality | string, optional | Quality label returned by VK. |
audioTrack | object, optional | Associated public audio-track information when VK exposes it. |
audioTrack.id | string, optional | Stable identifier of the associated audio track when VK provides it. |
audioTrack.title | string, optional | Public title of the associated audio track. |
audioTrack.artist | string, optional | Public artist name of the associated audio track. |
matchedKeyword | string, optional | The keyword that first produced this clip during keyword discovery. |
Example dataset row
This is a shortened genuine row from the successful current-beta recommendation run. The thumbnailVariants and media arrays are shown as "..." to keep the example short. All other shown values are from that public dataset row.
{"clipId": "-230258621_456239058","clipUrl": "https://vk.com/clip-230258621_456239058","owner": {"id": "-230258621","type": "community","name": "Dasha Shulgina","handle": "shulginadashuk","profileUrl": "https://vk.com/shulginadashuk","avatarUrl": "https://sun1-94.userapi.com/s/v1/ig2/szOKSZI2Q-XbHqT0SNWrXtzRoe_jU9ZAapYarzNZhK-c3D2suRZV4eVgpwV1bPzrWkhy6Rtxhdy4yu0BIKpQxsCA.jpg?quality=95&crop=49,110,768,768&as=32x32,48x48,72x72,108x108,160x160,240x240,360x360,480x480,540x540,640x640,720x720&ava=1&u=eEDo7cdelW-p3nOaPNTj0vcN8Q1jYb3zpWaWxZaau_Y&cs=100x100"},"title": "Clip by @shulginadashuk","publishedAt": "2026-03-23T19:41:33.000Z","durationSeconds": 59,"dimensions": {"width": 480,"height": 852},"engagement": {"views": 689794,"likes": 15610,"comments": 71,"reposts": 197},"thumbnail": {"url": "https://sun9-68.userapi.com/impg/h7z71GXjT1uf2FqRw4FIOBtbk0My_SQ5dK8zrA/YfM3THXc-Tc.jpg?size=130x96&quality=95&keep_aspect_ratio=1&background=000000&sign=ddc5a22711efa81c76f44c4ab40502fc&c_uniq_tag=JMZjmg6Ir4gFdoRUh1OIyhQCHTOPy1NNLl89IrJSeYE&type=video_thumb","width": 130,"height": 96},"thumbnailVariants": "...","media": {"mp4": "...","hls": "..."},"audioTrack": {"id": "456239042","title": "Original sound"}}
💳 Pricing
This Actor uses pay-per-event pricing. You are charged for each accepted public VK Clip saved to the default dataset. See the Pricing tab for the current tier price. The event is based on saved clips, not a fixed run size.
🔌 Integrations
Open the saved dataset in Apify or read its rows through the Apify API. Use the structured fields and source links in your own review or data workflow. The MP4 and HLS links remain temporary links supplied by VK when available.
❓ FAQ
Can I collect private or deleted VK Clips?
No. The Actor collects public VK Clips that the source makes available without bypassing access controls. Private, deleted, restricted, and login-only content is outside its scope.
What happens when a Clip matches more than one keyword or URL?
The first eligible occurrence is saved. Later matches for the same source clip are ignored, and the saved row describes the first match only. In keyword mode, matchedKeyword shows the keyword that first produced it.
Can one run use recommendations, keywords, and Clip URLs together?
No. Choose one discovery method for a run. Use separate runs for different discovery setups.
Do the media links host the videos permanently?
No. The Actor does not permanently host or mirror video files. It keeps temporary public MP4 and HLS links when VK exposes them.
What happens when I leave Maximum clips empty?
The run returns all available results until the source is exhausted, subject to the selected discovery method and filters.
How do engagement filters work?
Set a minimum for any combination of views, likes, comments, and reposts. A clip must meet each minimum you set to be accepted.
📝 Changelog
v0.0 (18-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
- VK Videos Search Scraper searches broader public VK and VKVideo video results by keyword.
- VK Video Downloader resolves known public VK or VKVideo URLs into source media links and metadata.
- TikTok Search Scraper searches public TikTok videos or creator profiles by keyword.
- YouTube Shorts Downloader turns known public Shorts URLs into source media links and metadata.
- VK Clips Search Scraper 🎥 searches public VK Clips by keyword with engagement and media data.
Made with ❤️ by Maxime Dupré