VK Clips Scraper avatar

VK Clips Scraper

Pricing

Pay per event

Go to Apify Store
VK Clips Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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:

  1. Recommended feed discovery — collect current public clips from VK's recommendation surface and paginate until the requested limit or page cap.
  2. Specific clip refreshes — submit known vk.com/clip... or vk.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

FieldMeaning
clipIdStable VK identifier in owner_id_clip_id form
clipUrlCanonical public vk.com/clip... URL
ownerIdVK owner ID; negative IDs represent communities
authorNamePublic creator or community name
authorHandlePublic VK screen name when available
authorUrlPublic creator or community URL
authorFollowersPublic follower or member count when returned
authorAvatarUrlPublic profile image URL
titleVK's public clip title
captionPublic description or caption
publishedAtISO 8601 publication timestamp
durationSecondsClip duration
width, heightSource video dimensions
viewsPublic view count at scrape time
likesPublic like count at scrape time
commentsPublic comment count at scrape time
repostsPublic repost count at scrape time
thumbnailUrlLargest public preview returned by VK
mediaUrlsOptional temporary MP4/HLS URLs
sourceModerecommended or clips
scrapedAtISO 8601 collection timestamp

Some optional fields can be absent when VK does not expose them for a clip.

Getting started

  1. Open the Actor input page.
  2. Select Recommended feed or Specific clip URLs.
  3. Set maxItems to the number of accepted records you need.
  4. For URL mode, add one or more public VK Clip URLs.
  5. Optionally set minimum engagement thresholds.
  6. Keep Include public media URLs enabled only when you need signed links.
  7. Click Start.
  8. 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

InputTypeDefaultDescription
modestringrecommendedRecommendation discovery or exact URL refresh
clipUrlsarraysample public clipRequired in clips mode; maximum 500 URLs
maxItemsinteger25Maximum records saved after filters, 1–500
maxPagesinteger10Recommendation pages scanned, 1–50
minViewsinteger0Minimum public views
minLikesinteger0Minimum public likes
minCommentsinteger0Minimum public comments
minRepostsinteger0Minimum public reposts
includeMediaUrlsbooleantrueInclude temporary signed media links
proxyConfigurationobjectdirectOptional 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.

{
"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 clipsEstimated 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, and reposts by stable clipId
  • use authorHandle to group trends by public creator
  • keep includeMediaUrls false 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 os
from apify_client import ApifyClient
client = 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().items
print(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.
  • maxPages bounds feed scanning; strict filters can return fewer than maxItems.

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.

Use VK Clips Scraper when the buyer job is specifically public short-video discovery, clip-level engagement monitoring, or exact clip refreshes.