XHS-Downloader 实操教程:3 种用法把小红书收藏变成本地文件
2026/8/27 3:02:40 网站建设 项目流程

XHS-Downloader 实操教程:3 种用法把小红书收藏变成本地文件

【免费下载链接】XHS-Downloader小红书(XiaoHongShu、RedNote)链接提取/作品采集工具项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader

右键另存了一下午,打开文件夹里全是电脑打不开的 HEIC 图,视频存回来只有标清,跟手机上看到的完全两码事——这就是手动存小红书素材的常态。XHS-Downloader 是一款免费开源的小红书下载工具:它在浏览器里帮你批量圈出作品链接,在本地解析作品信息、下载图文与视频,格式转换和归档也一并处理好。

先跑起来:四行命令装好并启动

运行方式有三种:源码、Docker 容器、打包好的可执行文件。想最快看到效果就走源码运行,前提是 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-devuv run main.py即可。

启动后进的是 TUI 界面,长得像图形软件但操作全靠键盘。正中间是一个大输入框,把作品链接贴进去就行,多条链接用空格隔开,程序会自动筛出有效链接;输入框正下方是一排按钮,"下载作品文件"触发下载,"读取剪贴板"能把剪贴板内容直接填进输入框。界面底部有快捷键提示,按S进设置,按M开启剪贴板监听——开启后你在任何地方复制一条小红书链接,程序就自动开始下载,连粘贴都省了。它兼容explorediscovery/itemuser/profile三种作品链接和xhslink.com短链。

从单条下载到小红书批量下载:三种使用深度

跑通之后,按你的情况挑深度。

刷到好内容顺手存:从浏览器批量提取小红书作品链接

适合"逛着逛着想囤点素材"的人。装法就三步:给浏览器装 Tampermonkey 扩展;新建脚本,把仓库里static/XHS-Downloader.js的内容整段粘进去保存;刷新小红书页面。

跑起来之后,页面上会多出脚本菜单,能提取账号发布、收藏、点赞、专辑的作品链接,也能提取搜索结果里的作品、用户和推荐页作品。提取结果自动写入剪贴板,逛一圈页面,几十条链接就躺在剪贴板里了,切回主程序直接粘。菜单里还有"推送下载任务":把Volume/settings.json里的script_server设为true、保持主程序后台运行,浏览器一点,任务直接送到本地程序下载,全程不用切窗口。

容易踩的坑:脚本默认不自动滚动页面,你得自己往下滑加载内容再提取。设置里可以打开自动滚动,但官方明确提醒过,开启后可能被平台判定为自动化操作、有账号风控风险。低频操作,手动滚一滚更稳妥。

手里有一批链接,丢进命令行批处理

适合"明确知道自己要下载什么"的人。命令行模式把主程序的设置全变成了参数,python main.py --help看一眼就能上手。三条最高频命令:

python main.py --url "https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX"

多条链接整体加引号、空格分隔:

python main.py --url "链接1 链接2 链接3"

长图集只挑几张,用--index指定序号:

python main.py --url "作品链接" --index "1 3 5"

其余参数收进这张速查表:

参数作用什么时候用
--index "1 3 5"只下指定序号的图片长图集只要精选几张
--image_format JPEG指定图片格式不想收到 HEIC/WEBP 时
--folder_mode每个作品独立文件夹作品文件多、想分门别类
--author_archive按作者归档长期追更某几个博主
--update_settings把本次参数写回配置文件试到顺手想固化下来
--cookie "..."本次运行临时指定 Cookie不想改配置文件时

坑有两个:一是加了--index就只处理第一条链接,多条批量时别带它;二是--update_settings会把参数写回Volume/settings.json,之后所有模式都沿用这套设置,写之前想清楚。

写脚本或搭 AI 工作流,把下载能力当接口用

适合做内容运营、写自动化脚本、搭 AI 工作流的人。启动 API 服务一条命令:

python main.py api

服务默认跑在http://127.0.0.1:5556,浏览器打开/docs是自动生成的交互文档。最小可用调用就这几行,downloadtrue时顺便下载文件,cookieproxy不传就沿用配置文件里的值:

from httpx import post resp = post( "http://127.0.0.1:5556/xhs/detail", json={ "url": "https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX", "download": True, "index": [1, 3, 5], }, timeout=60, ) print(resp.json())

MCP 模式是给 AI 助手留的门:运行python main.py mcp,在支持 MCP 的客户端里配置 Streamable HTTP 服务,地址填http://127.0.0.1:5556/mcp/,之后直接用自然语言让它取作品信息或下载文件。坑就一个:批量任务里记得把skip设为true,已有下载记录的作品会被跳过,不会白跑一遍。

调几个配置参数,修掉常见问题

所有模式的参数最后都汇总到Volume/settings.json,首次运行自动生成,改完重启生效;不想碰 JSON 就在 TUI 里按S,效果一样。下面 7 个参数是体感差异最大的,按新手到进阶排序:

参数默认值什么情况下值得改改成什么
cookie视频想要高画质,不配只能拿标清浏览器里取到的web_session,无需登录
image_formatJPEG想要接近原图质量AUTO,跟随服务器返回格式
folder_modefalse作品文件多、想单独一个文件夹true
author_archivefalse长期追更博主、按作者归档true
name_format发布时间 作者昵称 作品标题想用自己的归档命名习惯换入点赞数量、作品ID 等字段
download_recordtrue文件误删后想重新下载先清掉Volume/ExploreID.db里的对应 ID
video_preferenceresolution存储紧张、想优先小体积sizebitrate

高频问题直接给解法。

现象:下载回来的视频只有标清。原因:没配 Cookie,未登录状态下只能拿到低分辨率版本。解法:浏览器打开小红书任意页面按 F12,在"网络"面板过滤web_session,从任意请求里复制完整 Cookie 填进配置文件即可,全程不需要登录账号。

现象:明明没下载过,程序却直接跳过。原因:下载记录默认存进Volume/ExploreID.db,只要记录里有这个作品 ID,哪怕文件已被你删掉也会被当作"已下载"。解法:删掉数据库里对应的记录;或者把download_record临时关掉,程序会改为检查文件是否存在。

现象:链接经常报错、请求失败。原因:作品链接自带日期信息,用很久之前提取的链接容易触发风控;也可能是网络本身不稳。解法:改用最新提取的链接下载,同时调大配置文件里的max_retrytimeout,网络特殊再补上proxy,比反复重启程序有效。

明天先下 5 个作品试试手,再把folder_modeauthor_archive打开。跑顺之后,刷小红书时复制即下载。想再往深走,项目根目录的README.md是完整说明,example.py里的XHS类调用示例是把它嵌进自己脚本的起点。

【免费下载链接】XHS-Downloader小红书(XiaoHongShu、RedNote)链接提取/作品采集工具项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询