小红书无水印下载实操指南:三步用 XHS-Downloader 完成链接提取与批量归档
【免费下载链接】XHS-Downloader小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书作品文件项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader
凌晨一点,我盯着收藏夹里那条三个月前收藏的教程视频,屏幕上是平台压缩过的画质,右下角还有一行甩不掉的水印。录屏画质更差,长截图一屏截不全,手动保存上百条内容,大概要折腾一整个周末。
后来我找到了 XHS-Downloader,一款开源的小红书作品采集与下载工具,核心是提取小红书作品链接、解析原始下载地址,并把无水印的作品文件保存到本地。这篇文章不讲虚的,从实际体验出发,说说它怎么解决"保存小红书内容"这件事,以及拿到手之后第一步该做什么。
为什么我不再手动保存小红书内容
先说说我之前的"土办法"有多麻烦:图文笔记只能长截图,画面被切断,放大就糊;视频要么录屏(二次损伤画质),要么用网页解析工具(经常失效);逐个打开、逐个保存,几十条内容一晚上就没了;文件命名全靠手打,最后"新建文件夹(3)"里躺着一堆无名文件。
XHS-Downloader 做的事情很直接:把你给它的作品链接解析成原始资源地址,然后异步下载文件。打个比方,它像一位耐心的图书管理员——你报书名(链接),它去书库(小红书服务器)把原版书(无水印原文件)取出来,再按你的规矩分门别类放好。
适合用它的人大致有三类:需要保存学习资料和教程的学生、需要收集灵感素材的设计师与创作者、需要做内容归档或数据采集的运营和开发者。如果你只是偶尔存一两条,手动截图也够用;但凡是"批量""长期"的需求,它就能派上大用场。
三分钟跑通:从克隆代码到下载第一个作品
以源码运行为例(需要 Python 3.12),最短路程就三步。
第一步,拉取代码:
git clone https://gitcode.com/gh_mirrors/xh/XHS-Downloader cd XHS-Downloader第二步,安装依赖,两种方式任选其一:
# 方式一:使用 uv(推荐,速度快) uv sync # 方式二:使用 pip pip install -r requirements.txt第三步,启动程序:
python main.py程序启动后是一个终端图形界面,中间是链接输入框。把小红书作品链接粘贴进去,回车即可开始下载。它支持的链接格式包括:
https://www.xiaohongshu.com/explore/作品IDhttps://www.xiaohongshu.com/discovery/item/作品IDhttps://www.xiaohongshu.com/user/profile/作者ID/作品IDhttps://xhslink.com/分享码(短链接)
一个很省事的细节:一次可以粘贴多个链接,用空格分隔即可,程序会自动提取有效链接。对新手来说,这基本就是全部操作。
关于 Cookie 先说一句:从 2.2 版本起,功能正常情况下不需要额外配置 Cookie 就能下载。配置登录态的 Cookie 可以获得更完整的体验(比如视频的更高分辨率),但这不是起步的必需品。
三个真实使用场景:学生、设计师和运营分别怎么用它
场景一:设计师攒素材
小林是平面设计师,每天在小红书刷灵感,一个月攒了上百条图文笔记。她的痛点是水印图没法直接用,手动保存的图片命名混乱。她在程序里开启"每个作者单独文件夹",把图文格式设为 WebP,命名规则改成"作者昵称 作品标题"。下载完成后打开文件夹,图片按作者分好、命名可读、无水印、接近原画质,直接就能进素材库。
场景二:博主备份自己的账号
阿澈想把账号里发布过的所有作品备份到本地,但一条条复制链接太累。他先装了浏览器用户脚本,在小红书页面打开脚本菜单,点"提取发布作品链接",脚本自动滚动页面直到加载完所有作品,再把链接一键复制出来。随后把整串链接粘贴进主程序,批量下载一次完成。
场景三:运营团队做数据归档
运营同学需要定期把一批竞品笔记的元数据(标题、点赞、评论、发布时间等)和文件归档下来。他直接用 API 模式启动程序,用脚本调接口批量拿数据,配合定时任务跑,省去了反复手点界面的时间。
这三个场景分别对应三种用法:纯界面操作、脚本辅助批量提取、接口化调用。共同点是——把"打开—复制—粘贴—保存—重命名"这条重复链路,压缩成一次操作。
关键能力逐个看:这些设计是怎么配合的
链接提取与剪贴板监听
除了手动粘贴链接,程序支持后台监听剪贴板:复制链接后自动开始下载,适合你一边逛小红书一边攒任务。配合用户脚本,还能把"提取发布、收藏、点赞、专辑作品链接""提取搜索结果链接"这些页面操作直接变成下载任务。
无水印下载与文件处理流水线
下载不是简单地把文件拉下来,它包含一整套处理:
- 断点续传:网络中断后从断点继续,不用从头再来;
- 智能识别文件类型:自动判断作品是图文还是视频,走对应的处理逻辑;
- 图片格式可选:
PNG、WEBP、JPEG、HEIC或AUTO(跟随服务器返回),其中 WebP 通常能省不少存储空间; - 自定义命名规则:文件名支持"发布时间、作者昵称、作品标题、点赞数量、作品类型"等十余个字段自由组合;
- 作者归档与昵称更新:按作者分文件夹,作者改昵称后,已下载文件的昵称部分会自动同步更新;
- 跳过已下载:下载过的作品 ID 会记录到数据库,下次自动跳过,避免重复下载。
为了不给平台服务器造成压力,程序内置了请求延时机制。这一点对长期使用者很重要,能降低被风控的概率。
命令行模式:适合脚本化与精细控制
不想开图形界面时,命令行模式能做的事更多。比如图文作品只想下载第 1、3、5 张图:
python -m source.CLI.main -u "作品链接" --index "1 3 5"指定图片格式并保存到独立文件夹:
python -m source.CLI.main -u "作品链接" --image_format webp --folder_mode true从浏览器读取 Cookie 并写入配置:
python main.py --browser_cookie Chrome --update_settings完整的参数(链接、存储路径、命名、代理、超时、重试、分块大小等)可以用--help查看:
其中--browser_cookie值得一提:它支持从 Chrome、Edge 等浏览器自动读取小红书 Cookie 并写入配置,省去手动复制。注意在 Windows 上需要以管理员身份运行程序才能读取浏览器 Cookie。
用户脚本与程序联动
用户脚本(static/XHS-Downloader.js,配合 Tampermonkey 使用)主要解决"批量获取链接"的问题:自动滚动加载、提取发布/收藏/点赞/专辑作品链接、提取搜索结果链接。更进阶的用法是把程序作为服务器运行(配置文件里把script_server设为true),在浏览器里点"推送下载任务",由本地程序完成下载——这也是很多人"逛着逛着就把内容存下来"的推荐姿势。
新手最容易踩的五个坑,以及排查思路
坑一:作品链接提示失效或数据为空
作品链接携带日期信息,使用旧链接可能触发风控。排查思路:复制最新获取的链接再试;仍失败就检查网络能否正常访问小红书,必要时更新 Cookie。
坑二:文件明明没了,下载却"被跳过"
程序默认记录已下载的作品 ID。如果之前下载过、后来文件被删了,它会因记录存在而跳过。想重新下载,去Volume/ExploreID.db删除对应记录,或暂时关闭"下载记录"开关。
坑三:macOS 双击 main 没反应
Mac 上程序包未签名,首次运行会被系统安全限制拦截。在终端执行xattr -cr 项目文件夹路径移除安全标记即可,只需执行一次。
坑四:用户脚本下载文件失败
开着全局代理时,脚本下载可能失败。排查思路:先关闭代理工具再试;另外脚本处理无水印文件需要时间,不要反复点击下载按钮。
坑五:改了配置文件不生效
配置参数填了非法值时,程序会用默认值兜底。修改Volume/settings.json后需要重启程序才生效;在界面上交互卡顿时,直接编辑这个 JSON 文件往往更省事。
再进一步:配置文件、二次开发与 MCP 集成
主配置在Volume/settings.json,首次运行自动生成。几个值得关注的高频参数:
{ "work_path": "Volume", "folder_name": "Download", "name_format": "发布时间 作者昵称 作品标题", "image_format": "PNG", "folder_mode": false, "author_archive": false, "download_record": true, "chunk": 2097152, "max_retry": 5, "language": "zh_CN" }name_format:决定文件名,支持收藏数、评论数、点赞数、作品标签、作品 ID、标题、描述、类型、发布时间、作者昵称、作者 ID 等字段;author_archive:按作者归档,还可以通过mapping_data给作者设置别名;chunk与max_retry:网络环境不稳时适当调大,能提升下载成功率。
如果这些还不够,项目保留了二次开发入口。example.py展示了如何用代码调用核心类XHS,传入链接、下载开关、图片序号等参数,直接拿到作品数据或触发下载,适合嵌入自己的脚本和业务系统。
对 AI 集成感兴趣的话,项目还提供 MCP 模式。启动python main.py mcp后,以 Streamable HTTP 方式提供接口,把 MCP 服务地址填进支持 MCP 的客户端(比如 AI 助手工具),就能用自然语言让它"获取某条笔记的信息"或"下载某个作品",链接解析和文件下载都由程序完成。
API 模式同样可用:python main.py api启动后访问http://127.0.0.1:5556/docs可看到交互式接口文档,POST /xhs/detail接口接收链接,返回作品信息或触发下载。
动手前最后确认的几件事
把整个流程走完,XHS-Downloader 带来的实际收益是这样的:链接批量提取、无水印原文件下载、断点续传兜底、文件自动分类命名、下载记录防重复,往上还有命令行、API、MCP 这些可扩展的接口。
给你的下一步行动清单:
- 克隆仓库,按上文完成环境安装;
- 先用一条链接跑通主程序下载,确认文件落盘位置(默认
Volume/Download); - 再按自己的习惯,设置命名规则和归档方式;
- 需要批量提取链接时,装上用户脚本配合使用;
- 有自动化需求的,再研究命令行或 API 模式。
最后提醒一句:下载到的内容请仅用于个人学习与合理参考,保存和引用时注意标注来源,尊重原作者的权利。工具解决的是"怎么存"的问题,而"存来做什么"的边界,由使用者自己把握。
【免费下载链接】XHS-Downloader小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接;采集小红书作品信息;提取小红书作品下载地址;下载小红书作品文件项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考