Install
openclaw skills install xiaohongshu-downloaderDownload and summarize Xiaohongshu (小红书/RedNote) videos. Produces a full resource pack with video, audio, subtitles, transcript, and AI summary. This skill s...
openclaw skills install xiaohongshu-downloaderDownload videos from Xiaohongshu (小红书/RedNote) and optionally generate a full resource pack: video + audio + subtitles + transcript + AI summary.
Follow these 6 steps in order:
Verify required tools are installed:
yt-dlp --version
ffmpeg -version
Both must be available. If missing, instruct the user to install:
brew install yt-dlp (macOS) or pip install yt-dlpbrew install ffmpeg (macOS)/opt/homebrew/Caskroom/miniconda/base/envs/myenv/bin/python scripts/download_xiaohongshu.py "URL" --list-formats
This shows available formats and verifies the URL works with cookie authentication.
For basic download (video only, backward compatible with v1.0):
/opt/homebrew/Caskroom/miniconda/base/envs/myenv/bin/python scripts/download_xiaohongshu.py "URL"
For full resource pack (video + audio + subtitles + transcript):
/opt/homebrew/Caskroom/miniconda/base/envs/myenv/bin/python scripts/download_xiaohongshu.py "URL" --full
For full resource pack + AI summary preparation:
/opt/homebrew/Caskroom/miniconda/base/envs/myenv/bin/python scripts/download_xiaohongshu.py "URL" --summary
The --full flag creates a folder ~/Downloads/<video title>/ containing:
video.mp4 — original videoaudio.mp3 — extracted audiosubtitle.vtt — WebVTT subtitles (via 3-tier strategy)transcript.txt — plain text transcriptionThe --summary flag implies --full and additionally saves .meta.json for AI summary generation.
The script automatically tries these strategies in order:
yt-dlp --write-subs --sub-lang zh,en,zh-Hans,zh-CNyt-dlp --write-auto-subsparallel_transcribe.py using faster-whisperThe script automatically strips timestamps from VTT to produce transcript.txt.
If the user requested a summary (via --summary flag or by asking to "summarize"):
Read the transcript file:
~/Downloads/<video title>/transcript.txt
Read the metadata file:
~/Downloads/<video title>/.meta.json
Read the summary prompt template:
reference/summary-prompt.md
Replace the template placeholders with actual values:
{{TITLE}} — from .meta.json{{URL}} — from .meta.json{{DURATION}} — from .meta.json{{PLATFORM}} — "Xiaohongshu (小红书)"{{TRANSCRIPT}} — contents of transcript.txtGenerate the summary following the template structure.
Save the result to:
~/Downloads/<video title>/summary.md
| Option | Description | Default |
|---|---|---|
-o, --output | Output directory | ~/Downloads |
-q, --quality | Video quality (best, 1080p, 720p, 480p) | best |
--browser | Browser for cookies (chrome, firefox, safari, none) | chrome |
-a, --audio-only | Download audio only as MP3 | false |
--list-formats | List available formats | false |
--full | Full resource pack mode | false |
--summary | AI summary mode (implies --full) | false |
~/Downloads/
└── <title> [<id>].mp4
--full or --summary)~/Downloads/<video title>/
├── video.mp4 # Original video
├── audio.mp3 # Extracted audio
├── subtitle.vtt # WebVTT subtitles
├── transcript.txt # Plain text transcript
├── .meta.json # Video metadata (--summary only)
└── summary.md # AI-generated summary (--summary only, written by Claude)
| Format | Example |
|---|---|
| Explore link | https://www.xiaohongshu.com/explore/676a35670000000013002578 |
| Discovery link | https://www.xiaohongshu.com/discovery/item/676a35670000000013002578?xsec_token=TOKEN |
| Short link | http://xhslink.com/a/xxxxx |
| Problem | Solution |
|---|---|
No video formats found | Log into xiaohongshu.com in browser first, use --browser chrome |
Unable to extract initial state | CAPTCHA triggered — open URL in browser, solve it, retry |
| Link expired | Copy fresh share link (tokens expire) |
| No subtitles found | Script will fall back to Whisper transcription automatically |
| Whisper not available | Install uv (brew install uv) for automatic dependency management |
xsec_token) for best resultsuv for automatic dependency management, or faster-whisper installed manually