mcpField
X
xiaohongshu-downloader

xiaohongshu-downloader

github.com/smile7upCreative & media44219 installsUpdated 38w ago
Repository

About xiaohongshu-downloader

A command-line skill for downloading Xiaohongshu videos and optionally creating an audio, subtitle, transcript, and summary package. It uses a three-stage subtitle fallback, including local Whisper transcription when platform subtitles are unavailable.

Key features

  1. 01Download videos or audio-only MP3
  2. 02Create video, audio, subtitle, and transcript files
  3. 03Try manual and auto subtitles before Whisper
  4. 04Prepare metadata for AI summaries
  5. 05Support several Xiaohongshu link formats
  6. 06Select output directory and video quality

Use cases

  1. 01Saving a Xiaohongshu video for later review
  2. 02Creating a transcript when subtitles are unavailable
  3. 03Collecting video assets and metadata in one folder
  4. 04Preparing a video transcript for AI summarization

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/smile7up/xiaohongshu-downloader --skill xiaohongshu-downloader

After installing, type/xiaohongshu-downloaderin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE
.gitignore
README.md
reference/
summary-prompt.md
scripts/
parallel_transcribe.py
download_xiaohongshu.py

Details

From the project README

Xiaohongshu Video Downloader & Summarizer

Download videos from Xiaohongshu (小红书/RedNote) and optionally generate a full resource pack: video + audio + subtitles + transcript + AI summary.

Workflow

Follow these 6 steps in order:

Step 1: Check Dependencies

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-dlp
  • brew install ffmpeg (macOS)
Step 2: Get Video Information
/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.

Step 3: Download Video + Extract Audio

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 video
  • audio.mp3 — extracted audio
  • subtitle.vtt — WebVTT subtitles (via 3-tier strategy)
  • transcript.txt — plain text transcription

The --summary flag implies --full and additionally saves .meta.json for AI summary generation.

Step 4: Subtitle Acquisition (Automatic — 3-Tier Strategy)

The script automatically tries these strategies in order:

  1. Manual subtitles — yt-dlp --write-subs --sub-lang zh,en,zh-Hans,zh-CN
  2. Auto-generated subtitles — yt-dlp --write-auto-subs
  3. Whisper local transcription — Falls back to parallel_transcribe.py using faster-whisper
Step 5: Generate Transcript (Automatic)

The script automatically strips timestamps from VTT to produce transcript.txt.

Step 6: AI Summary (Claude generates summary.md)

If the user requested a summary (via --summary flag or by asking to "summarize"):

  1. Read the transcript file:

    ~/Downloads/<video title>/transcript.txt
    
  2. Read the metadata file:

    ~/Downloads/<video title>/.meta.json
    
  3. Read the summary prompt template:

    reference/summary-prompt.md
    
  4. 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.txt
  5. Generate the summary following the template structure.

  6. Save the result to:

    ~/Downloads/<video title>/summary.md
    

Options Reference

OptionDescriptionDefault
-o, --outputOutput directory~/Downloads
-q, --qualityVideo quality (best, 1080p, 720p, 480p)best
--browserBrowser for cookies (chrome, firefox, safari, none)chrome
-a, --audio-onlyDownload audio only as MP3false
--list-formatsList available formatsfalse
--fullFull resource pack modefalse
--summaryAI summary mode (implies --full)false

Output Structure

Basic mode (default)
~/Downloads/
└── <title> [<id>].mp4
Full resource pack mode (--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)

Supported URL Formats

FormatExample
Explore linkhttps://www.xiaohongshu.com/explore/676a35670000000013002578
Discovery linkhttps://www.xiaohongshu.com/discovery/item/676a35670000000013002578?xsec_token=TOKEN
Short linkhttp://xhslink.com/a/xxxxx

Troubleshooting

ProblemSolution
No video formats foundLog into xiaohongshu.com in browser first, use --browser chrome
Unable to extract initial stateCAPTCHA triggered — open URL in browser, solve it, retry
Link expiredCopy fresh share link (tokens expire)
No subtitles foundScript will fall back to Whisper transcription automatically
Whisper not availableInstall uv (brew install uv) for automatic dependency management

Important Notes

  • Always use the full share URL (with xsec_token) for best results
  • Log into xiaohongshu.com in your browser before downloading
  • Maximum video quality is typically 1080p (platform limitation)
  • Whisper transcription requires uv for automatic dependency management, or faster-whisper installed manually
  • Respect copyright and Xiaohongshu's terms of service

Comments

Markdown supported