
小红书下载工具 XHS-Downloader 快速上手4 步把笔记链接变成整理好的本地文件【免费下载链接】XHS-Downloader小红书XiaoHongShu、RedNote链接提取/作品采集工具项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader你大概率遇到过这种情况一篇攻略笔记刚收藏完过两天再翻出来图里关键的步骤细节已经记不清了而小红书又不像传统网页那样右键另存就能带走高清大图。XHS-Downloader 是为此设计的开源小红书下载工具它负责批量抓取作品链接、解析作品信息、下载图文与视频文件并顺手处理格式转换、文件命名和按作者归档这一整条链路。这篇文章不按功能清单讲而是按一条完整工作流拆成四步——取链接、装下载器、批量下载、对外服务每一步先告诉你什么时候该用再告诉你怎么做。第 1 步在浏览器里批量取链接取链接什么时候用你正在刷小红书、顺手攒素材或者想整个搬空某个作者的发布、收藏、点赞、专辑和某次搜索结果。手动逐条复制链接最耗时间这一步就是为省掉它而存在的。项目自带一份 Tampermonkey 用户脚本源码在static/XHS-Downloader.js。给浏览器装好 Tampermonkey 扩展后新建脚本把文件内容整段粘进去保存刷新小红书页面侧边就会多出一个功能菜单。菜单覆盖了日常取链接的主要来源账号的发布 / 收藏 / 点赞 / 专辑作品、搜索结果里的作品与用户、推荐页作品一键提取后结果直接进剪贴板。也就是说逛一圈页面几十上百条链接就已经躺在剪贴板里随时可以交给下一步用。两个提醒。第一脚本默认不自动滚动页面需要你手动往下滑加载更多内容后再提取设置里可以打开自动滚动但平台可能把这种行为判定为自动化操作、触发账号风控低频批量提取建议保持手动。第二一个可选进阶在Volume/settings.json里把script_server设为true并让主程序保持运行浏览器菜单里的推送下载任务就能把链接直接送进主程序下载省掉切换窗口的动作。第 2 步装好下载器粘贴即下启动下载⌨️这是整条链路的核心链接在剪贴板里之后真正干活的是本地这个程序。源码运行是最快的方式要求 Python 3.12 或更高版本git clone https://gitcode.com/gh_mirrors/xh/XHS-Downloader cd XHS-Downloader pip install -r requirements.txt python main.py用 uv 管理依赖的话后两条换成uv sync --no-dev和uv run main.py即可。启动后进入键盘操作的 TUI 界面正中是一个输入框。把链接粘进去多条链接用空格隔开、整体不用管格式程序会自动清洗出有效链接然后点下载作品文件剩下的解析、下载、归档交给它。四种链接写法都能识别https://www.xiaohongshu.com/explore/作品ID?xsec_tokenXXXhttps://www.xiaohongshu.com/discovery/item/作品ID?xsec_tokenXXXhttps://www.xiaohongshu.com/user/profile/作者ID/作品ID?xsec_tokenXXXhttps://xhslink.com/分享码这类短链界面底部还有几个值得记住的快捷键S进设置、R看下载记录、M开启剪贴板监听。开启监听后你在任何地方复制一条小红书链接程序就自动开下——连粘贴这个动作都省了。到这一步最小闭环已经跑通链接进来文件出去。第 3 步命令行的批量用法批量下载什么时候用你手里已经有一份明确的链接清单想下载这一次指定的一批作品或者只想下一套长图集里的某几张图。命令行模式把主程序的所有设置都变成了参数每条命令对应一次任务适合写进脚本复用。先跑python main.py --help看一遍帮助面板最常用的三种用法是# 单条下载 python main.py --url https://www.xiaohongshu.com/explore/作品ID?xsec_tokenXXX # 多条一起下空格分隔、整体加引号 python main.py --url 链接1 链接2 链接3 # 图文作品只下指定序号的图 python main.py --url https://www.xiaohongshu.com/explore/作品ID?xsec_tokenXXX --index 1 3 5注意一个细节设置了--index时程序只处理第一个链接多链接和按序号选图这两件事不能同时做。几个高频参数速查参数作用什么时候用--index 1 3 5只下指定序号的图片长图集只要精选几张--image_format JPEG指定图片格式不想收到 HEIC/WEBP--folder_mode每个作品独立文件夹作品文件多、想分类存放--author_archive按作者归档长期追更固定几个博主--update_settings把本次参数写回配置文件试出顺手参数后固化对反复调参的人--update_settings是最值得习惯的一个命令行里试到满意的那组参数加上它一次设置就写回Volume/settings.json之后所有模式都沿用这套配置——比直接手改 JSON 稳得多。第 4 步把下载能力开放给其他程序和 AI对外服务什么时候用你在写自动化脚本、做内容运营的定时任务或者搭 AI 工作流需要让别的程序来调用下载而不是人肉指挥。前两步是人指挥机器这一步反过来。API 模式一条命令启动python main.py api服务默认跑在http://127.0.0.1:5556浏览器打开/docs就是自动生成的交互式文档。核心接口只有一个POST /xhs/detail传url加一个download: true就能拿到作品信息并触发下载index、skip、cookie、proxy都是可选参数缺省时自动沿用配置文件里的值。接入方只需要发一个 JSON 请求不必自己去对接小红书的任何接口。MCP 模式是给 AI 助手准备的python main.py mcp在支持 MCP 的客户端里配一个 Streamable HTTP 服务地址填http://127.0.0.1:5556/mcp/之后在对话框里直接说把这个链接的图文下下来只要第 1、3、5 张AI 会通过 MCP 工具完成。两种服务模式共用 5556 端口同一时间只跑一种且服务进程要持续在后台开着。如果你只是自己偶尔下载这一步完全可以跳过。第 5 步调好归档习惯配置调参所有参数最终都落在Volume/settings.json——首次运行自动生成改完重启生效不想碰 JSON 就按S进 TUI 设置界面效果相同。下面这几个是我建议动手的参数默认值什么时候改image_formatJPEG想要接近原图质量设AUTO跟随服务器返回格式没有 HEIC 版本时自动降级为 WEBP不会拿到打不开的文件name_format发布时间 作者昵称 作品标题想换归档习惯时可加入点赞数、作品ID、作品类型等字段空格分隔folder_modefalse单个作品文件多、想单独成文件夹时开启author_archivefalse按作者建文件夹目录名是作者ID_作者昵称作者改昵称会自动同步download_recordtrue默认记录已下载 ID 并跳过误删文件想重下时要清记录见下一步write_mtimefalse想让文件修改时间等于作品发布时间、方便按时间排序时开启video_preferenceresolution分辨率优先 / 码率优先 / 体积优先按存储条件定cookie空想要高画质视频时必配author_archive还有个进阶玩法配合mapping_data给作者起别名归档文件夹就用你起的名字而不是原始 ID——追更博主、整理竞品素材时很顺手。第 6 步三个高频坑的解法排错参数再对也躲不开几个经典问题直接给解法。视频下回来只有标清九成是没配 Cookie。未配置时视频只能拿到低分辨率版本。解决办法不用登录账号浏览器打开小红书任意页面按 F12 进开发者工具在网络面板过滤web_session从任意请求里复制完整 Cookie 填入程序即可。明明没下过程序却说已下载并跳过是下载记录在起作用。程序默认把下载成功的作品 ID 存在Volume/ExploreID.db只要记录里有这个 ID文件就算被你删了也会被当成已下载。想重下就清掉数据库里对应记录或者临时关掉download_record程序会改为检查文件是否真实存在。请求频繁报错、下载失败两个常见原因一是作品链接带日期信息太久之前拿的链接容易触发风控所以尽量用刚提取的新鲜链接二是网络环境问题把配置里的max_retry重试次数默认 5和timeout超时秒数默认 10调大网络特殊再配proxy代理。先动这两个参数比反复重启程序有效得多。写在最后四条路径不是互相替代而是按频率组合浏览器脚本取链接加主程序下载是日常主力重复出现的流程搬进命令行脚本只有要对接外部程序或 AI 时才起 API / MCP 服务。想继续深入根目录README.md是中文说明完整版用户脚本源码在static/XHS-Downloader.js二次开发的入口看example.py里XHS类的调用示例Docker 用户可直接拉joeanamier/xhs-downloader镜像起服务。链接在剪贴板里不会自己变成文件但工具已经替你准备好了一条从链接到硬盘的传送带。【免费下载链接】XHS-Downloader小红书XiaoHongShu、RedNote链接提取/作品采集工具项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考