# Moj Comments Scraper – Export Video Comments (`spider_studio/moj-video-comments-scraper`) Actor

Scrape public Moj video comments in bulk by video ID. Automatically paginate and export comment text, authors, timestamps, and likes to JSON, CSV, or Excel.

- **URL**: https://apify.com/spider\_studio/moj-video-comments-scraper.md
- **Developed by:** [Tarique](https://apify.com/spider_studio) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 1,000 moj comment results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
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

### What does Moj Comments Scraper do?

**Moj Comments Scraper** is a **Moj comments exporter and video comments API** for public videos on [Moj](https://mojapp.in). Submit one or many video IDs to export comment text, authors, Unix timestamps, and like counts as JSON, CSV, or Excel—one comment per row.

The Actor follows Moj's opaque pagination cursor automatically, removes overlapping comments, and keeps each original comment object in `data`. **No Moj login, cookies, browser, or external API key is required.** Requests use one sticky **Apify Residential Proxy** session and HTTP/1.1.

### Why scrape Moj video comments?

- Analyze public audience reactions and recurring discussion themes.
- Compare engagement across a list of Moj videos.
- Export comment text, timestamps, authors, and like counts to a spreadsheet.
- Schedule periodic runs and consume datasets through the Apify API.
- Continue processing a batch even if one video is deleted, unavailable, or temporarily fails.

### What comment data can be extracted?

| Field | Type | Description |
| --- | --- | --- |
| `video_id` | string | Video whose comments were requested |
| `page` | integer | One-based page number followed by the Actor |
| `comment_id` | string | Compact Moj comment identifier |
| `text` | string | Public comment text |
| `author_id` / `author_name` | string | Public comment author identity |
| `created_at` | integer | Unix timestamp returned by Moj |
| `like_count` | integer | Comment likes reported by Moj |
| `data` | object | Original Moj comment object |

### Related Moj scraper Actors

| If you need | Use this Actor |
| --- | --- |
| Find videos to analyze by keyword | [Moj Search Scraper](https://apify.com/spider_studio/moj-search-scraper) |
| Resolve video metadata and direct URLs | [Moj Video Details & URL Parser](https://apify.com/spider_studio/moj-video-details-url-parser) |
| Collect all available posts from user IDs | [Moj User Posts Scraper](https://apify.com/spider_studio/moj-user-posts-scraper) |
| Monitor videos in a hashtag feed | [Moj Hashtag Scraper](https://apify.com/spider_studio/moj-hashtag-feed-scraper) |

### How to export Moj video comments

1. Obtain one or more public Moj video IDs.
2. Add them to the `video_ids` list.
3. Choose the maximum number of pages per video.
4. Start the Actor and open the Output dataset.
5. Download the results or connect them to another Apify integration.

### Moj Comments Scraper API input

See the Input tab for the complete form. IDs must be decimal strings. Duplicate IDs are removed before requests are sent.

```json
{
  "video_ids": ["2722595169"],
  "max_pages": 5
}
```

The page limit applies separately to every video ID. Pagination stops earlier when Moj returns no comments, no continuation token, or a repeated token. Video ID `2722595169` returned public comments when live-verified on September 20, 2026; availability can change.

### Moj comments export output: JSON, CSV, and Excel

Each public comment is stored as one row. The normalized columns make CSV and Excel useful, while `data` keeps Moj's compact fields for JSON consumers.

```json
{
  "success": true,
  "video_id": "1234567890",
  "page": 1,
  "comment_id": "42",
  "text": "This is an example comment.",
  "author_id": "12345678901",
  "author_name": "Example User",
  "created_at": 1736942400,
  "like_count": 12,
  "error": null
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. When a video request fails, the Actor writes one failure row with a sanitized error instead of exposing session tokens or proxy credentials.

### Moj comments API for sentiment analysis and AI agents

Call Actor ID `spider_studio/moj-video-comments-scraper` through the Apify API, JavaScript or Python client, schedules, webhooks, and integrations. One-row-per-comment output is suitable for audience research, sentiment analysis, topic clustering, moderation review, and LLM summarization.

Minimal request:

```json
{"video_ids":["2722595169"],"max_pages":1}
```

Every row repeats `video_id`, so an agent or data warehouse can safely combine comments from multiple videos and still retain provenance.

### Live verification and reliability

Last live-verified on September 20, 2026: the Actor followed Moj's opaque cursor across two pages and returned 20 unique top-level comments without cross-page duplicates. Actual comment volume depends on the selected video, moderation, and current availability; an empty page ends the run early.

### How much does it cost to scrape Moj comments?

This Actor uses pay-per-event pricing with platform usage included:

| Apify user tier | Price per successful comment | Price per 1,000 comments |
| --- | ---: | ---: |
| Free | $0.0025 | $2.50 |
| Bronze, Silver, Gold, Platinum, Diamond | $0.0015 | $1.50 |

The automatic Actor-start event costs $0.00005 per run. There is no video-request or page-request fee. Only unique comment rows successfully saved to the default Dataset trigger the `comment-result` event; videos without comments, empty pages, failure rows, retries, and duplicates are free. Post-run Dataset reads and long-term storage remain subject to Apify's standard platform pricing.

### Tips and limitations

- Moj controls comment ranking; the Actor uses the upstream trending/descending order.
- Only top-level public comments are collected; reply-thread expansion is outside this Actor's scope.
- Results can change as comments are added, removed, or moderated.
- The Actor uses bounded retries for temporary network errors and rate limits.

### Moj Comments Scraper FAQ, disclaimer, and support

#### How can I export Moj comments to Excel or CSV?

Run the Actor with one or more video IDs, open the default dataset, and choose Excel or CSV from the export options. JSON is also available for code and AI workflows.

#### Do I need a Moj account or API key?

No. Users do not supply Moj credentials, cookies, or API keys. The Actor establishes the required anonymous session automatically.

#### Does the Actor collect comment replies?

No. The current version collects top-level public comments in Moj's trending/descending order. Reply-thread expansion is not included.

#### Does this collect private comments or contact information?

No. It collects only comments and public author information returned by Moj's public business API.

#### Is this an official Moj comments API?

No. This independently developed Actor is not affiliated with or endorsed by Moj or ShareChat.

Our Actors are ethical and do not extract private user data such as email addresses, gender, or location. They only extract what users have chosen to share publicly. Results can contain personal data protected by GDPR and other regulations. Do not scrape personal data without a legitimate reason; consult your lawyers if unsure.

Use the Actor's API tab for programmatic execution. For support, create an issue with the video ID, page limit, and sanitized run link.

# Actor input Schema

## `video_ids` (type: `array`):

Moj video IDs whose public comments should be collected.

## `max_pages` (type: `integer`):

Maximum comment pages to fetch for each video ID.

## Actor input object example

```json
{
  "video_ids": [
    "2722595169"
  ],
  "max_pages": 1
}
```

# Actor output Schema

## `dataset` (type: `string`):

Comments collected from the requested videos.

# 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_ids": [
        "2722595169"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("spider_studio/moj-video-comments-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_ids": ["2722595169"] }

# Run the Actor and wait for it to finish
run = client.actor("spider_studio/moj-video-comments-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_ids": [
    "2722595169"
  ]
}' |
apify call spider_studio/moj-video-comments-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,spider_studio/moj-video-comments-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/1xPe9kqVnv7pYZ5zA/builds/ywu1s33tVxaMxHY90/openapi.json
