这款开源工具解决了数百万用户的小红书内容保存难题,一键获取无水印作品并实现批量采集管理。

在内容为王的时代,小红书(XiaoHongShu/RedNote)已成为优质图文视频内容的核心来源地之一。无论是学习教程、生活技巧还是创意灵感,用户常遇到“收藏容易保存难”的困境——官方应用不提供下载选项,第三方工具常有水印或功能残缺。XHS-Downloader 应运而生,它是一款完全免费开源的 Python 工具,基于 AIOHTTP 模块实现,专为高效采集小红书作品而设计 。


一、核心功能全景解析

XHS-Downloader 突破了小红书的内容获取壁垒,提供全链路解决方案

  1. 作品链接提取能力
  • 账号维度:支持提取用户发布、收藏、点赞及专辑作品链接
  • 搜索维度:抓取搜索结果中的作品链接与用户主页链接
  • 批量处理:单次输入多个链接(空格分隔),自动过滤无效内容
  1. 作品信息采集与下载
  • 元数据采集:获取作品标题、描述、作者、发布时间等结构化数据
  • 无水印下载:独家解析技术获取去水印的图文/视频文件
  • LivePhoto支持:额外下载动态照片资源(非无水印)
  1. 智能化文件管理
  • 重复过滤:通过作品ID数据库自动跳过已下载文件
  • 完整性校验:下载中断自动恢复,确保文件完整
  • 灵活存储:可选统一文件夹或按作品独立文件夹存储
  • 格式自定义:图文作品支持PNG/WEBP格式转换
  1. 多模式运行支持
  • 监听剪贴板:后台实时监测复制的小红书链接自动触发下载
  • API服务器模式:通过HTTP接口调用实现跨程序协作
  • 命令行控制:精准下载图文作品中的指定序号图片

表:XHS-Downloader 配置文件关键参数详解 (settings.json)

📜 参数配置说明

参数类型功能说明默认值
cookie字符串小红书网页版 Cookie空(需手动设置)
image_format字符串图文下载格式PNG
folder_mode布尔值是否为作品创建独立文件夹false
chunk整型下载分块大小(字节)1048576 (1MB)
max_retry整型下载失败重试次数5
proxy字符串网络代理地址null

二、安装指南:三种方式覆盖全平台

🖱 程序直接运行(推荐新手)

  1. 访问 GitHub Releases 下载对应系统压缩包
  2. 解压后进入文件夹:
  • Windows:双击 main.exe
  • Mac OS:终端执行 ./main(需赋予执行权限)
  1. 文件默认保存路径:./_internal/Download

🐳 Docker容器运行

# 拉取镜像
docker pull joeanamier/xhs-downloader

# 启动TUI交互界面
docker run -it joeanamier/xhs-downloader

# 或启用API服务模式
docker run -it joeanamier/xhs-downloader python main.py server

⌨ 源码运行(开发者/高级用户)

# 需Python ≥ 3.12
git clone https://github.com/JoeanAmier/XHS-Downloader.git
cd XHS-Downloader
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
python main.py

三、实战使用教程

基础下载操作

  1. 启动程序后复制小红书作品链接(支持三种格式):
https://www.xiaohongshu.com/explore/63b275a30000000019020185
https://www.xiaohongshu.com/discovery/item/64edb460000000001f03cadc
https://xhslink.com/XXXXXX
  1. 点击“读取剪贴板”自动填入链接
  2. 选择“下载无水印作品文件”
  3. Download文件夹查看结果

高阶技巧

  1. Cookie设置提升成功率
  • 浏览器无痕模式访问https://www.xiaohongshu.com
  • 按F12打开开发者工具 → Console选项卡
  • 输入document.cookie回车 → 复制输出内容
  • 粘贴到配置文件cookie字段
  1. 油猴脚本批量采集
  • 安装Tampermonkey扩展
  • 添加XHS-Downloader用户脚本
  • 浏览小红书时自动提取页面所有作品链接
  • 配合主程序实现批量下载
  1. 命令行精准下载
# 仅下载图文作品的第1,3张图片
python main.py --url "https://www.xiaohongshu.com/explore/xxxx" --index 1,3

# 从Chrome导入Cookie
python main.py --browser_cookie Chrome --update_settings true
  1. API服务器模式
import requests
server = "http://localhost:8000/xhs/"
data = {
    "url": "https://www.xiaohongshu.com/explore/123456789",
    "download": True,
    "index": [2,4]  # 下载第2和第4张图
}
response = requests.post(server, json=data)
print(response.json())

四、横向对比:为何XHS-Downloader更胜一筹?

表:小红书下载工具能力对比矩阵

🛠️ 下载工具功能对比

功能XHS-Downloader通用下载器 (IDM/FDM)网页在线工具
无水印下载✅ 支持❌ 不支持⚠️ 部分支持
作品信息结构化提取✅ 支持❌ 不支持❌ 不支持
批量链接处理✅ 支持✅ 支持❌ 不支持
跨平台支持 (Win/Mac/Linux)✅ 支持⚠️ 部分仅限于 Win✅ 支持
监听剪贴板自动下载✅ 支持❌ 不支持❌ 不支持
开源透明✅ 开源 (GPL-3.0)❌ 不开源❌ 不开源
用户脚本联动✅ 支持❌ 不支持❌ 不支持

相较于通用下载工具如IDM(仅支持基础下载加速)或EagleGet(专注视频抓取),XHS-Downloader的核心优势在于:

  • 深度平台适配:专门解析小红书数据结构,突破无水印技术壁垒
  • 轻量无广告:28MB左右的极简体积,远离商业工具的弹窗干扰
  • 全链路自动化:从链接发现→元数据提取→文件下载一气呵成
  • 隐私安全:开源代码杜绝后门,本地运行避免内容上传风险

五、进阶技巧与避坑指南

  1. 下载加速方案
    当遇到大视频下载缓慢时:
  • 修改settings.json中的chunk值(建议提升至10MB)
  • 启用代理(proxy参数)绕过网络限速
  • 结合多线程下载器(如Axel)处理直链:
# 获取直链后使用axel加速
axel -n 10 "视频直链地址"
  1. 异常处理方案
  2. 下载中断:检查max_retry值(建议≥3),开启代理避免IP屏蔽
  3. 返回空数据:更新Cookie(有效期通常24小时),确认链接格式正确
  4. Mac运行失败:终端执行chmod +x main添加执行权限
  5. 批量下载策略
  6. 使用用户脚本采集账号所有作品页链接
  7. 将链接保存至urls.txt,一行一个
  8. 执行命令批量下载:
python main.py -f urls.txt

六、结语:内容保存的伦理边界

XHS-Downloader 以技术中立为原则,为个人学习与研究提供合法工具。需特别强调:

  • 禁止商用:下载内容仅限个人使用,禁止用于商业变现
  • ⚖️ 尊重版权:保留作品元数据,转载时明确标注来源与作者
  • 🔒 隐私保护:不下载非公开内容,不破解用户隐私数据

项目持续迭代中,最新版本已支持文件断点续传LivePhoto合成功能。建议开发者通过源码编译体验前沿特性,普通用户可关注Releases页面获取稳定版更新 。

Windows Terminal 的运行环境下,墨绿色的命令行界面中闪过一行行白色日志,当出现 “Download completed!” 的提示时,那些曾经只能在线观看的小红书作品,已然静静躺在本地文件夹中——没有水印,没有平台限制,只有纯粹的内容留存。