# Rednote Transcript API – AI Video to Text for Developers (`apple_yang/rednote-transcripts-scraper`) Actor

Xiaohongshu(Rednote) Transcript API for converting video audio into accurate text using AI. Extract transcripts, spoken content, and metadata from public videos. Fast, reliable, and built for developers, AI agents, and automation workflows.

- **URL**: https://apify.com/apple_yang/rednote-transcripts-scraper.md
- **Developed by:** [APISmith](https://apify.com/apple_yang) (community)
- **Categories:** AI, Social media, Videos
- **Features:** Limited permissions, Single-tenant, Server interface
- **Stats:** 485 total users, 11 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $3.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.
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

### Xiaohongshu Video Transcripts Scraper

A powerful Apify Actor that extracts video metadata and automatically transcribes speech to text from Xiaohongshu (小红书/Rednote) videos.

### What does Xiaohongshu Video Transcripts Scraper do?

This Actor extracts comprehensive video metadata from Xiaohongshu (also known as Rednote) and generates accurate speech-to-text transcripts. Provide up to 100 Xiaohongshu video URLs in a single run, and the Actor will return the video title, description, author information, engagement metrics, and a full text transcription with time-stamped subtitle segments for each of them.

Try it with any Xiaohongshu video URL copied from your browser: `https://www.xiaohongshu.com/explore/68fb4b0d0000000004014668?xsec_token=ABtLEHExFo_twyUd7eXjKITljTuYH4gsikacd4soZERxw=&xsec_source=pc_search`

### Why use Xiaohongshu Video Transcripts Scraper?

- **Content creators**: Repurpose video content into text format for blogs, captions, or accessibility
- **Researchers**: Analyze Xiaohongshu video content at scale with transcripts
- **Marketers**: Extract and analyze video content for trend analysis and sentiment
- **Language learners**: Get accurate transcriptions of Chinese video content
- **API access**: Integrate with your existing workflows via Apify's API and scheduling

### How to use Xiaohongshu Video Transcripts Scraper

1. Open the Actor in Apify Console or via API
2. Paste one or more Xiaohongshu video URLs into the `urls` field (1-100 per run; on the free plan up to 5 URLs, each video no longer than 3 minutes). **Copy each URL in full from your browser's address bar so it keeps its `xsec_token` parameter** - a link without `xsec_token` cannot be opened and is rejected
3. Run the Actor and receive one dataset item per URL, in the same order as your input

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `urls` | string\[] | Yes | Xiaohongshu video page URLs. **Each URL must include its `xsec_token` query parameter** (copy the full URL from the browser address bar) - the note page cannot be fetched without it, and URLs missing it are rejected with `INVALID_INPUT_URL`. Each URL must also be HTTPS, hosted on xiaohongshu.com, and its path must contain `/explore/` or `/red_video/` followed by the note ID. Between 1 and 100 URLs per run; free plan users are limited to 5 URLs per run and to videos up to 3 minutes long. |

`urls` is the only input field. Processing concurrency is a fixed program setting rather than an input option, so a given batch behaves the same way on every run.

#### Input JSON Example

```json
{
  "urls": [
    "https://www.xiaohongshu.com/explore/68fb4b0d0000000004014668?xsec_token=ABtLEHExFo_twyUd7eXjKITljTuYH4gsikacd4soZERxw=&xsec_source=pc_search",
    "https://www.xiaohongshu.com/red_video/6a10552b000000000603175f?xsec_token=ABN24fYkB3WPKS2aHjBbf3fJGPhPETVNYtJaFD2hcXS2o=&xsec_source=pc_dual_feed"
  ]
}
```

> **`xsec_token` is required in every URL.** These are signed links: the `xsec_token` query parameter is what authorises access to that specific note, and it is what the Actor sends upstream. Always copy the whole URL from the browser address bar (including everything after the `?`) instead of retyping the link - a hand-written URL usually loses the token. If a URL has no `xsec_token`, that URL comes back as `INVALID_INPUT_URL` and no request is made for it.

> Passing more than 100 URLs fails the run with an explicit error instead of silently dropping the extra URLs. Free plan limits are enforced separately: more than 5 URLs fails the run before any URL is processed, and videos longer than 3 minutes come back with an error message instead of a transcript.

### Output

The Actor pushes one dataset item per input URL, in exactly the same order as your `urls` array. Each item is a JSON object with comprehensive video metadata and transcript data:

```json
{
	"url": "https://www.xiaohongshu.com/explore/68fb4b0d0000000004014668?xsec_token=ABtLEHExFo_twyUd7eXjKITljTuYH4gsikacd4soZERxw=&xsec_source=pc_search&source=web_explore_feed",
	"noteId": "68fb4b0d0000000004014668",
	"noteType": "video",
	"title": "买车听劝❗毒舌辣评——比亚迪海鸥",
	"desc": "跟着毒舌一起看完优缺点\n你还会考虑比亚迪海鸥吗⁉️\n欢迎车主分享补充！\n#比亚迪[话题]#  #比亚迪海鸥[话题]#  #买车避坑[话题]#  #买车那点事儿[话题]#  #用车感受[话题]#  #新手买车[话题]#  #汽车[话题]#  #值得入手的车[话题]#  #汽车讲解[话题]#  #买车那些事儿[话题]#",
	"img": "http://sns-webpic-qc.xhscdn.com/202605211356/a0f521617c50e9626166271fcaefd174/spectrum/1040g0k031o134c67l0005q2920onastfterbev0!nd_dft_wlteh_webp_3",
	"imgs": [
		"http://sns-webpic-qc.xhscdn.com/202605211356/a0f521617c50e9626166271fcaefd174/spectrum/1040g0k031o134c67l0005q2920onastfterbev0!nd_dft_wlteh_webp_3"
	],
	"videoUrl": "http://sns-video-v6.xhscdn.com/stream/1/110/259/01e8fb4abd254c61010370039a159d7b08_259.mp4?sign=b02f1d412dba0f113a4b0e89bc3d715d&t=6a133be0",
	"audioUrl": "",
	"duration": 56.379,
	"userId": "68491031000000001d0173af",
	"userName": "毒舌说车",
	"avatar": "https://sns-avatar-qc.xhscdn.com/avatar/1040g2jo31it5ft1ggo605q2920onastfsqlfkeg",
	"likedCount": 174,
	"commentCount": 22,
	"collectedCount": 83,
	"shareCount": 110,
	"createTime": 1761299213000,
	"lastUpdateTime": 1761299214000,
	"tags": "比亚迪 比亚迪海鸥 买车避坑 买车那点事儿 用车感受 新手买车 汽车 值得入手的车 汽车讲解 买车那些事儿",
	"errMsg": "",
	"timestamp": "2026-05-21T05:57:00.952Z",
	"text": "每周独舍一款车 今天是比亚迪海鸥 定位小型轿车 价格在6.98万至8.58万之间 综合续航305至405千米 12.03至15.38秒的百公里加速 配备伏迪磷磷酸铁锂电池 优点 外观青春小小 深受女生喜爱 空间灵活 后排座椅放倒后可扩展至930升 单身贵足够用 全系标配ESP加4系囊 高配含主动刹车和车道保持 10.1英寸旋转屏加D-Link系统 支持语音控制和远程启动 缺点 车主反馈车窗容易起雾 侧窗生向不能挂掉外面附着的雨水 有一定安全隐患 倒车影像质量不稳定 会出现失灵问题 会无故出现熄火停车 或者无法启动的问题 部分车主反馈 出风口会喷粉 属于凭控盖制事件 总体来说 这个价位的车咱也不能挑剔太多 喜欢就值得入手 你买我推荐 问我我不买 当然 有没有真实车主进来说说使用感受 欢迎补充",
	"segments": [
		{
			"start": 0,
			"end": 1.1,
			"text": "每周独舍一款车"
		},
		{
			"start": 1.1,
			"end": 2.76,
			"text": "今天是比亚迪海鸥"
		},
		{
			"start": 2.76,
			"end": 4.24,
			"text": "定位小型轿车"
		},
		{
			"start": 4.24,
			"end": 7.1,
			"text": "价格在6.98万至8.58万之间"
		},
		{
			"start": 7.1,
			"end": 9.6,
			"text": "综合续航305至405千米"
		},
		{
			"start": 9.6,
			"end": 12.44,
			"text": "12.03至15.38秒的百公里加速"
		},
		{
			"start": 12.44,
			"end": 14.34,
			"text": "配备伏迪磷磷酸铁锂电池"
		},
		{
			"start": 14.34,
			"end": 14.96,
			"text": "优点"
		},
		{
			"start": 14.96,
			"end": 16.18,
			"text": "外观青春小小"
		},
		{
			"start": 16.18,
			"end": 17.18,
			"text": "深受女生喜爱"
		},
		{
			"start": 17.18,
			"end": 17.86,
			"text": "空间灵活"
		},
		{
			"start": 17.86,
			"end": 20.48,
			"text": "后排座椅放倒后可扩展至930升"
		},
		{
			"start": 20.48,
			"end": 21.6,
			"text": "单身贵足够用"
		},
		{
			"start": 21.6,
			"end": 23.64,
			"text": "全系标配ESP加4系囊"
		},
		{
			"start": 23.64,
			"end": 25.92,
			"text": "高配含主动刹车和车道保持"
		},
		{
			"start": 25.92,
			"end": 28.7,
			"text": "10.1英寸旋转屏加D-Link系统"
		},
		{
			"start": 28.7,
			"end": 30.56,
			"text": "支持语音控制和远程启动"
		},
		{
			"start": 30.56,
			"end": 31.2,
			"text": "缺点"
		},
		{
			"start": 31.2,
			"end": 32.82,
			"text": "车主反馈车窗容易起雾"
		},
		{
			"start": 32.82,
			"end": 35.14,
			"text": "侧窗生向不能挂掉外面附着的雨水"
		},
		{
			"start": 35.14,
			"end": 36.14,
			"text": "有一定安全隐患"
		},
		{
			"start": 36.14,
			"end": 37.74,
			"text": "倒车影像质量不稳定"
		},
		{
			"start": 37.74,
			"end": 38.9,
			"text": "会出现失灵问题"
		},
		{
			"start": 38.9,
			"end": 40.62,
			"text": "会无故出现熄火停车"
		},
		{
			"start": 40.62,
			"end": 41.9,
			"text": "或者无法启动的问题"
		},
		{
			"start": 41.9,
			"end": 43.06,
			"text": "部分车主反馈"
		},
		{
			"start": 43.06,
			"end": 44.06,
			"text": "出风口会喷粉"
		},
		{
			"start": 44.06,
			"end": 45.58,
			"text": "属于凭控盖制事件"
		},
		{
			"start": 45.58,
			"end": 46.6,
			"text": "总体来说"
		},
		{
			"start": 46.6,
			"end": 48.58,
			"text": "这个价位的车咱也不能挑剔太多"
		},
		{
			"start": 48.92,
			"end": 49.88,
			"text": "喜欢就值得入手"
		},
		{
			"start": 49.88,
			"end": 51.04,
			"text": "你买我推荐"
		},
		{
			"start": 51.04,
			"end": 52.44,
			"text": "问我我不买"
		},
		{
			"start": 52.44,
			"end": 52.96,
			"text": "当然"
		},
		{
			"start": 52.96,
			"end": 55.22,
			"text": "有没有真实车主进来说说使用感受"
		},
		{
			"start": 55.22,
			"end": 56,
			"text": "欢迎补充"
		}
	]
}
```

You can download the dataset in JSON, HTML, CSV, or Excel format from Apify Console.

### Data Table

| Field | Type | Description |
|-------|------|-------------|
| `url` | string | Original Xiaohongshu video URL |
| `noteId` | string | Unique video identifier |
| `noteType` | string | Content type (usually "video") |
| `title` | string | Video title |
| `desc` | string | Video description |
| `img` | string | Cover image URL |
| `imgs` | string\[] | All images in the post |
| `videoUrl` | string | Direct video stream URL |
| `audioUrl` | string | Audio stream URL (if available) |
| `duration` | number | Video duration in seconds |
| `userId` | string | Author's user ID |
| `userName` | string | Author's display name |
| `avatar` | string | Author's avatar URL |
| `likedCount` | number | Number of likes |
| `commentCount` | number | Number of comments |
| `collectedCount` | number | Number of times saved |
| `shareCount` | number | Number of shares |
| `createTime` | number | Unix timestamp of creation |
| `lastUpdateTime` | number | Unix timestamp of last update |
| `tags` | string | Space-separated list of tags |
| `text` | string | Full transcript text |
| `segments` | array | Time-stamped subtitle segments |
| `timestamp` | string | ISO timestamp of when data was extracted |

### Pricing

This Actor uses Apify's speech-to-text service which bills per minute of audio transcribed. Free plan runs accept up to 5 URLs and videos up to 3 minutes long; paid runs accept up to 100 URLs and have no duration limit. All runs use the same speech-to-text endpoint.

#### Cost Estimation

- **Compute units**: Approximately 1-2 AU per video depending on duration
- **Speech-to-text**: Billed per billable minute (rounded up from 60-second intervals)
- **Free plan**: Up to 5 URLs per run, and videos up to 3 minutes long
- **Paid users**: Up to 100 URLs per run, no video duration limit

### Tips and Advanced Options

- **Plan limits**: Free plan runs accept up to 5 URLs and videos up to 3 minutes long; paid runs accept up to 100 URLs and have no duration limit
- **`xsec_token`**: Every URL must carry its `xsec_token` parameter - copy the full address-bar URL verbatim. A retyped or truncated link loses the token and is rejected with `INVALID_INPUT_URL` before processing
- **Batch processing**: Pass multiple URLs in a single `urls` array (up to 100) instead of calling the Actor in a loop
- **Webhook integration**: Use Apify webhooks to get notified when transcription completes
- **API access**: Integrate via Apify API for automated workflows

### Limitations and Disclaimer

- This Actor is provided for educational and personal use only
- Respect copyright and intellectual property rights when using transcriptions
- Video availability depends on Xiaohongshu's current service status
- Some premium content may require valid authentication

For issues, feature requests, or custom solutions, visit the [Issues tab](https://github.com/your-repo/issues).

# Actor input Schema

## `urls` (type: `array`):

Video note page URLs to transcribe, copied in full from your browser address bar so that each URL keeps its xsec_token parameter - that token is required, and URLs without it are rejected with INVALID_INPUT_URL.

Each URL must be HTTPS, hosted on xiaohongshu.com, with a path containing `/explore/<id>` or `/red_video/<id>`. Between 1 and 100 URLs per run; the free plan accepts at most 5 URLs and videos up to 3 minutes long.

## Actor input object example

```json
{
  "urls": [
    "https://www.xiaohongshu.com/explore/6aacf442000000002503422c?xsec_token=ABsEc7h_mrd4DToAHRjjWzIJTz4YMld1PQAoMLglRx23E="
  ]
}
```

# 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 = {
    "urls": [
        "https://www.xiaohongshu.com/explore/6aacf442000000002503422c?xsec_token=ABsEc7h_mrd4DToAHRjjWzIJTz4YMld1PQAoMLglRx23E="
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("apple_yang/rednote-transcripts-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 = { "urls": ["https://www.xiaohongshu.com/explore/6aacf442000000002503422c?xsec_token=ABsEc7h_mrd4DToAHRjjWzIJTz4YMld1PQAoMLglRx23E="] }

# Run the Actor and wait for it to finish
run = client.actor("apple_yang/rednote-transcripts-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 '{
  "urls": [
    "https://www.xiaohongshu.com/explore/6aacf442000000002503422c?xsec_token=ABsEc7h_mrd4DToAHRjjWzIJTz4YMld1PQAoMLglRx23E="
  ]
}' |
apify call apple_yang/rednote-transcripts-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apple_yang/rednote-transcripts-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/3XkmYIU8NnzDzTnNk/builds/7SDsRTfMl4jiwsBgK/openapi.json
