# Xigua Video 西瓜视频 Scraper - Videos, Creators & Comments (`vulnv/xigua-scraper`) Actor

Scrape Xigua Video (西瓜视频): full video details, creator profiles, a creator's uploaded videos, and video comments. Export views, likes, comments, shares, favorites and creator data to JSON/CSV/Excel. No login, cookies or proxy needed.

- **URL**: https://apify.com/vulnv/xigua-scraper.md
- **Developed by:** [VulnV](https://apify.com/vulnv) (community)
- **Categories:** Videos, Social media
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 videos

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Xigua Video Scraper - 西瓜视频 Creators, Videos & Comments

**Scrape Xigua Video (西瓜视频) and export creator videos, profiles and comments to JSON, CSV or Excel.** List every video a creator has uploaded, get a creator's profile, pull a single video's details, or collect a video's comments - all from one Actor. Each result is one clean, flat row with views, likes, comments, shares, favorites and creator data.

No login, no cookies, no proxies and no China IP to configure - data is fetched through a fast, managed pipeline. Just pick an operation, add your input and press **Start**.

> **Unofficial notice:** This is an independent tool and is **not** affiliated with, endorsed by, or connected to Xigua Video, 西瓜视频 or ByteDance. "Xigua Video", "西瓜视频" and "ByteDance" are trademarks of their respective owners, used here only to describe what the Actor scrapes.

### What is Xigua Video?

Xigua Video (西瓜视频) is ByteDance's long-form video platform in China, the horizontal-video sibling of Douyin and Toutiao. It is home to documentaries, films and series recaps, knowledge and education channels, gaming, food, rural life and travel creators, many of whom publish multi-hour videos. This scraper gives you programmatic access to Xigua creators, their video catalogues and the comments under each video so you can track channels, benchmark engagement and build datasets without a Xigua account.

### Operations

Pick one **Operation** and fill in the matching field:

| Operation | Input field | What you get |
|-----------|-------------|--------------|
| **Creator's uploaded videos** | `userUrls` | Every video a creator has posted, newest first, paginated, with views, likes, comments, shares and publish time. |
| **Creator profile** | `userUrls` | A creator's profile: followers (total, Xigua and Toutiao), following, video count, bio, IP region. |
| **Video details** | `videoUrls` | One video's title, duration, likes, favorites, danmaku, comment count, cover and creator. |
| **Video comments** | `videoUrls` | Top-level comments for each video, with likes, time, region and commenter data. |

`userUrls` accept `ixigua.com/home/<id>` or `m.ixigua.com/user/<id>` URLs or bare numeric creator IDs. `videoUrls` accept `ixigua.com/<id>` or `m.ixigua.com/video/<id>` URLs or bare numeric video IDs - one per line.

**Why is there no keyword search?** Xigua's own in-app video search returns zero or one video for most keywords, so a search operation would not give useful results. The Actor is creator- and video-centric instead: start from a creator you know and list their whole catalogue, or paste the video URLs you want.

### How to use it (step by step)

1. Choose an **Operation**.
2. Fill in the matching input:
   - Creator's videos / Creator profile -> paste **Creator URLs / IDs**.
   - Video details / Video comments -> paste **Video URLs / IDs**.
3. Set **Maximum results per input** (default 100, or 0 for all available) for the paginated operations.
4. Press **Start**. Export the dataset as JSON, CSV, Excel, XML or via the API.

### Input

| Field | Type | Description |
|-------|------|-------------|
| `operation` | string | **Required.** `user_videos`, `user_profile`, `video_detail`, or `video_comments`. |
| `userUrls` | array | Creator URLs or IDs (for `user_videos`, `user_profile`). |
| `videoUrls` | array | Video URLs or IDs (for `video_detail`, `video_comments`). |
| `maxItems` | integer | Max results per creator / video. `0` = all available. Default `100`. |

### Output

Every row carries a `record_type` of `video`, `user` or `comment`. Common video fields:

| Field | Description |
|-------|-------------|
| `video_id`, `video_url`, `share_url` | Video identity and URLs. |
| `title`, `description`, `category` | Video title, abstract and Xigua category. |
| `play_count`, `like_count`, `comment_count`, `share_count`, `favorite_count`, `danmaku_count` | Engagement metrics. |
| `author_id`, `author_name`, `author_avatar_url`, `author_followers_count` | Creator data. |
| `cover_url`, `duration_seconds`, `is_original` | Thumbnail, length and originality flag. |
| `publish_time`, `ip_location` | Publish time (ISO-8601 UTC) and region. |

The **Creator's videos** operation returns the richest video rows. **Video details** returns title, duration, likes, favorites, danmaku, comment count and cover, but Xigua's single-video view does not expose views, shares, publish time or category, so those are left empty (0 / blank) on detail rows. To get them, list the creator's videos instead.

Creator (`user`) rows add `nickname`, `description`, `followers_count`, `xigua_followers_count`, `toutiao_followers_count`, `following_count`, `video_count`, `profile_url` and `ip_location`. Comment (`comment`) rows add `comment_id`, `content`, `like_count`, `reply_count`, `create_time`, `ip_location` and `author_verified`.

Example video row:

```json
{
  "record_type": "video",
  "operation": "user_videos",
  "input": "2084278615148478",
  "video_id": "7256274455167664681",
  "video_url": "https://www.ixigua.com/7256274455167664681",
  "title": "纪录片《发现甲骨文》三集全，2小时高清完整版，建议收藏观看",
  "category": "人文社科",
  "duration_seconds": 6906,
  "publish_time": "2023-07-21T23:00:00+00:00",
  "ip_location": "广东",
  "play_count": 49041,
  "like_count": 806,
  "comment_count": 27,
  "share_count": 152,
  "favorite_count": 152,
  "author_name": "纪录片小角落",
  "author_followers_count": 145550
}
```

### Common use cases

- **Channel monitoring** - track a creator's uploads, views and engagement over time.
- **Creator research** - compare creators in a niche by followers, catalogue size and per-video performance.
- **Comment and sentiment analysis** - collect viewer comments, likes and regions for any video.
- **Market and AI research** - build datasets of Chinese long-form video content and audience reactions.

### Notes on reliability

- Cover, avatar and media URLs are signed by Xigua's CDN and expire; fetch them promptly.
- View, like and comment counts reflect what Xigua returns at scrape time.
- Commenter IP region is only shown by Xigua on recent comments, so older comments leave `ip_location` empty.
- If a video or creator is private, deleted or unavailable, that input is skipped and the run continues.

### FAQ

**Do I need a Xigua account, cookies or a proxy?** No. Just add your input and press Start.

**Can I use URLs and bare IDs interchangeably?** Yes - both `userUrls` and `videoUrls` accept full URLs and numeric IDs.

**Can I run several creators or videos at once?** Yes - add multiple lines. Duplicate videos and comments are removed automatically.

**Can I search Xigua by keyword?** Not in this Actor - Xigua's search returns too few results to be useful. Start from a creator's URL instead.

**Can I try it for free?** Yes. Users on the free Apify plan can fetch up to 10 results in total to try the Actor. Upgrade to a paid Apify plan to run it without that limit.

**What export formats are supported?** JSON, CSV, Excel, XML and HTML, plus the Apify API and integrations such as Google Sheets, Zapier, Make and webhooks.

### Pricing

This Actor is **pay per result**: you are charged for each record it returns (videos, comments and creator profiles), plus standard Apify platform usage. Different record types have different prices; see the **Pricing** tab for current rates. You are never charged for inputs that return nothing.

### Related scrapers

- **[Douyin Scraper](https://apify.com/vulnv/douyin-search-scraper)** - 抖音 videos by keyword, with creators and downloads.
- **[Bilibili Scraper](https://apify.com/vulnv/bilibili-scraper)** - 哔哩哔哩 videos, creators and comments.
- **[Xiaohongshu Scraper](https://apify.com/vulnv/xiaohongshu-scraper)** - 小红书 / RedNote notes, users and comments.

# Actor input Schema

## `operation` (type: `string`):

What to scrape. Each operation uses a different input field below:

• Creator's videos → Creator URLs / IDs
• Creator profile → Creator URLs / IDs
• Video details → Video URLs / IDs
• Video comments → Video URLs / IDs

## `userUrls` (type: `array`):

For the "Creator's videos" and "Creator profile" operations. Paste full creator URLs (e.g. https://www.ixigua.com/home/2084278615148478) or bare numeric creator IDs - one per line.

## `videoUrls` (type: `array`):

For the "Video details" and "Video comments" operations. Paste full video URLs (e.g. https://www.ixigua.com/7047393519773680165) or bare numeric video IDs - one per line.

## `maxItems` (type: `integer`):

Upper bound on results per creator / video (for the paginated operations: creator's videos and comments). Cost scales linearly. Set 0 to fetch all available.

## Actor input object example

```json
{
  "operation": "user_videos",
  "userUrls": [
    "https://www.ixigua.com/home/2084278615148478"
  ],
  "maxItems": 100
}
```

# Actor output Schema

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

All scraped Xigua Video results in the default dataset.

## `overview` (type: `string`):

Overview table of the scraped results.

# 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 = {
    "userUrls": [
        "https://www.ixigua.com/home/2084278615148478"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("vulnv/xigua-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 = { "userUrls": ["https://www.ixigua.com/home/2084278615148478"] }

# Run the Actor and wait for it to finish
run = client.actor("vulnv/xigua-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 '{
  "userUrls": [
    "https://www.ixigua.com/home/2084278615148478"
  ]
}' |
apify call vulnv/xigua-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,vulnv/xigua-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/lY7SKtHXbA6i5IRM5/builds/DShhYvETT0OhCflzi/openapi.json
