ClipSaver for XiaoHongShu
Adds a download button to XiaoHongShu note media that opens a download launcher
Overview
ClipSaver for XiaoHongShu is a userscript that overlays a download button on the media area of a XiaoHongShu note and hands the current note to an online download service. A companion panel page can trigger a download and display progress and runtime logs. It runs only on xiaohongshu.com.
XiaoHongShu note pages do not provide a built-in way to save a note's media. This script puts a one-click download control on the note and connects it to an external download service, so you no longer have to copy the note URL and hunt for a downloader yourself.
Users who browse notes on xiaohongshu.com and want a convenient way to hand the current note to a download service, and who are comfortable installing a userscript and letting it open the companion panel and download pages.
Key features
- Adds a floating download button directly over the note's media container.
- Downloads the note you are currently viewing without copying its URL.
- Shows an animated rainbow hover ring with a built-in download icon; styling is injected only once.
- Companion panel page with a scan-interval setting and download actions.
- Panel actions report running / done / error status back to the panel.
- Uses GM storage when available and falls back to localStorage.
- Runs only on xiaohongshu.com and injects only on /explore/ note pages.
Supported sites
- www.xiaohongshu.com
Permissions
This script requests the following userscript-manager permissions. Review them before installing.
GM_openInTabGM.openInTabGM_addStyleGM_setValueGM_getValue
How to install & use
- Install a userscript manager such as Tampermonkey or Violentmonkey for your browser.
- Click the "Download / install" button to open the script source on GitHub and install it with your userscript manager.
- Open the target site and use the script as documented.
How to use
- Install the userscript in a userscript manager that supports GM_openInTab, GM_addStyle, GM_setValue and GM_getValue.
- Open a XiaoHongShu note page under the /explore/ path.
- Wait for the round download button to appear over the note media.
- Click the button (or use "Download current note" in the panel) to open the download service for that note.
- Open the companion panel to adjust the scan interval or trigger a download.
- Check the panel status line to see running, done, or failed results.
Limitations
- Only operates on xiaohongshu.com; other sites are untouched.
- Button injection depends on specific selectors (#noteContainer and .media-container) and on /explore/ note pages; layout or DOM changes may stop it working.
- Actual downloading is performed by an external online service, so it requires network access and can fail if that service is unavailable.
- The panel is opened with window.open on first run, which a popup blocker may prevent.
- The panel's enable switch is written into the script config, but the script still injects the button whenever a note media container is found.
- The injected button scans the page repeatedly at the configured interval (default 777 ms).
FAQ
Where does the button appear?
It is injected into the media container of a XiaoHongShu note page, near the top-right of the media area.
Does the script download the file itself?
No. It passes the current note URL to an external download service, which performs the download.
Can I close the button?
You can adjust the scan interval in the companion panel; the panel's enable switch does not currently stop the button from being injected.
What settings are stored?
Only a one-time "panel connected" flag is persisted, using GM storage when available or localStorage otherwise.
Safety & privacy
The script runs only on xiaohongshu.com and is marked @noframes, so it does not execute inside embedded frames. It requests GM_openInTab, GM_addStyle, GM_setValue and GM_getValue: opening tabs is used only to open the download service and the companion panel, styling is injected into the local page, and storage keeps only a one-time connection flag (falling back to localStorage). To complete a download, the current note URL is sent to the external download service. Panel messaging is scoped to a task channel, cross-origin messages are accepted only from the panel origin, and duplicate messages are de-duplicated. Runtime logs are kept in a small in-memory ring buffer (up to 200 entries) that is cleared on reload and is neither persisted nor redacted. The script does not read or transmit account credentials.