# OK.ru Post Scraper (`codenest/ok-ru-post-scraper`) Actor

Input OK.ru video or topic URLs with preferred quality and proxy settings. Outputs titles, descriptions with English translations, direct download URLs, thumbnails, images, duration, upload date, uploader info, and engagement metrics like views, likes, comments, and shares.

- **URL**: https://apify.com/codenest/ok-ru-post-scraper.md
- **Developed by:** [CodeNest](https://apify.com/codenest) (community)
- **Categories:** Videos, Social media, Developer tools
- **Stats:** 28 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $18.00 / 1,000 scraped posts

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 📥 OK.ru Post Scraper - Ultimate Odnoklassniki Media Downloader

**Effortlessly scrape and download videos, images, and posts from OK.ru with our powerful **OK.ru Post Scraper**! This Apify actor enables bulk extraction of media content, complete metadata, engagement metrics, and direct download URLs.**

***

### 📋 Overview

Need to archive OK.ru content, download videos, or analyze social media posts? This **OK.ru Post Scraper** delivers:

- 🎬 **Video Download** - Direct MP4 download URLs with quality selection
- 🖼️ **Image Extraction** - All post images with direct download links
- 📊 **Engagement Data** - Views, likes, comments, shares, and more
- 🌍 **Bilingual Support** - Original titles/descriptions with English translations
- 📁 **Key-Value Store** - Optional Apify storage for permanent URLs
- 👤 **Uploader Insights** - Channel info, followers, and verification status
- 🌐 **Proxy Support** - Residential proxy for reliable scraping

Perfect for content archivists 📚, social media analysts 📊, video editors 🎬, and market researchers 🔬!

***

### ⭐ Core Capabilities of OK.ru Post Scraper

#### 🎬 Video Extraction

- **Direct Download URLs** - CDN links for immediate download
- **Quality Selection** - Choose SD or HD quality preference
- **Multiple Format Support** - Access to various video formats
- **Duration Detection** - Precise video length in seconds
- **Thumbnail Extraction** - Preview images for each video

#### 🖼️ Image Extraction

- **All Images from Posts** - Extract every image in a post
- **Album Support** - Multiple images from albums
- **Direct Download URLs** - Permanent image links
- **High-Resolution** - Original quality preservation

#### 📊 Engagement Metrics

- **View Counts** - Total video/post views
- **Like Counts** - Reaction counts
- **Comment Counts** - Discussion volume
- **Share Counts** - Content spread metrics

#### 👤 Uploader Intelligence

- **Channel Information** - Uploader name, ID, and type (user/group)
- **Follower Counts** - Group/channel audience size
- **Verification Status** - Verified account detection
- **Avatar Extraction** - Uploader profile pictures

#### 🌍 Bilingual Content Support

- **Original Text** - Native language titles and descriptions
- **English Translations** - Automatic translation for accessibility
- **Group Attribution** - Source group information

***

### ⚙️ Input Configuration

Simply enter OK.ru video/post URLs, configure options, and click "Start". Input looks like this:

```json
{
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "save_to_kv_store": true,
  "video_urls": [
    {
      "url": "https://ok.ru/group/70000002483023/topic/160108795964239"
    },
    {
      "url": "https://ok.ru/group/70000001317301/topic/163408145800117"
    },
    {
      "url": "https://ok.ru/group/70000001317301/topic/163383830895541"
    },
    {
      "url": "https://ok.ru/video/15675052853985"
    }
  ],
  "preferred_quality": "sd"
}
```

#### 📝 Input Specifications

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `video_urls` | Array | ✅ Yes | - | Array of OK.ru URLs to scrape |
| `video_urls[].url` | String | ✅ Yes | - | OK.ru video/topic URL |
| `preferred_quality` | String | ❌ No | "sd" | Preferred video quality ("sd" or "hd") |
| `save_to_kv_store` | Boolean | ❌ No | true | Save files to Apify Key-Value Store |
| `proxy.useApifyProxy` | Boolean | ❌ No | true | Enable Apify proxy |
| `proxy.apifyProxyGroups` | Array | ❌ No | \["RESIDENTIAL"] | Proxy groups |

***

### 📤 Output Structure

Your **OK.ru Post Scraper** produces comprehensive media data with download links and engagement metrics:

```json
[
  {
    "success": true,
    "input_url": "https://ok.ru/group/70000002483023/topic/160108795964239",
    "video_id": "15826871061071",
    "media_type": "video",
    "title": "✨✨✨",
    "title_en": "✨✨✨",
    "description": "✨✨✨ | Вступай в группу...",
    "description_en": "✨✨✨ | Join the ALEXANDER FROM SIBERIA group...",
    "video_url": "https://api.apify.com/v2/key-value-stores/.../video_15826871061071.mp4",
    "direct_download_url": "https://ok6-6.vkuser.net/...",
    "thumbnail": "https://iv.okcdn.ru/videoPreview?id=17955049507407...",
    "images": [
      "https://iv.okcdn.ru/videoPreview?id=17955049507407..."
    ],
    "duration": 48,
    "upload_date": "2026-09-22",
    "uploader": "АЛЕКСАНДРА ИЗ СИБИРИ",
    "uploader_id": "70000002483023",
    "uploader_url": "https://ok.ru/group70000002483023",
    "uploader_avatar": "https://i.okcdn.ru/...",
    "uploader_type": "group",
    "uploader_followers": 52854,
    "uploader_verified": false,
    "view_count": 569051,
    "like_count": 1020,
    "comment_count": 20,
    "share_count": 7
  }
]
```

#### 📖 Output Field Documentation

**🔹 Basic Information**
| Field | Description |
|-------|-------------|
| `success` | Scraping success status |
| `input_url` | Original input URL |
| `video_id` | Unique media identifier |
| `media_type` | Type: "video" or "album" |

**🔹 Content Details**
| Field | Description |
|-------|-------------|
| `title` | Original title text |
| `title_en` | English translated title |
| `description` | Original description |
| `description_en` | English translated description |
| `duration` | Video duration in seconds (null for images) |
| `upload_date` | Publication date (YYYY-MM-DD) |

**🔹 Media Assets**
| Field | Description |
|-------|-------------|
| `video_url` | Apify KV store URL (if saved) |
| `direct_download_url` | Direct CDN download link |
| `thumbnail` | Primary thumbnail URL |
| `images` | Array of all image URLs |

**🔹 Uploader Information**
| Field | Description |
|-------|-------------|
| `uploader` | Channel/group name |
| `uploader_id` | Unique uploader identifier |
| `uploader_url` | Uploader profile URL |
| `uploader_avatar` | Profile picture URL |
| `uploader_type` | Type: "user" or "group" |
| `uploader_followers` | Follower count (null for users) |
| `uploader_verified` | Verification status |

**🔹 Engagement Metrics**
| Field | Description |
|-------|-------------|
| `view_count` | Total view count |
| `like_count` | Total likes/reactions |
| `comment_count` | Total comments |
| `share_count` | Total shares |

***

### 🎨 Key Features of This OK.ru Post Scraper

#### 🎬 Video Download Excellence

- **Quality Selection** - Choose SD or HD preference
- **Direct CDN Links** - Fast download from source
- **Apify Storage** - Optional permanent file hosting
- **Thumbnail Extraction** - Visual previews

#### 🖼️ Complete Image Extraction

- **All Post Images** - Extract every image in a post
- **Album Support** - Multiple images from albums
- **High-Resolution URLs** - Original quality
- **Sequential Naming** - Ordered image arrays

#### 📊 Engagement Analytics

- **View Tracking** - Total content views
- **Reaction Metrics** - Likes and reactions
- **Comment Volume** - Discussion engagement
- **Share Metrics** - Content spread data

#### 🌍 Bilingual Content Support

- **Original Text** - Native language content
- **English Translations** - Automatic translation
- **Group Attribution** - Source information
- **Title & Description** - Full content extraction

#### 👤 Uploader Intelligence

- **Channel Detection** - User vs group identification
- **Follower Insights** - Audience size metrics
- **Verification Status** - Authenticity detection
- **Avatar Extraction** - Profile images

***

### 💡 Use Cases for OK.ru Post Scraper

- **📚 Content Archiving** - Preserve OK.ru media content
- **📊 Social Media Analysis** - Track engagement patterns
- **🎬 Video Editing** - Download source material
- **🔬 Market Research** - Study Russian social media
- **📱 Content Repurposing** - Reuse videos and images
- **🎯 Competitor Analysis** - Monitor group activity
- **📈 Trend Tracking** - Identify viral content

***

### ✨ Why Choose Our OK.ru Post Scraper?

- **⚡ Fast & Efficient** - Quick media extraction
- **🎯 100% Accurate** - Preserves all data without alteration
- **📦 Complete Data** - Everything from media to engagement
- **🔄 Regular Updates** - Adapts to OK.ru changes
- **🛡️ Production Ready** - Reliable with thousands of posts
- **💰 Cost Efficient** - Optimized for minimal compute time
- **🔒 Privacy Focused** - No personal data stored or shared

***

### ⚠️ Limitations

- Only works with publicly accessible OK.ru content
- Private groups and profiles are not accessible
- Some videos may have regional restrictions
- Rate limits may apply for high-volume scraping
- Translation quality depends on available language pairs

***

### 📧 Need Custom Features for Your OK.ru Post Scraper?

Want **additional media formats**, **specific quality options**, **custom output formats**, **advanced analytics**, or **automated reporting**?

✉️ Email **<codenest2.0@gmail.com>** for tailored enterprise solutions!

***

# Actor input Schema

## `video_urls` (type: `array`):

List of OK.ru video or topic URLs to extract. Each item must have a 'url' key.

## `cookies` (type: `string`):

Netscape-format cookies.txt content from a logged-in OK.ru browser session.

## `proxy` (type: `object`):

Apify proxy settings. Residential proxies recommended if OK.ru blocks datacenter IPs.

## `save_to_kv_store` (type: `boolean`):

Upload video/media to Apify Key-Value Store. Clicking the media URL will stream/play the video directly in your browser tab with a three-dot menu to download, preventing unwanted auto-downloads.

## `preferred_quality` (type: `string`):

Preferred quality format to store in Key-Value Store.

## Actor input object example

```json
{
  "video_urls": [
    {
      "url": "https://ok.ru/video/14091316300315"
    },
    {
      "url": "https://ok.ru/group/70000002483023/topic/160108795964239"
    }
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  },
  "save_to_kv_store": true,
  "preferred_quality": "sd"
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset containing scraped OK.ru videos, photo albums, live engagement metrics, and uploader profiles.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "video_urls": [
        {
            "url": "https://ok.ru/video/14091316300315"
        },
        {
            "url": "https://ok.ru/group/70000002483023/topic/160108795964239"
        }
    ],
    "proxy": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("codenest/ok-ru-post-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "video_urls": [
        { "url": "https://ok.ru/video/14091316300315" },
        { "url": "https://ok.ru/group/70000002483023/topic/160108795964239" },
    ],
    "proxy": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("codenest/ok-ru-post-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "video_urls": [
    {
      "url": "https://ok.ru/video/14091316300315"
    },
    {
      "url": "https://ok.ru/group/70000002483023/topic/160108795964239"
    }
  ],
  "proxy": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "US"
  }
}' |
apify call codenest/ok-ru-post-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,codenest/ok-ru-post-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Pk58pt7CWSQ4fOcsW/builds/YjdScA31DjLk7NrfH/openapi.json
