# Youku Scraper — Chinese Video Search, Details & Creators (`sian.agency/youku-video-scraper`) Actor

Scrape Youku (优酷), one of China's largest long-form video platforms. Search videos by keyword, pull rich video details (title, category, episodes, plays, duration), and extract creator profiles with follower and engagement metrics. No login or API key required — export clean JSON, CSV or Excel.

- **URL**: https://apify.com/sian.agency/youku-video-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Videos, Social media, Automation
- **Stats:** 120 total users, 41 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 video search 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

## Youku Scraper — Chinese Video Search, Details & Creators 🎬

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Bilibili Scraper](https://img.shields.io/badge/Store-Bilibili%20Scraper-00A1D6)](https://apify.com/sian.agency/bilibili-video-scraper?fpr=sian) [![Douyin Scraper](https://img.shields.io/badge/Store-Douyin%20Scraper-161823)](https://apify.com/sian.agency/douyin-scraper?fpr=sian) [![Xiaohongshu Scraper](https://img.shields.io/badge/Store-Xiaohongshu%20Scraper-FF2442)](https://apify.com/sian.agency/xiaohongshu-rednote-scraper?fpr=sian)

#### 🎉 The first and only Youku (优酷) scraper on Apify — search, details, and creator data from China's biggest long-form video platform

##### Built for China-market media researchers, IP-licensing analysts, and content-localization teams who need clean, structured Youku data without a login

***

### 📋 Overview

**Need structured data from Youku (优酷)?** This actor turns one of China's three largest long-form video platforms — home to dramas, variety shows, documentaries, and anime — into clean, queryable datasets. Search by keyword, pull deep video metadata, and extract creator profiles, all without an account or API key.

**Why professionals choose us:**

- ✅ **First and only Youku scraper on Apify**: Greenfield coverage of a platform no other tool reaches — own your China long-form video data pipeline.
- ⚡ **Self-contained discovery chain**: Search returns a `showId` → feed it to Video Detail → get the creator's `uploaderUid` → pull the Creator Profile. No pre-existing IDs needed to start.
- 🎯 **Long-form-native fields**: Episode totals, show-vs-video distinction, drama/variety/documentary/anime categories, release dates, and VIP/paid flags — data short-video scrapers never expose.
- 💰 **Pay-per-result**: Only charged for successful rows. Error rows are never billed.
- 💎 **Clean flattened output**: We collapse Youku's deeply nested response tree into flat, ready-to-use rows — export to JSON, CSV, or Excel in one click.
- ✨ **No login required**: Just pick an operation and run — no Youku account, no API key, no setup.

***

### ✨ Features

- 🔍 **Keyword Video Search**: Find shows and videos across every Youku category by search term (~15 results per page, paginated).
- 🎬 **Deep Video Detail**: Title, category, video type, show name, episode counts, duration, publish time, like/comment totals, and VIP flags for any show.
- 👤 **Creator Profile Extraction**: Nickname, follower count, total likes, verification status, and bio for any uploader.
- 🔗 **End-to-end discovery chain**: Go from a keyword to full creator analytics in three chained runs — no manual ID hunting.
- 🌏 **Chinese-language native**: Optimized for Chinese keywords (try 庆余年, 电视剧, 纪录片, 综艺, 动漫).
- 📦 **Structured exports**: JSON, CSV, Excel, and XML straight from the Apify dataset.
- 🧾 **HTML run report**: Every run writes a summary report with row counts, success rate, and timings.
- ⚙️ **Schedulable**: Automate recurring searches to monitor trends across drama, documentary, and variety categories.

***

### 🎞️ Quick Start

Pick one operation per run, fill in the matching field, and launch. Start with **Video Search** to discover shows, then drill into **Video Detail** and **Creator Profile** using IDs from the search results.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~youku-video-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"operation": "videoSearch", "keyword": "庆余年", "maxPages": 2}'
```

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Search

Run **Video Search** with a Chinese keyword. Each row gives you a `showId`, title, category, and cover.

#### Step 2: Drill in

Copy a `showId` into **Video Detail** to get full metadata — including the creator's `uploaderUid`.

#### Step 3: Profile the creator

Paste that `uploaderUid` into **Creator Profile** to pull nickname, followers, total likes, and bio.

**That's it! In under a minute, you'll have:**

- A list of Youku shows matching your keyword
- Full metadata for any show you choose
- Creator analytics for the uploader behind it

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | string | Yes | One of `videoSearch`, `videoDetail`, `userProfile` |
| keyword | string | For `videoSearch` | Search query — Chinese gives best results |
| videoId | string | For `videoDetail` | The Youku `showId` (alphanumeric hash) |
| uid | string | For `userProfile` | The creator UID (encoded form) |
| maxPages | integer | No | Max pages for Video Search (default 5, range 1–50) |

**Video Search:**

```json
{ "operation": "videoSearch", "keyword": "纪录片", "maxPages": 3 }
```

**Video Detail:**

```json
{ "operation": "videoDetail", "videoId": "fbbfcb303fcc4e2c8e18" }
```

**Creator Profile:**

```json
{ "operation": "userProfile", "uid": "UNDc4MDk2MzMyMA==" }
```

***

### 📤 Output

Results are saved to the Apify dataset as flat rows. Filter by `_operation` to split the three modes.

| Field | Type | Description |
|-------|------|-------------|
| showId | string | Youku show ID (search + detail) |
| videoTitle | string | Video/episode title |
| categoryName / videoCategory | string | Content category (drama, documentary, etc.) |
| showName | string | Parent show/series name |
| episodeTotal | integer | Total episodes in the series |
| durationSeconds | number | Video duration in seconds |
| videoPublishTime | string | Publish timestamp |
| totalUp / totalComment | integer | Like / comment totals |
| isPaidVip | boolean | Whether the video is VIP/paid |
| uploaderUid | string | Creator UID (chains into Creator Profile) |
| nickName | string | Creator nickname |
| followCount | string | Creator follower count |
| videoUrl / profileUrl | string | Canonical Youku URL |

**Example (Video Detail row):**

```json
{
  "_operation": "videoDetail",
  "status": "success",
  "videoId": "XNjM5ODE0Njk5Ng==",
  "videoTitle": "二皇子拦截使团真相 李云睿利用君山会斗法范闲",
  "videoCategory": "纪录片",
  "showName": "《庆余年》第二季剧情深度解读 非正片",
  "episodeTotal": 15,
  "durationSeconds": 158.67,
  "totalUp": 2,
  "uploaderUid": "UNDc4MDk2MzMyMA==",
  "videoUrl": "https://v.youku.com/v_show/id_XNjM5ODE0Njk5Ng==.html"
}
```

***

### 💼 Use Cases & Examples

#### 1. Chinese Long-Form Video Discovery

**Media researchers mapping what's available on Youku.**

**Input:** A genre keyword like 电视剧 or 纪录片.
**Output:** Shows with categories, release dates, episode counts, and covers.
**Use:** Build a catalog of Chinese dramas and documentaries for content scouting.

#### 2. Title & Episode Intelligence

**IP-licensing analysts tracking Chinese series.**

**Input:** A `showId` from search.
**Output:** Show name, category, episode totals, duration, VIP flags.
**Use:** Monitor which titles are completed, paid, or trending for licensing decisions.

#### 3. Creator & Channel Analytics

**Influencer and partnership teams sizing up Youku uploaders.**

**Input:** A creator `uid`.
**Output:** Nickname, follower count, total likes, verification, bio.
**Use:** Identify and rank influential Youku creators for outreach.

#### 4. Content-Localization Research

**Localization teams evaluating Chinese content for export.**

**Input:** Keyword searches across drama, variety, and anime.
**Output:** Structured metadata per title.
**Use:** Shortlist Chinese long-form content for subtitling and distribution.

#### 5. Academic & Trend Monitoring

**Media scholars and analysts studying Chinese streaming.**

**Input:** Scheduled keyword searches.
**Output:** Time-stamped datasets of Youku metadata.
**Use:** Track category trends on one of China's big-three video platforms without manual collection.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/youku-video-scraper').call({
  operation: 'videoSearch',
  keyword: '庆余年',
  maxPages: 2
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/youku-video-scraper').call(
    run_input={'operation': 'videoDetail', 'videoId': 'fbbfcb303fcc4e2c8e18'}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~youku-video-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation": "userProfile", "uid": "UNDc4MDk2MzMyMA=="}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call the actor API
3. **Process**: Handle JSON results
4. **Action**: Save, notify, or transform

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- Sample rows per run — full feature access, same quality
- No credit card required
- Perfect for testing the search → detail → profile chain

#### PAID Tier (Production Ready)

- Unlimited rows per run
- Pay-per-result: only charged for successful rows
- Error rows are never billed

🔗 [View current pricing](https://apify.com/sian.agency/youku-video-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: Do I need a Youku account or API key?**
A: No. Just pick an operation and run.

**Q: How do I get a video or creator ID?**
A: Run Video Search first — each row has a `showId`. Run Video Detail on that ID — the row includes the creator's `uploaderUid`, which feeds Creator Profile.

**Q: Why does Creator Profile sometimes return no creator?**
A: Roughly 83% of videos carry an uploader UID. Some officially-licensed content (e.g. certain anime and studio titles) has no individual uploader, so no profile exists to resolve.

**Q: What language should I search in?**
A: Chinese keywords return the best results (try 庆余年, 电视剧, 纪录片, 综艺, 动漫).

**Q: What output formats are available?**
A: JSON, CSV, Excel, and XML — export directly from the Apify dataset.

**Q: Is this legal?**
A: Yes — we only extract publicly available data. See the legal section below.

***

### 🐛 Troubleshooting

**No rows returned from Video Search**

- Use a Chinese keyword; English terms often return fewer or no results.

**Video Detail returns an error row**

- Confirm you used the `showId` (the alphanumeric hash from a search row), not the numeric `programId`.

**Creator Profile returns no data**

- The video may have no uploader UID (licensed content). Try a different video's `uploaderUid`.

**Data source temporarily unavailable**

- This is a transient signal; the actor retries automatically. Re-run if it persists.

***

### ⚠️ Trademark Disclaimer

This is an **independent scraping tool**. It is not affiliated with, endorsed by, or sponsored by Youku (优酷), Alibaba Group, or any of their subsidiaries. The Youku® and 优酷® names appear under nominative fair use solely to describe what the tool does. All trademarks belong to their respective owners.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

**Join our active support community**

- For issues or questions, open an issue in the actor's Issues tab
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Changelog

This Actor's version history is a separate document: https://apify.com/sian.agency/youku-video-scraper/changelog.md

# Actor input Schema

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

Pick what you want to scrape. Each run does one operation.

## `keyword` (type: `string`):

Search query. Chinese gives the best results (try 庆余年, 电视剧, 纪录片, 综艺, 动漫). Required for Video Search.

## `videoId` (type: `string`):

The Youku show ID (the alphanumeric hash, e.g. fbbfcb303fcc4e2c8e18). Find it in the `showId` field of any Video Search row, or in a Youku URL like v.youku.com/v_show/id_XXXX.html. Required for Video Detail.

## `uid` (type: `string`):

The Youku creator UID (the encoded form, e.g. UNDc4MDk2MzMyMA==). Find it in the `uploaderUid` field of any Video Detail row. Required for Creator Profile.

## `maxPages` (type: `integer`):

Max pages to scrape. Applies only to Video Search (~15 shows per page). Default 5. Range 1-50.

## Actor input object example

```json
{
  "operation": "videoSearch",
  "keyword": "庆余年",
  "videoId": "fbbfcb303fcc4e2c8e18",
  "uid": "UNDc4MDk2MzMyMA==",
  "maxPages": 5
}
```

# Actor output Schema

## `output` (type: `string`):

Video search results, deep video details, or creator profiles — one flat row per upstream item with curated camelCase aliases (showId, videoTitle, categoryName, showName, episodeTotal, durationSeconds, uploaderUid, nickName, followCount, ...).

## `report` (type: `string`):

HTML report with run status, success/error row counts, success rate, pages fetched, duration, and the inputs used — written even on fatal crash.

# 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 = {
    "keyword": "庆余年"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/youku-video-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 = { "keyword": "庆余年" }

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/youku-video-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 '{
  "keyword": "庆余年"
}' |
apify call sian.agency/youku-video-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sian.agency/youku-video-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/sdNAhq25dxGsNVBOi/builds/ZdCWUKkjakcoXs8iV/openapi.json
