VK Video Downloader avatar

VK Video Downloader

Pricing

from $2.65 / 1,000 resolved videos

Go to Apify Store
VK Video Downloader

VK Video Downloader

Resolve public VK and VKVideo video or post URLs into direct source-hosted media links. Export video IDs, titles, authors, duration, thumbnails, engagement, quality variants, formats, and URL expiry hints for API, schedules, and integrations.

Pricing

from $2.65 / 1,000 resolved videos

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

18

Total users

3

Monthly active users

13 hours ago

Last modified

Share

VK Video Downloader helps developers, analysts, and content teams resolve known public VK and VKVideo URLs into direct source-hosted media links and structured video data. Submit video URLs or public VK wall-post URLs with an attached video to get one row for each resolved video, with its first eligible submitted URL, source identity, metadata, thumbnails, engagement counts, and available media variants.

Use this VK video downloader when you already know the public targets you want to review, pass into a content workflow, archive by source link, compare public video data, or process through an API pipeline. It does not search VK, crawl profiles, scrape comments, save media files, or bypass private access.

📦 Resolved VK video rows

Each output row represents one resolved public VK or VKVideo video. The first eligible submitted URL for a source video creates the row. Later duplicate URLs that point to the same source video are skipped, and the saved row keeps the first submitted URL in submittedUrl.

Row contents

  • videoId identifies the source video in owner and video ID form.
  • submittedUrl keeps the video or post URL that first produced the row.
  • title, description, author, durationSeconds, and publishedAt contain source-exposed video details when available.
  • thumbnails contains source thumbnail variants.
  • engagement contains public views, likes, reposts, and comments when VK exposes them.
  • media contains direct source-hosted video, audio, merged, or stream manifest links with available format, quality, dimensions, bitrate, codec, and expiry fields.

The default dataset can be opened in Apify and exported as JSON, CSV, Excel, XML, RSS, or HTML. You can also read it through the Apify API or connect a run to a schedule or webhook.

🚀 Run the VK video resolver

  1. Open the Actor input.
  2. Paste one or more public VK or VKVideo video or post URLs in Video or post URLs.
  3. Start the Actor.
  4. Open the default dataset.
  5. Use the media array to choose the quality or stream format your workflow needs.

Valid rows are saved as targets are resolved, so you can inspect results while a batch continues. Use known public targets. For keyword discovery, use VK Videos Search Scraper instead. A target that does not resolve to a public video with source-backed media is skipped without a placeholder row.

The input has no VK credential fields. Use public targets that VK exposes without a login.

⚙️ Input

Input fields

FieldTypeWhat it does
videoUrlsarray of objectsRequired list of public VK or VKVideo video URLs, plus public VK wall-post URLs that contain an attached video.
videoUrls[].urlstringURL of the known public video or post target to resolve.

Example input

This is the public input from a successful current-beta default-input run:

{
"videoUrls": [
{
"url": "https://vkvideo.ru/video-72701555_456239262"
},
{
"url": "https://vk.com/video-22639630_456241862"
},
{
"url": "https://vkvideo.ru/video-109707064_456239486"
},
{
"url": "https://vkvideo.ru/video-82360088_456241927"
},
{
"url": "https://vk.com/wall-72701555_2889"
}
]
}

Use direct video or post targets. For keyword discovery, use VK Videos Search Scraper instead.

🧾 Output

Run output

FieldTypeWhat it does
resultsstringOpens the default dataset overview for saved public VK and VKVideo video rows.

Dataset row fields

Each saved dataset row has one shape. Optional values are null when VK does not expose them. media has at least one source-backed link for a saved row.

FieldTypeWhat it does
videoIdstringStable source video identity in owner and video ID form.
submittedUrlstringVideo or post URL that first produced this row.
titlestring or nullVideo title when VK exposes one.
descriptionstring or nullVideo description or caption when VK exposes one.
authorobject or nullSource-exposed author, uploader, profile, group, or channel details.
author.idstring or nullSource-native author, profile, group, or channel identifier.
author.namestring or nullVisible author, uploader, profile, group, or channel name.
author.urlstring or nullPublic author, profile, group, or channel URL when available.
durationSecondsinteger or nullVideo duration in seconds when VK exposes it.
publishedAtstring or nullSource publish timestamp or date when VK exposes it.
thumbnailsarray of objectsSource thumbnail image variants in source order.
thumbnails[].urlstringDirect source thumbnail URL.
thumbnails[].widthinteger or nullThumbnail width in pixels when known.
thumbnails[].heightinteger or nullThumbnail height in pixels when known.
engagementobject or nullPublic engagement counts when VK exposes them.
engagement.viewsinteger or nullView count when available.
engagement.likesinteger or nullLike count when available.
engagement.repostsinteger or nullRepost count when available.
engagement.commentsinteger or nullComment count when available.
mediaarray of objectsDirect source-hosted video, audio, merged media, or stream links exposed for this video.
media[].urlstringDirect source-hosted media URL or stream manifest URL.
media[].typestringMedia link kind: video, audio, merged, or manifest.
media[].formatstring or nullFile or stream format when known.
media[].qualitystring or nullSource quality label when available.
media[].widthinteger or nullMedia width in pixels when known.
media[].heightinteger or nullMedia height in pixels when known.
media[].bitrateinteger or nullMedia bitrate when VK exposes it.
media[].codecstring or nullCodec label when VK exposes it.
media[].expiresAtstring or nullKnown expiry timestamp for this direct media URL when available.

Example dataset row

This is a shortened genuine row from successful current-beta run UveYiSx4FdkJj4tqj. It keeps useful real values from the first row. The string "..." marks omitted long text or additional nested values, so this is not a complete row.

{
"videoId": "-72701555_456239262",
"submittedUrl": "https://vkvideo.ru/video-72701555_456239262",
"title": "БОЛЬШОЙ обзор складных велосипедов BIKE'S",
"description": "...",
"author": {
"id": "-72701555",
"name": "MOSGORBIKE",
"url": "https://vk.com/mosgorbike"
},
"durationSeconds": 785,
"publishedAt": "2024-01-24T13:35:03.000Z",
"thumbnails": [
{
"url": "https://iv.okcdn.ru/getVideoPreview?id=6260889225773&idx=3&type=39&tkn=MfnfSLbNOj0SCIO4zNgI4EgwHyA&fn=vid_s&scl=0",
"width": 130,
"height": 96
},
"..."
],
"engagement": {
"views": 7477,
"likes": 55,
"reposts": 7,
"comments": 5
},
"media": [
{
"url": "https://vkvd532.okcdn.ru/?srcIp=104.232.198.117&pr=40&expires=1791201658035&srcAg=CHROME_MAC&fromCache=1&ms=185.226.55.170&type=7&subId=6262231009837&sig=XnkdY81WhBc&ct=0&urls=185.180.203.233&clientType=13&appId=512000384397&zs=43&id=6260889225773",
"type": "video",
"format": "mp4",
"quality": "2160p",
"width": null,
"height": 2160,
"bitrate": null,
"codec": null,
"expiresAt": "2026-10-05T12:00:58.035Z"
},
"..."
]
}

💳 Pricing

This Actor uses pay-per-event pricing. You are charged $0.00265 for each public VK or VKVideo video that is resolved and saved to the dataset, equal to $2.65 per 1,000 resolved videos.

Invalid, private, deleted, login-only, unsupported, unresolved, or no-media targets are reported in logs and do not create paid video events. There is no separate Actor-start charge.

Limits and caveats

  • The Actor works with public VK and VKVideo video or post URLs only.
  • It does not search VK, scrape profiles, crawl groups, collect comments, or discover trending videos.
  • It does not save, mirror, ZIP, or persist video or audio files into Apify storage.
  • Direct media links are source-hosted VK or OK CDN URLs. They can expire or stop working when the source rotates signed URLs, so use them soon after the run.
  • Different videos expose different quality variants, formats, engagement counts, and technical fields.
  • Private, removed, login-only, restricted, unsupported, or no-video targets are skipped without dataset rows.

🔌 Integrations

Run the Actor in Apify Console, through the Apify API, on a schedule, or with webhooks that pass dataset results into your workflow.

❓ FAQ

Can I submit VK and VKVideo URLs in one run?

Yes. Add known public video URLs from either domain, or add a public VK wall-post URL when it exposes an attached video.

What happens when a target is private, deleted, or has no media?

The target is skipped without a dataset row or a resolved-video event. Other valid targets can still produce rows in the same run.

How are duplicate URLs handled?

The first eligible occurrence of a source video creates the row. Later submitted URLs that point to the same source video are ignored, and the row keeps the first submitted URL.

Can a wall-post URL produce a video row?

Yes, when the public post exposes an attached video with source-backed media. A post without a resolvable video is skipped.

Yes. The links are hosted by the source and can change or expire. Use them soon after the run and check expiresAt when VK provides it.

Does it save video files to Apify storage?

No. It returns direct source-hosted media links and stream manifests. It does not create Apify-hosted copies, ZIP archives, permanent mirrors, or saved video files.

Can it search VK videos by keyword?

No. This Actor resolves supplied video and post targets. Use VK Videos Search Scraper when you need keyword or search URL discovery.

Do I need VK cookies or a VK login?

The input has no VK credential fields. Use public VK or VKVideo targets that VK exposes without a login.

📝 Changelog

v1.0 (30-09-2026)

  • Reports each skipped invalid, private, deleted, unsupported, unresolved, or no-media target with its submitted value and continues with remaining inputs.
  • Keeps skipped targets out of the dataset and charges only for videos saved.
  • Stores the submitted URL that produced each saved video row.

v0.0

  • 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é