XHS-Downloader 小红书批量下载指南
XHS-Downloader 小红书批量下载指南
【免费下载链接】XHS-Downloader小红书(XiaoHongShu、RedNote)链接提取/作品采集工具项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader
做竞品分析时,我常需要把某个账号最近发布的图文和视频完整搬到本地,手动逐个保存既慢又容易漏。XHS-Downloader 是一款开源的小红书批量下载工具:把作品链接交给它,就能解析下载地址、采集作品信息并保存文件,图形界面、命令行、浏览器脚本到 API 都有对应入口。
📌 项目概览:能采集与下载哪些内容
XHS-Downloader 的定位是小红书(RedNote)作品采集与下载工具:输入作品链接即可完成数据请求、文件下载与本地归档,配套的浏览器用户脚本还能在网页端直接提取批量作品链接。
- 作品类型:图文、视频、LivePhoto 动图,图片文件支持 PNG、WEBP、JPEG、HEIC
- 信息字段:点赞、评论、收藏、分享数量、发布时间、作者昵称等,可另存为 txt/md 笔记或写入 SQLite
- 文件管理:记录已下载作品 ID 自动去重、断点续传、自定义命名格式、按作者归档
- 调用方式:GUI、TUI 终端界面、命令行、HTTP API、MCP、浏览器用户脚本
📦 安装部署:三种方式跑起来
直接运行可执行文件
Windows 10 及以上与 macOS 用户可下载最新发布的压缩包,解压后双击main即可。默认下载目录是./Volume/Download,配置文件为./Volume/settings.json;macOS 首次运行需在终端执行xattr -cr 项目文件夹路径移除安全标记。
源码运行(git clone + uv)
要求 Python 3.12 及以上,推荐用 uv 管理依赖:
git clone https://gitcode.com/gh_mirrors/xh/XHS-Downloader cd XHS-Downloader uv sync --no-dev uv run main.pyDocker 一键部署
docker pull joeanamier/xhs-downloader docker run -p 5556:5556 -v xhs_downloader_volume:/app/Volume -it joeanamier/xhs-downloader镜像名后可追加python main.py api或python main.py mcp启动 API 或 MCP 模式;下载数据放在挂载卷里,重建容器不会丢失。Docker 环境不支持命令行调用与剪贴板监听。
⌨️ 使用方式:三种入口按场景挑
图形界面:适合低频下载的个人用户
把作品链接粘贴到输入框即可下载,程序还能后台监听剪贴板,复制链接的动作本身就能触发下载;已下载过的作品自动跳过,避免重复占空间。
命令行:适合批量与自动化脚本
完整参数用python main.py --help查看(实现位于 source/CLI/),基础用法:
python main.py --url "https://www.xiaohongshu.com/explore/作品ID"常用参数:
--index:只下载图文作品中指定序号的图片,如"1 3 5";设置后仅处理首个链接--name_format:文件命名字段,如发布时间 作者昵称 作品标题--author_archive:按作者分文件夹归档,作者改名时自动同步文件名--image_format:图片输出格式,可选 PNG / WEBP / JPEG / HEIC / AUTO
多个链接放在同一引号内、以空格分隔即可一次传入。
浏览器脚本:适合边浏览边收集
给浏览器装上 Tampermonkey 扩展并添加用户脚本后,就能在小红书网页端提取推荐页、搜索结果、账号发布/收藏/点赞/专辑的作品链接,或把当前作品打包下载;把程序配置的script_server设为true,脚本还可以把下载任务推送给本地程序执行。
🔑 关键配置:获取高清视频的 Cookie 配置
未设置 Cookie 时,视频作品只能取到低分辨率文件,配置后就能下载高清版本(无需登录账号):
- 浏览器访问
https://www.xiaohongshu.com/explore,建议用无痕模式 - 按 F12 打开开发者工具,切到「网络」选项卡
- 过滤框输入
cookie-name:web_session,点击页面中任意作品 - 选中产生的请求包,复制请求头中的完整 Cookie
- 粘贴进配置文件的
cookie字段,重启程序生效
配置文件位于./Volume/settings.json,首次运行自动生成,修改后需重启程序。
🧩 进阶玩法:MCP 接入 AI 与二次开发
MCP 与 AI 助手集成
源码运行先装 MCP 依赖:uv sync --no-dev --extra mcp,再执行python main.py mcp启动服务。把下面配置写进 AI 助手的 MCP 服务列表,对话中即可查询作品信息或触发下载(令牌为启动时输出的鉴权令牌):
{ "mcpServers": { "XHS-Downloader": { "url": "http://127.0.0.1:5556/mcp", "headers": { "Authorization": "Bearer <鉴权令牌>" } } } }Python 二次开发
下载核心逻辑在 source/application/,接口用法以example.py为准,最小示例:
from source.application import XHS async with XHS(work_path="./my_downloads", name_format="发布时间 作者昵称 作品标题") as xhs: for link in links: info = await xhs.extract(link, download=True, index=[1, 3, 5])两个落地场景
- 内容创作者:把对标账号的参考作品按「作者 + 主题」归档进本地素材库,配合
note_format导出每篇作品的笔记文件,方便随时翻阅。 - 运营团队:用用户脚本从竞品主页批量提取链接,再走 API 下载,基于点赞、发布时间等字段产出周期性的竞品数据报告。
❓ 常见问题与合规提醒
Q:下载的视频为什么画质不高?视频清晰度依赖 Cookie。未配置时只能拿到低分辨率文件,按上一节的 5 步把 Cookie 写入settings.json即可解决。
Q:想批量下载某个作者的所有作品怎么办?用浏览器用户脚本提取「账号发布作品链接」,脚本会自动滚动加载更多内容,把结果粘贴到命令行--url参数中一次处理。
Q:下载的文件存放在哪里?默认在./Volume/Download/,可用work_path、folder_name修改位置与目录名;下载记录存于./Volume/ExploreID.db,作品数据存于./Volume/ExploreData.db。
Q:支持哪些链接格式?explore/作品ID、discovery/item/作品ID、user/profile/作者ID/作品ID三类作品页与xhslink.com分享短链均可识别,多链接用空格分隔,程序会自动过滤无效项。
合规提醒:程序内置请求间隔(默认 6 秒)以控制频率,不建议调低;仅下载个人学习使用或已获授权的内容,尊重原创作者的版权与平台规则。
从链接提取到文件归档,这条链路 XHS-Downloader 都封装成了可选的入口:低频使用走图形界面,批量任务走命令行或 API,有 AI 工作流就接 MCP。作品链接自带日期信息,时效过期可能触发风控,遇到异常时优先检查 Cookie 与链接的新旧。
git clone https://gitcode.com/gh_mirrors/xh/XHS-Downloader cd XHS-Downloader && uv sync --no-dev && uv run main.py【免费下载链接】XHS-Downloader小红书(XiaoHongShu、RedNote)链接提取/作品采集工具项目地址: https://gitcode.com/gh_mirrors/xh/XHS-Downloader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考