VK Clips Scraper
Pricing
Pay per event
VK Clips Scraper
Extract public VK Clips, creator metadata, captions, engagement, thumbnails, and optional temporary media links for short-video trend monitoring.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
4 days ago
Last modified
Categories
Share
Collect public VK Clips for short-video trend monitoring without a VK login. The Actor discovers clips from VK's public recommendation feed or refreshes specific public clip URLs, then saves creator metadata, captions, engagement, thumbnails, and optional temporary media links as structured dataset records.
Use it to replace manual clip checking with repeatable Apify runs that can be scheduled, compared, exported, or connected to a data pipeline.
What VK Clips Scraper does
The Actor supports two focused workflows:
- Recommended feed discovery — collect current public clips from VK's recommendation surface and paginate until the requested limit or page cap.
- Specific clip refreshes — submit known
vk.com/clip...orvk.com/video...URLs and refresh their public metadata and engagement.
Both modes use VK's anonymous public video data surface. No VK username, password, access token, or account cookie is required.
The Actor does not download video files. When enabled, it returns the temporary public MP4 and HLS links supplied by VK so downstream systems can decide how to use them responsibly.
Who is it for
- Social media analysts comparing current short-video formats and creators
- Brand and agency teams tracking visible engagement on known clips
- Researchers archiving public metadata snapshots for longitudinal analysis
- Editors and trend scouts discovering high-engagement public clips
- Data engineers feeding VK short-video records into spreadsheets or warehouses
- Automation teams scheduling recurring runs and diffing datasets
Choose VK Posts Scraper when you need wall posts and attachments rather than the Clips surface.
Why use this Actor
- Clip-specific output: only VK records identified as public short videos are saved.
- Discovery and refresh: use a feed for exploration or exact URLs for tracking.
- Engagement filters: filter on views, likes, comments, and reposts before saving.
- Typed records: stable IDs and normalized dates are ready for downstream use.
- Low overhead: HTTP API requests are used instead of launching a browser.
- No media transfer: thumbnails and video files are not downloaded by the Actor.
- Apify-native: run manually, on a schedule, by API, or through MCP.
Data you can extract
| Field | Meaning |
|---|---|
clipId | Stable VK identifier in owner_id_clip_id form |
clipUrl | Canonical public vk.com/clip... URL |
ownerId | VK owner ID; negative IDs represent communities |
authorName | Public creator or community name |
authorHandle | Public VK screen name when available |
authorUrl | Public creator or community URL |
authorFollowers | Public follower or member count when returned |
authorAvatarUrl | Public profile image URL |
title | VK's public clip title |
caption | Public description or caption |
publishedAt | ISO 8601 publication timestamp |
durationSeconds | Clip duration |
width, height | Source video dimensions |
views | Public view count at scrape time |
likes | Public like count at scrape time |
comments | Public comment count at scrape time |
reposts | Public repost count at scrape time |
thumbnailUrl | Largest public preview returned by VK |
mediaUrls | Optional temporary MP4/HLS URLs |
sourceMode | recommended or clips |
scrapedAt | ISO 8601 collection timestamp |
Some optional fields can be absent when VK does not expose them for a clip.
Getting started
- Open the Actor input page.
- Select Recommended feed or Specific clip URLs.
- Set
maxItemsto the number of accepted records you need. - For URL mode, add one or more public VK Clip URLs.
- Optionally set minimum engagement thresholds.
- Keep Include public media URLs enabled only when you need signed links.
- Click Start.
- Open the default dataset or export it as JSON, CSV, Excel, or XML.
A first discovery test with 10 items is usually enough to inspect the schema.
Input parameters
| Input | Type | Default | Description |
|---|---|---|---|
mode | string | recommended | Recommendation discovery or exact URL refresh |
clipUrls | array | sample public clip | Required in clips mode; maximum 500 URLs |
maxItems | integer | 25 | Maximum records saved after filters, 1–500 |
maxPages | integer | 10 | Recommendation pages scanned, 1–50 |
minViews | integer | 0 | Minimum public views |
minLikes | integer | 0 | Minimum public likes |
minComments | integer | 0 | Minimum public comments |
minReposts | integer | 0 | Minimum public reposts |
includeMediaUrls | boolean | true | Include temporary signed media links |
proxyConfiguration | object | direct | Optional Apify Proxy configuration |
maxPages is a scan safety limit, not a promise of that many result pages.
Filters can produce fewer records than maxItems when the scanned feed does
not contain enough matching clips.
Recommended feed example
{"mode": "recommended","maxItems": 10,"maxPages": 3,"includeMediaUrls": true}
This input discovers up to 10 current public records and includes the signed media links VK returns with each clip.
Specific clip example
{"mode": "clips","clipUrls": [{ "url": "https://vk.com/clip-234902882_456239861" }],"maxItems": 1,"includeMediaUrls": true}
Use this mode in a scheduled task to collect repeated engagement snapshots for a stable list of public clip URLs.
High-engagement monitoring example
{"mode": "recommended","maxItems": 20,"maxPages": 10,"minViews": 10000,"minLikes": 100,"includeMediaUrls": false}
This workflow scans more recommendation pages while saving only clips that meet
both thresholds. Schedule it daily or weekly, then compare datasets by clipId.
Output example
A current explicit-URL test produced a record shaped like this:
{"clipId": "-234902882_456239861","clipUrl": "https://vk.com/clip-234902882_456239861","ownerId": -234902882,"authorName": "ФИЛЬМАБОЙСЫ","authorHandle": "filmaboysi","authorUrl": "https://vk.com/filmaboysi","title": "Клип @filmaboysi","durationSeconds": 72,"width": 720,"height": 960,"views": 544390,"likes": 47139,"comments": 141,"reposts": 2366,"thumbnailUrl": "https://i.mycdn.me/videoPreview?...","sourceMode": "clips","scrapedAt": "2026-07-30T07:50:00.000Z"}
Counts naturally change over time. Signed URLs and token-like query parameters in media links are omitted from this documentation example.
How much does it cost to monitor VK Clips?
The Actor uses pay per event pricing:
- Start: $0.030 per run
- VK Clip saved: the BRONZE tier is $0.003192 per dataset record
- Higher-volume subscription tiers receive a lower per-record price
- Rejected, duplicate, filtered, unavailable, or failed records are not charged
Example BRONZE totals:
| Saved clips | Estimated Actor charge |
|---|---|
| 1 | $0.033192 |
| 10 | $0.061920 |
| 25 | $0.109800 |
| 100 | $0.349200 |
Apify platform usage and proxy usage can be billed separately according to your Apify plan. Direct access is the default, so no proxy transfer is required for the normal public API path.
Scheduling trend monitoring
Create an Apify Schedule with the high-engagement input and a daily or weekly
interval. Keep each run's dataset, then join records by clipId to calculate:
- view growth since the previous run
- like, comment, and repost growth
- newly observed recommendation-feed clips
- creators appearing repeatedly in accepted results
- changes to captions or public metadata
Recommendation feeds are dynamic and can vary between runs. Treat them as samples of the currently returned public feed, not as a complete historical index of all VK Clips.
Export and integration patterns
The default dataset works with Apify's built-in JSON, CSV, Excel, XML, RSS, and JSONL exports. Common workflows include:
- send new records to Google Sheets after a scheduled run
- load snapshots into BigQuery, Snowflake, or PostgreSQL
- trigger a webhook when a run succeeds
- compare
views,likes,comments, andrepostsby stableclipId - use
authorHandleto group trends by public creator - keep
includeMediaUrlsfalse when only analytics fields are needed
The Actor saves one primary entity type, so all clip records stay in the default dataset for compatibility with integrations.
Run with the Apify API
Replace APIFY_TOKEN with your Apify API token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~vk-clips-scraper/runs?token=APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"mode":"recommended","maxItems":10,"maxPages":3}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/vk-clips-scraper').call({mode: 'recommended',maxItems: 10,maxPages: 3,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/vk-clips-scraper').call(run_input={'mode': 'clips','clipUrls': [{'url': 'https://vk.com/clip-234902882_456239861'}],'maxItems': 1,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use with MCP and AI agents
Add the Apify MCP server to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/vk-clips-scraper"
Claude Desktop, Cursor, and VS Code
Claude Desktop, Cursor, and VS Code can use this equivalent configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/vk-clips-scraper"}}}
Example prompts
Example prompts showing MCP usage include:
- "Collect 10 current VK Clips and rank them by public views."
- "Refresh this VK Clip URL and summarize its engagement counts."
- "Run a high-engagement VK Clips scan and export the dataset as CSV."
Reliability and retries
The Actor retries transient HTTP failures twice. Token acquisition and data calls share one network identity, including one sticky session when proxy use is enabled. Deterministic invalid inputs fail immediately rather than wasting requests.
If VK returns no clips for a valid filtered discovery input, the run succeeds with an empty dataset. If token acquisition or the public API fails, the run fails visibly so a schedule or webhook can react.
Limitations
- Only public, anonymously accessible VK short-video records are supported.
- Private, deleted, restricted, or unavailable clips are not bypassed.
- Recommendation results are dynamic, personalized anonymously, and not exhaustive.
- Exact URL mode accepts URLs containing a VK owner ID and clip/video ID.
- Engagement counts are point-in-time values and can change after collection.
- Public signed MP4/HLS URLs expire and should be refreshed by rerunning.
- The Actor does not download, transcode, caption, or permanently host media.
- Author follower/member counts can be absent when VK omits them.
maxPagesbounds feed scanning; strict filters can return fewer thanmaxItems.
Proxy guidance
Direct access is the tested default and has the lowest transfer cost. If your network cannot reach VK, configure Apify Proxy in the input. The Actor keeps the token and API requests on one sticky proxy identity.
Use residential proxy groups only when your use case requires them. A local Russian residential-proxy validation returned a correct explicit clip record, but residential transfer is paid infrastructure and is not enabled automatically.
Legality and responsible use
Collect only public information you are authorized to process. Follow VK's terms, Apify's policies, applicable copyright rules, privacy law, and your own organization's retention requirements.
A public media URL does not transfer ownership or grant redistribution rights. Do not use this Actor to republish videos without permission, evade access controls, profile sensitive individuals, or make solely automated decisions about people.
Troubleshooting
The run says clip URLs are required.
You selected clips mode without adding clipUrls. Add at least one public
vk.com/clip... or compatible vk.com/video... URL.
A URL is rejected as invalid.
Confirm it belongs to VK and contains both owner and clip IDs, for example
clip-234902882_456239861.
The dataset has fewer records than maxItems.
The feed may have ended, repeated clips may have been deduplicated, or your
engagement filters rejected records. Increase maxPages or relax filters.
Media links no longer open.
They are temporary signed links returned by VK. Rerun the Actor to obtain fresh
links, or disable includeMediaUrls for metadata-only workflows.
A scheduled run fails upstream.
Inspect the run log for a VK API or network error. Retry later, or enable an appropriate Apify Proxy configuration if your execution network is restricted.
FAQ
Does it require a VK account?
No. It uses VK's anonymous public video data flow and does not accept account credentials.
Can it search by keyword?
No. This Actor covers the current recommendation feed and exact public clip URL refreshes. It does not claim keyword search.
Does it scrape ordinary VK posts?
No. Use VK Posts Scraper for wall posts and their attachments.
Are video files included in the dataset?
No binary files are downloaded. Optional mediaUrls contains temporary public
links returned by VK.
Can I track growth over time?
Yes. Schedule repeat runs, retain each dataset, and compare records by clipId.
The Actor outputs snapshots; it does not maintain a private historical database.
Why did a known clip return no record?
It may be deleted, private, restricted, unavailable anonymously, or no longer identified by VK as a short-video record. The Actor does not bypass restrictions.
Related Automation Labs Actors
- VK Posts Scraper — collect public VK wall posts and attachments
- VK Video Search Scraper — discover ordinary VK Video search results
Use VK Clips Scraper when the buyer job is specifically public short-video discovery, clip-level engagement monitoring, or exact clip refreshes.