# Kuaishou Video Scraper (`hgservices/kuaishou-video-scraper`) Actor

Scrape Kuaishou (快手) videos: download watermark-free MP4 files and extract metadata (caption, author, likes, views, comments) from video/share URLs.

- **URL**: https://apify.com/hgservices/kuaishou-video-scraper.md
- **Developed by:** [Harish Garg](https://apify.com/hgservices) (community)
- **Categories:** Videos, AI, MCP servers
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### What does Kuaishou Video Scraper do?

**Kuaishou Video Scraper** lets you **download Kuaishou (快手) videos without a watermark** and export their full details in one step. Paste any Kuaishou video or share link and get back a clean, structured record for each video — including a **direct MP4 download link** in multiple qualities, plus the caption, author, likes, views, comments, duration, and cover image. You can also have the video files saved for you automatically.

It works with videos from [kuaishou.com](https://www.kuaishou.com), one of the world's largest short-video platforms. Run it on demand, on a schedule, or via API, and connect the results to Google Sheets, Make, Zapier, Google Drive, and hundreds of other apps.

### Why use Kuaishou Video Scraper?

- **Download videos without watermarks** — get clean MP4 files ready to save, repost, or archive.
- **Bulk export** — process dozens or thousands of Kuaishou videos in a single run.
- **Content & trend research** — collect captions, hashtags, and engagement numbers (likes, views, comments, shares) for analysis.
- **Save time** — no manual copying; export everything to JSON, CSV, or Excel with a click.
- **Automate it** — schedule runs and push results straight into your favorite tools.

### How to use Kuaishou Video Scraper

1. Open the Actor in the [Apify Console](https://console.apify.com/).
2. Paste one or more Kuaishou video URLs into the **Kuaishou video URLs** field.
3. (Optional) Turn on **Download video files** to save the MP4s, and choose a **preferred video quality**.
4. Click **Start** ▶.
5. When the run finishes, browse the results in the **Output** tab, or download them as JSON, CSV, or Excel. The Output tab also shows quick links to **Video details** and, if you enabled downloads, the **Downloaded videos** store — one click to the files.

### Input

| Field | Description |
|-------|-------------|
| **Kuaishou video URLs** | One or more Kuaishou video or share links to scrape. |
| **Download video files** | Save each watermark-free MP4 so you can download it directly (a video link is always included either way). |
| **Preferred video quality** | Choose the best (highest quality) or smallest file for each video. |
| **Max videos** | Limit how many videos to process in a run. |
| **Proxy configuration** | Optional. Most runs don't need it; you can enable it if you scrape at very high volume. |

#### Supported links

- `https://www.kuaishou.com/short-video/...`
- `https://v.kuaishou.com/...` (share links)
- `https://c.kuaishou.com/fw/photo/...`

#### Example input

```json
{
    "startUrls": [
        { "url": "https://www.kuaishou.com/short-video/3xyaz5mf3dqd49q" }
    ],
    "downloadVideos": true,
    "videoQuality": "best"
}
````

### Output

Each video becomes one row in your dataset. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
{
    "url": "https://www.kuaishou.com/short-video/3xyaz5mf3dqd49q",
    "caption": "一觉醒来\"巴威\"又睁眼，重新加强至14级！ #台风巴威",
    "authorName": "武汉发布",
    "authorVerified": true,
    "likeCount": 17816,
    "viewCount": 1845745,
    "commentCount": 255,
    "shareCount": 42,
    "durationSeconds": 30.84,
    "width": 720,
    "height": 1280,
    "coverUrl": "https://.../cover.jpg",
    "videoUrl": "https://.../video.mp4",
    "downloadUrl": "https://api.apify.com/v2/key-value-stores/<storeId>/records/video-3xyaz5mf3dqd49q.mp4"
}
```

> `downloadUrl` is only present when **Download video files** is enabled. It links to the MP4 saved in the run's key-value store. It works directly from the Apify API/CLI or the Console; to open it in a plain browser, append `?token=<YOUR_APIFY_TOKEN>`. If you just want a link that always opens without a token, use `videoUrl`.

#### Data you get for every video

| Field | Description |
|-------|-------------|
| `url` | Link to the video on Kuaishou |
| `caption` | Video caption and hashtags |
| `authorName`, `authorVerified` | Creator name and verified status |
| `likeCount`, `viewCount`, `commentCount`, `shareCount` | Engagement numbers |
| `durationSeconds`, `width`, `height` | Length and dimensions |
| `timestamp` | When the video was published |
| `coverUrl` | Thumbnail image |
| `videoUrl` | Watermark-free MP4 download link |
| `downloadUrl` | Direct link to the saved MP4 in storage (only when **Download video files** is on) |
| `availableQualities` | Every resolution available for the video |

### How much does it cost to scrape Kuaishou?

Runs are fast and inexpensive — you can typically export **thousands of videos for just a few cents**. The main thing that affects cost is whether you turn on **Download video files**, since saving the actual MP4s uses more storage. If you only need the details and download links, leave it off to keep runs as cheap as possible. New Apify accounts also come with **free monthly usage credits** to get started.

### Tips

- **Just want the links?** Leave **Download video files** off — every result still includes a `videoUrl` you can open or download anytime.
- **Pick your resolution** with **Preferred video quality**, or check `availableQualities` to choose per video.
- **Scraping in bulk?** Add all your URLs at once and let a single run handle them.

### FAQ, disclaimers & support

**Is it legal to scrape Kuaishou?** This Actor collects publicly available data. You are responsible for how you use it and must comply with Kuaishou's Terms of Service, copyright law, and applicable privacy regulations. Don't use downloaded content in ways that infringe creators' rights.

**Why did a video fail?** Private, deleted, or region-restricted videos may not be available and are skipped.

**Need help or have a request?** Use the **Issues** tab on the Actor's page to report problems or suggest features. Custom scraping solutions are available on request.

# Actor input Schema

## `startUrls` (type: `array`):

One or more Kuaishou video or share URLs. Supported formats: https://www.kuaishou.com/short-video/{id}, https://c.kuaishou.com/fw/photo/{id}, https://v.kuaishou.com/{code} (share link), or a bare video ID.

## `downloadVideos` (type: `boolean`):

If enabled, the watermark-free MP4 is downloaded and stored in the run's key-value store (a `videoUrl` is always included in the output regardless). Storing large files increases storage usage; leave off if you only need metadata and direct URLs.

## `videoQuality` (type: `string`):

Which quality to select as the primary `videoUrl` / download. 'best' and 'worst' pick by bitrate from the available renditions.

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

Maximum number of videos to process (0 = no limit).

## `proxyConfiguration` (type: `object`):

Proxy settings. Kuaishou works from naked datacenter IPs, so proxy is OFF by default (cheapest). Enable Apify Proxy and escalate to RESIDENTIAL only if you start seeing blocks at high volume.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.kuaishou.com/short-video/3xyaz5mf3dqd49q"
    }
  ],
  "downloadVideos": false,
  "videoQuality": "best",
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

No description

## `videos` (type: `string`):

No description

# 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 = {
    "startUrls": [
        {
            "url": "https://www.kuaishou.com/short-video/3xyaz5mf3dqd49q"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hgservices/kuaishou-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 = { "startUrls": [{ "url": "https://www.kuaishou.com/short-video/3xyaz5mf3dqd49q" }] }

# Run the Actor and wait for it to finish
run = client.actor("hgservices/kuaishou-video-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.kuaishou.com/short-video/3xyaz5mf3dqd49q"
    }
  ]
}' |
apify call hgservices/kuaishou-video-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=hgservices/kuaishou-video-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Kuaishou Video Scraper",
        "description": "Scrape Kuaishou (快手) videos: download watermark-free MP4 files and extract metadata (caption, author, likes, views, comments) from video/share URLs.",
        "version": "0.1",
        "x-build-id": "2yfWiuQ2aB0rR4PqQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/hgservices~kuaishou-video-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-hgservices-kuaishou-video-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/hgservices~kuaishou-video-scraper/runs": {
            "post": {
                "operationId": "runs-sync-hgservices-kuaishou-video-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/hgservices~kuaishou-video-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-hgservices-kuaishou-video-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Kuaishou video URLs",
                        "type": "array",
                        "description": "One or more Kuaishou video or share URLs. Supported formats: https://www.kuaishou.com/short-video/{id}, https://c.kuaishou.com/fw/photo/{id}, https://v.kuaishou.com/{code} (share link), or a bare video ID.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "downloadVideos": {
                        "title": "Download video files",
                        "type": "boolean",
                        "description": "If enabled, the watermark-free MP4 is downloaded and stored in the run's key-value store (a `videoUrl` is always included in the output regardless). Storing large files increases storage usage; leave off if you only need metadata and direct URLs.",
                        "default": false
                    },
                    "videoQuality": {
                        "title": "Preferred video quality",
                        "enum": [
                            "best",
                            "worst"
                        ],
                        "type": "string",
                        "description": "Which quality to select as the primary `videoUrl` / download. 'best' and 'worst' pick by bitrate from the available renditions.",
                        "default": "best"
                    },
                    "maxItems": {
                        "title": "Max videos",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of videos to process (0 = no limit).",
                        "default": 0
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. Kuaishou works from naked datacenter IPs, so proxy is OFF by default (cheapest). Enable Apify Proxy and escalate to RESIDENTIAL only if you start seeing blocks at high volume.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
