VK Video Downloader
Pricing
from $2.65 / 1,000 resolved videos
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é
Maintained by CommunityActor stats
0
Bookmarked
18
Total users
3
Monthly active users
13 hours ago
Last modified
Categories
Share
📥 VK video downloader for direct media links
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.
- Resolve one known public target into a structured row with Get video VK.
- Choose an MP4 quality link from a resolved video with Download VK video MP4.
- Pass direct source MP4 links to another workflow with VK video downloader MP4.
- Resolve a known public target through an online run with VK video downloader online.
- Collect source media links and metadata for review with Download VK video.
📦 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
videoIdidentifies the source video in owner and video ID form.submittedUrlkeeps the video or post URL that first produced the row.title,description,author,durationSeconds, andpublishedAtcontain source-exposed video details when available.thumbnailscontains source thumbnail variants.engagementcontains public views, likes, reposts, and comments when VK exposes them.mediacontains 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
- Open the Actor input.
- Paste one or more public VK or VKVideo video or post URLs in Video or post URLs.
- Start the Actor.
- Open the default dataset.
- Use the
mediaarray 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
| Field | Type | What it does |
|---|---|---|
videoUrls | array of objects | Required list of public VK or VKVideo video URLs, plus public VK wall-post URLs that contain an attached video. |
videoUrls[].url | string | URL 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
| Field | Type | What it does |
|---|---|---|
results | string | Opens 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.
| Field | Type | What it does |
|---|---|---|
videoId | string | Stable source video identity in owner and video ID form. |
submittedUrl | string | Video or post URL that first produced this row. |
title | string or null | Video title when VK exposes one. |
description | string or null | Video description or caption when VK exposes one. |
author | object or null | Source-exposed author, uploader, profile, group, or channel details. |
author.id | string or null | Source-native author, profile, group, or channel identifier. |
author.name | string or null | Visible author, uploader, profile, group, or channel name. |
author.url | string or null | Public author, profile, group, or channel URL when available. |
durationSeconds | integer or null | Video duration in seconds when VK exposes it. |
publishedAt | string or null | Source publish timestamp or date when VK exposes it. |
thumbnails | array of objects | Source thumbnail image variants in source order. |
thumbnails[].url | string | Direct source thumbnail URL. |
thumbnails[].width | integer or null | Thumbnail width in pixels when known. |
thumbnails[].height | integer or null | Thumbnail height in pixels when known. |
engagement | object or null | Public engagement counts when VK exposes them. |
engagement.views | integer or null | View count when available. |
engagement.likes | integer or null | Like count when available. |
engagement.reposts | integer or null | Repost count when available. |
engagement.comments | integer or null | Comment count when available. |
media | array of objects | Direct source-hosted video, audio, merged media, or stream links exposed for this video. |
media[].url | string | Direct source-hosted media URL or stream manifest URL. |
media[].type | string | Media link kind: video, audio, merged, or manifest. |
media[].format | string or null | File or stream format when known. |
media[].quality | string or null | Source quality label when available. |
media[].width | integer or null | Media width in pixels when known. |
media[].height | integer or null | Media height in pixels when known. |
media[].bitrate | integer or null | Media bitrate when VK exposes it. |
media[].codec | string or null | Codec label when VK exposes it. |
media[].expiresAt | string or null | Known 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.
Can direct media links expire?
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 🫡
🔗 Related Actors
- VK Videos Search Scraper ↗ - Search public VK and VKVideo videos by keyword or search URL.
- VK Posts Scraper ↗ - Scrape public VK wall posts, authors, dates, engagement, media metadata, and source links.
- Facebook Media Downloader ↗ - Extract public Facebook video and reel media links, thumbnails, captions, and engagement.
- TikTok Video Downloader ↗ - Download public TikTok videos or audio files from video URLs.
- Pinterest Video Downloader ↗ - Extract public Pinterest pin video and image URLs with pinner, board, and media variant data.
Made with ❤️ by Maxime Dupré