能力标签
XHS-Downloader MCP工具
🛠
AI工具

XHS-Downloader MCP工具

基于 Python · 开源免费,本地部署,数据完全自主可控
英文名:XHS-Downloader
⭐ 11.1k Stars 🍴 1.7k Forks 💻 Python 📄 GPL-3.0 🏷 AI 8.2分
8.2AI 综合评分
小红书爬虫内容采集API工具FastAPI开源
✦ AI Skill Hub 推荐

经 AI Skill Hub 精选评估,XHS-Downloader MCP工具 获评「强烈推荐」。在 GitHub 上收获超过 11.1k 颗 Star,这款AI工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 8.2 分,适合有一定技术背景的用户使用。

📚 深度解析

XHS-Downloader MCP工具 是一款基于 Python 的开源工具,在 GitHub 上收获 11k+ Star,是小红书爬虫、内容采集、API工具、FastAPI领域中的优质开源项目。开源工具的最大优势在于代码完全透明,你可以审计每一行代码的安全性,也可以根据自身需求进行二次开发和定制。

**为什么要使用开源工具而非商业 SaaS?**
对于个人开发者和有隐私需求的用户,本地部署的开源工具意味着数据不离本机,不受第三方服务商的数据政策约束。同时,开源工具通常没有使用次数限制和月度费用,一次安装即可长期使用,对于高频使用场景的总拥有成本(TCO)远低于订阅制商业工具。

**安装与环境准备**
XHS-Downloader MCP工具 依赖 Python 运行环境。建议通过 pyenv(Python)或 nvm(Node.js)管理 Python 版本,避免全局环境污染。对于新手用户,推荐先创建虚拟环境(python -m venv venv && source venv/bin/activate),再安装依赖,这样即使出现问题也可以随时删除虚拟环境重新开始,不影响系统稳定性。

**社区与维护**
GitHub Issue 和 Discussion 是获取帮助的最快渠道。在提问前建议先检查 Closed Issues(已关闭的问题),大多数常见问题都已有解答。遇到 Bug 时,提供 pip list 的输出、完整错误堆栈和最小可复现示例,能显著提高开发者响应速度。AI Skill Hub 将持续追踪 XHS-Downloader MCP工具 的版本更新,及时通知重要功能变化。

📋 工具概览

专业的小红书链接提取与内容采集工具,支持账号作品、收藏、点赞、搜索结果等多维度数据获取。提供FastAPI接口和Docker部署方案,适合内容研究、数据分析和爬虫开发者使用。

XHS-Downloader MCP工具 是一款基于 Python 开发的开源工具,专注于 小红书爬虫、内容采集、API工具 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

GitHub Stars
⭐ 11.1k
开发语言
Python
支持平台
Windows / macOS / Linux
维护状态
活跃维护,更新频繁
开源协议
GPL-3.0
AI 综合评分
8.2 分
工具类型
AI工具
Forks
1.7k

📖 中文文档

以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

专业的小红书链接提取与内容采集工具,支持账号作品、收藏、点赞、搜索结果等多维度数据获取。提供FastAPI接口和Docker部署方案,适合内容研究、数据分析和爬虫开发者使用。

XHS-Downloader MCP工具 是一款基于 Python 开发的开源工具,专注于 小红书爬虫、内容采集、API工具 等核心功能。作为 GitHub 开源项目,它拥有活跃的社区支持和持续的版本迭代,代码完全透明可审计,支持本地部署以保护数据隐私。无论是个人使用还是集成到企业工作流,都能提供稳定可靠的解决方案。

📌 核心特色
  • 开源免费,支持本地部署,数据完全自主可控
  • 活跃的 GitHub 开源社区,持续迭代更新
  • 提供详细文档和使用示例,新手友好
  • 支持自定义配置,灵活适配不同使用环境
  • 可作为基础组件集成进现有技术栈或进行二次开发
🎯 主要使用场景
  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一:pip 安装(推荐)
pip install xhs-downloader

# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install xhs-downloader

# 方式三:从源码安装(获取最新功能)
git clone https://github.com/JoeanAmier/XHS-Downloader
cd XHS-Downloader
pip install -e .

# 验证安装
python -c "import xhs_downloader; print('安装成功')"
📋 安装步骤说明
  1. 访问 GitHub 仓库页面
  2. 按照 README 文档完成依赖安装
  3. 根据系统环境完成初始化配置
  4. 参考官方示例或文档开始使用
  5. 遇到问题可在 GitHub Issues 中查找解答
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
xhs-downloader --help

# 基本用法
xhs-downloader input_file -o output_file

# Python 代码中调用
import xhs_downloader

# 示例
result = xhs_downloader.process("input")
print(result)
以下配置示例基于典型使用场景生成,具体参数请参照官方文档调整。
配置示例
# xhs-downloader 配置文件示例(config.yml)
app:
  name: "xhs-downloader"
  debug: false
  log_level: "INFO"

# 运行时指定配置文件
xhs-downloader --config config.yml

# 或通过环境变量配置
export XHS_DOWNLOADER_API_KEY="your-key"
export XHS_DOWNLOADER_OUTPUT_DIR="./output"
📑 README 深度解析 真实文档 完整度 36/100 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

简介

XHS-Downloader

XHS-Downloader

简体中文 | English

Star History Rank GitHub Trending Repository of the Day
GitHub GitHub forks GitHub Repo stars GitHub code size in bytes GitHub release (with filter)
Static Badge Static Badge Docker Pulls GitHub all releases

🔥 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具!


📑 项目功能

项目程序与用户脚本功能清单,快速了解项目能力(点击展开)
    程序功能
  • ✅ 采集小红书作品信息
  • ✅ 提取小红书作品下载地址
  • ✅ 下载小红书作品文件
  • ✅ 下载视频作品封面文件
  • ✅ 下载小红书 livePhoto 文件
  • ✅ 自动跳过已下载的作品文件
  • ✅ 作品文件完整性处理机制
  • ✅ 自定义图文作品文件下载格式
  • ✅ 持久化储存作品信息至文件
  • ✅ 作品文件储存至单独文件夹
  • ✅ 后台监听剪贴板下载作品
  • ✅ 记录已下载作品 ID
  • ✅ 支持命令行下载作品文件
  • ☑️ 从浏览器读取 Cookie
  • ✅ 自定义文件名称格式
  • ✅ 支持 API 调用功能
  • ✅ 支持 MCP 调用功能
  • ✅ 支持文件断点续传下载
  • ✅ 智能识别作品文件类型
  • ✅ 支持设置作者备注
  • ✅ 自动更新作者昵称
    脚本功能
  • ✅ 下载小红书作品文件
  • ✅ 提取推荐页面作品链接
  • ✅ 提取账号发布作品链接
  • ✅ 提取账号收藏作品链接
  • ✅ 提取账号点赞作品链接
  • ✅ 提取账号专辑作品链接
  • ✅ 提取搜索结果作品链接
  • ✅ 提取搜索结果用户链接

📸 程序截图

前往 bilibili 观看演示;前往 YouTube 观看演示

GUI 界面截图


TUI 界面截图(模式命令:python .\main.py TUI)

🔗 支持链接

  • https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX
  • https://www.xiaohongshu.com/discovery/item/作品ID?xsec_token=XXX
  • https://www.xiaohongshu.com/user/profile/作者ID/作品ID?xsec_token=XXX
  • https://xhslink.com/分享码

  • 支持单次输入多个作品链接,链接之间使用空格分隔;程序会自动提取有效链接,无需额外处理!

🥣 使用方法

如果仅需下载作品文件,建议选择 程序运行 或 Docker 运行;如果有其他需求,建议选择 源码运行!

⚠️ Cookie 配置为非强制项;如遇功能异常,建议配置或更新 Cookie 后再次尝试!

⚠️ 未设置 Cookie 时,视频作品只能下载低分辨率文件;建议配置 Cookie 以获取更高画质(无需登录账号)!

🖱 程序运行

⭐ Mac OS、Windows 10 及以上用户可前往 Releases 或者 Actions 下载程序压缩包,解压后打开程序文件夹,双击运行 main 即可使用。

⭐ 本项目包含自动构建可执行文件的 GitHub Actions,使用者可以随时使用 GitHub Actions 将最新源码构建为可执行文件!

⭐ 自动构建可执行文件教程请查阅本文档的 构建可执行文件指南 部分;如果需要更加详细的图文教程,请 查阅文章!

注意:由于 Mac OS 平台的可执行文件 main 未经过代码签名,首次运行时会受到系统安全限制。请先在终端执行 xattr -cr 项目文件夹路径 命令移除安全标记,执行一次后即可正常运行。

若通过此方式使用程序,文件默认下载路径为:.\Volume\Download;配置文件路径为:.\Volume\settings.json

程序更新

方案一:下载并解压文件,将旧版本的 Volume 文件夹复制到新版本的程序根目录。

方案二:下载并解压文件(不要运行程序),复制全部文件,直接覆盖旧版本文件。

⌨️ 源码运行

  1. 安装不低于 3.12 版本的 Python 解释器
  2. 下载最新的源码或 Releases 发布的源码至本地
    1. 使用 pip 安装项目依赖
    2. 运行 python -m venv venv 命令创建虚拟环境(可选)
    3. 运行 .\venv\Scripts\activate.ps1 或者 venv\Scripts\activate 命令激活虚拟环境(可选)
    4. 运行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 命令安装程序所需模块
    5. 运行 python .\main.py 或者 python main.py 命令启动 XHS-Downloader
      使用 uv 安装项目依赖(推荐)
    1. 运行 uv sync --no-dev 命令同步环境依赖
    2. 运行 uv run main.py 命令启动 XHS-Downloader

⌨️ Docker 运行

  1. 获取镜像
    • 方式一:使用 Dockerfile 文件构建镜像
    • 方式二:使用 docker pull joeanamier/xhs-downloader 命令拉取镜像
    • 方式三:使用 docker pull ghcr.io/joeanamier/xhs-downloader 命令拉取镜像
  2. 创建容器
    • TUI 模式:docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:/app/Volume -it <镜像名称>
    • API 模式:docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:/app/Volume -it <镜像名称> python main.py api
    • MCP 模式:docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:/app/Volume -it <镜像名称> python main.py mcp

    • 注意:此处的 <镜像名称> 需与您在第一步中使用的镜像名称保持一致(joeanamier/xhs-downloader 或 ghcr.io/joeanamier/xhs-downloader)
  3. 运行容器
    • 启动容器:docker start -i 容器名称/容器 ID
    • 重启容器:docker restart -i 容器名称/容器 ID

Docker 运行项目时不支持 命令行调用模式,无法使用 读取剪贴板 与 监听剪贴板 功能,可以正常粘贴内容,其他功能如有异常请反馈!

🛠 命令行模式

命令行模式说明,适合习惯命令行操作或需要脚本化调用的用户(点击展开)

项目支持命令行运行模式,可通过命令行参数直接下载作品文件,也可以设置需要下载的图片序号!

注意:未设置 --index 参数时,支持传入多个作品链接,全部链接需要使用引号包围,链接之间使用空格分隔;已设置 --index 参数时,不支持传入多个作品链接,即使传入多个作品链接,程序仅处理首个作品链接!

bool 类型参数支持使用 true、false、1、0、yes、no、on 或 off(不区分大小写)来设置。

从浏览器读取 Cookie

该功能已失效,请参考 获取 Cookie 教程!

可以使用命令行实现 从浏览器读取 Cookie 并写入配置文件!

命令示例:python .\main.py --browser_cookie Chrome --update_settings

兼容性提醒:此功能依赖的第三方模块已长期未更新,可能无法正常支持最新浏览器版本。若功能出现异常,请尝试手动获取 Cookie!



🖥 服务器模式

服务器模式包含 API 模式和 MCP 模式!

API 模式

API 模式说明,适合需要调用接口获取作品数据或下载文件的开发者(点击展开)

启动:运行命令:python .\main.py api

关闭:按下 Ctrl + C 关闭服务器

访问 http://127.0.0.1:5556/docs 或者 http://127.0.0.1:5556/redoc;你会看到自动生成的交互式 API 文档!

请求接口:/xhs/detail

请求方法:POST

请求格式:JSON

请求参数:

参数 类型 含义 默认值
url str 小红书作品链接,自动提取,不支持多链接;必需参数 无
download bool 是否下载作品文件;设置为 true 将会耗费更多时间;可选参数 false
index list[int] 下载指定序号的图片文件,仅对图文作品生效;download 参数设置为 false 时不生效;可选参数 null
cookie str 请求数据时使用的 Cookie;可选参数 配置文件 cookie 参数
proxy str 请求数据时使用的代理;可选参数 配置文件 proxy 参数
check_record bool 是否跳过已有下载记录的作品;可选参数 true

代码示例:

async def example_api():
    """通过 API 设置参数,适合二次开发"""
    server = "http://127.0.0.1:5556/xhs/detail"
    data = {
        "url": "",  # 必需参数
        "download": True,
        "index": [
            3,
            6,
            9,
        ],
        "proxy": "http://127.0.0.1:10808",
    }
    response = post(server, json=data, timeout=10)
    print(response.json())

MCP 模式

MCP 模式说明,适合需要启动 MCP 服务接入 AI 助手等工具的开发者(点击展开)

启动:运行命令:python .\main.py mcp

关闭:按下 Ctrl + C 关闭服务器

MCP 配置示例

[//]: # (<h4>STDIO</h4>) <h4>Streamable HTTP</h4> <p><b>MCP URL:</b><code>http://127.0.0.1:5556/mcp/</code></p> <img src="static/screenshot/MCP配置示例.png" alt="MCP配置示例"> <h3>MCP 调用示例</h3> <h4><strong>获取小红书作品信息</strong></h4> <img src="static/screenshot/MCP获取数据.png" alt="MCP获取数据"> <hr> <h4><strong>下载小红书作品文件</strong></h4> <p>下载图文作品时可以指定需要下载的图片序号;默认不返回作品信息,如需返回作品信息,请在对话时明确表述。</p> <img src="static/screenshot/MCP下载文件1.png" alt="MCP下载文件"> <hr> <img src="static/screenshot/MCP下载文件2.png" alt="MCP下载文件"> </details> <h1>📜 其他说明</h1> <ul> <li>由于作品链接携带日期信息,使用先前日期获取的作品链接可能会被风控,建议下载作品文件时使用最新获取的作品链接</li> <li>如果需要程序使用代理请求数据,请在配置文件 <code>settings.json</code> 设置 <code>proxy</code> 参数</li> <li><del>Windows 系统需要以管理员身份运行程序才能读取 Chromium、Chrome、Edge 浏览器 Cookie</del></li> <li>如果开启保存作品数据至文件功能,作品数据默认储存至 <code>./Volume/Download/ExploreData.db</code> 文件</li> <li>程序下载记录数据储存至 <code>./Volume/ExploreID.db</code> 文件</li> <li>为了避免请求频率过高对平台服务器造成影响,本项目内置请求延时机制</li> </ul> <h1 id="user-scripts">🕹 用户脚本</h1> <p>如果您的浏览器安装了 <a href="https://www.tampermonkey.net/">Tampermonkey</a> 浏览器扩展程序,可以使用用户脚本体验项目功能!</p> <p>用户脚本链接(右键单击复制链接):<a href="https://raw.githubusercontent.com/JoeanAmier/XHS-Downloader/refs/heads/master/static/XHS-Downloader.js">master 分支</a>、<a href="https://raw.githubusercontent.com/JoeanAmier/XHS-Downloader/refs/heads/develop/static/XHS-Downloader.js">develop 分支</a></p> <img src="static/screenshot/脚本安装教程.png" alt=""> <hr> <details> <summary>查看 Tampermonkey 用户脚本截图(点击展开)</summary> <img src="static/screenshot/用户脚本截图1.png" alt=""> <hr> <img src="static/screenshot/用户脚本截图2.png" alt=""> <hr> <img src="static/screenshot/用户脚本截图3.png" alt=""> <hr> <img src="static/screenshot/用户脚本截图4.png" alt=""> </details> <p>提示:使用 XHS-Downloader 用户脚本批量提取作品链接,搭配 XHS-Downloader 程序可以实现批量下载作品文件!</p> <p><b>修改用户脚本语言</b></p> <img src="static/screenshot/脚本切换语言.png" alt="切换语言"> <h2>🌏 连接服务器</h2> <p>⭐ 本项目支持通过浏览器用户脚本与主程序联动,实现一键推送下载任务。</p> <ul><b>功能说明:</b> <li>在项目程序的配置文件中,需要将 <code>script_server</code> 参数设置为 <code>true</code></li> <li>保持项目程序在后台运行,它将作为服务器,接收用户脚本的指令(TUI、MCP 和 API 模式均支持)</li> <li>当您在浏览器中访问作品页面时,点击用户脚本菜单中的 <code>推送下载任务</code> 选项</li> <li>用户脚本会将下载任务发送给项目程序,由项目程序负责处理和下载文件</li> </ul> <h2>📜 脚本说明</h2> <ul> <li>下载小红书作品文件时,脚本需要花费时间处理文件,请等待片刻,请勿多次点击下载按钮</li> <li>提取账号发布、收藏、点赞、专辑作品链接时,脚本可以自动滚动页面直至加载全部作品</li> <li>提取推荐作品链接、搜索作品、用户链接时,脚本可以自动滚动指定次数加载更多内容,默认滚动次数:50 次</li> <li>自动滚动页面功能默认关闭;用户可以自由开启,并修改滚动页面次数,修改后立即生效</li> <li>如果未开启自动滚动页面功能,用户需要手动滚动页面以便加载更多内容后再进行其他操作</li> <li>支持作品文件打包下载;该功能默认开启,多个文件的作品将会以压缩包格式下载</li> <li>向服务器推送下载任务时,文件格式、名称规则等设置以服务器配置文件中的设置为准</li> <li>使用全局代理工具可能会导致脚本下载文件失败,如有异常,请尝试关闭代理工具,必要时向作者反馈</li> <li>XHS-Downloader 用户脚本仅实现可见即可得的数据采集功能,无任何收费功能和破解功能</li> </ul> <p><strong>自动滚动页面功能代码已重构,该功能默认关闭!启用该功能可能会被小红书检测为自动化操作,从而导致账号受到风控或封禁风险!</strong></p> <h1>💻 二次开发</h1> <details> <summary>二次开发代码示例,适合基于项目进行二次开发的开发者(点击展开)</summary> <p>如果有其他需求,可以根据 <code>example.py</code> 的注释提示进行代码调用或修改!</p> <pre> async def example(): """通过代码设置参数,适合二次开发""" # 示例链接 demo_link = "https://www.xiaohongshu.com/explore/XXX?xsec_token=XXX" # 实例对象 work_path = "D:\\" # 作品数据/文件保存根路径,默认值:项目根路径 folder_name = "Download" # 作品文件储存文件夹名称(自动创建),默认值:Download name_format = "作品标题 作品描述" impersonate = "chrome146" # 浏览器模拟目标 cookie = "" # 小红书网页版 Cookie proxy = None # 网络代理 proxy_download = False # 下载文件时,是否使用 proxy 参数的网络代理 timeout = 5 # 请求数据超时限制,单位:秒 chunk = 1024 1024 10 # 下载文件时,每次从服务器获取的数据块大小,单位:字节 max_retry = 2 # 请求数据失败时,重试的最大次数,单位:次 record_data = False # 是否保存作品数据至文件 image_format = "WEBP" # 图文作品文件下载格式,支持:AUTO、PNG、WEBP、JPEG、HEIC folder_mode = False # 是否将每个作品的文件储存至单独的文件夹 image_download = True # 图文、图集作品文件下载开关 video_download = True # 视频作品文件下载开关 video_cover_download = False # 视频作品封面文件下载开关 live_download = False # 图文动图文件下载开关 download_record = True # 是否记录下载成功的作品 ID language = "zh_CN" # 设置程序提示语言 author_archive = True # 是否将每个作者的作品存至单独的文件夹 write_mtime = True # 是否将作品文件的 修改时间 修改为作品的发布时间 note_format = "" # 作品信息保存格式,支持:txt、md、all,为空则不保存 # read_cookie = None # 读取浏览器 Cookie,支持设置浏览器名称(字符串)或者浏览器序号(整数),设置为 None 代表不读取 # async with XHS() as xhs: # pass # 使用默认参数 async with XHS( work_path=work_path, folder_name=folder_name, name_format=name_format, impersonate=impersonate, cookie=cookie, proxy=proxy, proxy_download=proxy_download, timeout=timeout, chunk=chunk, max_retry=max_retry, record_data=record_data, image_format=image_format, folder_mode=folder_mode, image_download=image_download, video_download=video_download, video_cover_download=video_cover_download, live_download=live_download, download_record=download_record, language=language, # read_cookie=read_cookie, author_archive=author_archive, write_mtime=write_mtime, note_format=note_format, ) as xhs: # 使用自定义参数 download = True # 是否下载作品文件,默认值:False # 返回作品详细信息,包括下载地址 # 获取数据失败时返回空字典 print( await xhs.extract( demo_link, download, index=[ 1, 2, 5, ], ) ) </pre> </details> <h1>📋 读取剪贴板</h1> <details> <summary>读取剪贴板平台说明,适合 Windows 以外的用户(Mac / Linux)(点击展开)</summary> <p>项目使用 <code>pyperclip</code> 实现读取剪贴板功能,该模块在不同的系统上会有差异。</p> <p>在 Windows 上,不需要额外的模块。</p> <p>在 Mac 上,该模块使用 pbcopy 和 pbpaste 命令,这些命令应该随操作系统一起提供。</p> <p>在 Linux 上,该模块使用 xclip 或 xsel 命令,这些命令应该随操作系统一起提供。否则,请运行 "sudo apt-get install xclip" 或 "sudo apt-get install xsel"(注意:xsel 似乎并不总是有效)</p> <p>在其他 Linux 系统上,你需要安装 qtpy 或 PyQT5 模块。</p> </details> <h1>⚙️ 配置文件</h1> <details> <summary>配置文件参数说明,适合需要直接修改程序配置参数的用户(点击展开)</summary> <p>项目根目录下的 <code>./Volume/settings.json</code> 文件,首次运行自动生成,可以自定义程序运行参数;如果设置了无效的参数值,程序将会使用参数默认值!</p> <p>如果您在程序界面修改配置时无法正常交互,可以直接编辑配置文件;如果您的计算机没有合适的程序编辑 JSON 文件,建议使用 <a href="https://www.toolhelper.cn/JSON/JSONFormat">在线工具</a> 编辑配置文件内容,修改后需要重启软件才能生效。</p> <table> <thead> <tr> <th align="center">参数</th> <th align="center">类型</th> <th align="center">含义</th> <th align="center">默认值</th> </tr> </thead> <tbody> <tr> <td align="center">mapping_data</td> <td align="center">str: str</td> <td align="center"><sup><a href="#author_archive">#</a></sup>作者别名映射表,格式:<code>作者ID: 作者别名</code></td> <td align="center">无</td> </tr> <tr> <td align="center">work_path</td> <td align="center">str</td> <td align="center">作品数据 / 文件保存根路径</td> <td align="center">项目根路径/Volume</td> </tr> <tr> <td align="center">folder_name</td> <td align="center">str</td> <td align="center">作品文件储存文件夹名称</td> <td align="center">Download</td> </tr> <tr> <td align="center">name_format</td> <td align="center">str</td> <td align="center">作品文件名称格式,字段之间使用空格分隔,支持字段:<code>收藏数量</code>、<code>评论数量</code>、<code>分享数量</code>、<code>点赞数量</code>、<code>作品标签</code>、<code>作品ID</code>、<code>作品标题</code>、<code>作品描述</code>、<code>作品类型</code>、<code>发布时间</code>、<code>最后更新时间</code>、<code>作者昵称</code>、<code>作者ID</code></td> <td align="center"><code>发布时间 作者昵称 作品标题</code></td> </tr> <tr> <td align="center">impersonate</td> <td align="center">str</td> <td align="center">浏览器模拟目标;参考 <a href="https://curl-cffi.readthedocs.io/en/latest/impersonate/targets.html">curl_cffi 文档</a></td> <td align="center">chrome146</td> </tr> <tr> <td align="center">cookie</td> <td align="center">str</td> <td align="center">小红书网页版 Cookie,<b>无需登录,非必需参数!</b></td> <td align="center">无</td> </tr> <tr> <td align="center">proxy</td> <td align="center">str</td> <td align="center">设置程序代理</td> <td align="center">null</td> </tr> <tr> <td align="center">proxy_download</td> <td align="center">bool</td> <td align="center">下载文件时,是否使用 proxy 参数的网络代理</td> <td align="center">false</td> </tr> <tr> <td align="center">timeout</td> <td align="center">int</td> <td align="center">请求数据超时限制,单位:秒</td> <td align="center">10</td> </tr> <tr> <td align="center">chunk</td> <td align="center">int</td> <td align="center">下载文件时,每次从服务器获取的数据块大小,单位:字节</td> <td align="center">2097152(2 MB)</td> </tr> <tr> <td align="center">max_retry</td> <td align="center">int</td> <td align="center">请求数据失败时,重试的最大次数,单位:秒</td> <td align="center">5</td> </tr> <tr> <td align="center">record_data</td> <td align="center">bool</td> <td align="center">是否保存作品数据至 <code>SQLite</code> 数据库(所有作品统一保存)</td> <td align="center">false</td> </tr> <tr> <td align="center">image_format</td> <td align="center">str</td> <td align="center">图文作品文件下载格式,支持:<code>AUTO</code>、<code>PNG</code>、<code>WEBP</code>、<code>JPEG</code>、<code>HEIC</code><br><strong>部分作品没有 <code>HEIC</code> 格式的文件,此时下载的文件可能为 <code>WEBP</code> 格式!</strong><br><strong>设置为 <code>AUTO</code> 时表示动态格式,实际格式取决于服务器响应数据!</strong></td> <td align="center">JPEG</td> </tr> <tr> <td align="center">image_download</td> <td align="center">bool</td> <td align="center">图文、图集作品文件下载开关</td> <td align="center">true</td> </tr> <tr> <td align="center">video_download</td> <td align="center">bool</td> <td align="center">视频作品文件下载开关</td> <td align="center">true</td> </tr> <tr> <td align="center">video_cover_download</td> <td align="center">bool</td> <td align="center">视频作品封面下载开关;封面格式与图文作品文件格式一致</td> <td align="center">false</td> </tr> <tr> <td align="center">live_download</td> <td align="center">bool</td> <td align="center">图文动图文件下载开关</td> <td align="center">false</td> </tr> <tr> <td align="center">video_preference</td> <td align="center">str</td> <td align="center">视频作品文件下载偏好;含义:<code>resolution</code>:分辨率优先;<code>bitrate</code>:码率优先;<code>size</code>:文件大小优先</td> <td align="center">resolution</td> </tr> <tr> <td align="center">folder_mode</td> <td align="center">bool</td> <td align="center">是否将每个作品的文件储存至单独的文件夹;文件夹名称与文件名称保持一致</td> <td align="center">false</td> </tr> <tr> <td align="center">download_record</td> <td align="center">bool</td> <td align="center">是否记录下载成功的作品 ID,如果开启,程序将会自动跳过下载存在记录的作品</td> <td align="center">true</td> </tr> <tr> <td align="center">author_archive</td> <td align="center">bool</td> <td align="center"><sup><a href="#author_archive">#</a></sup>是否将每个作者的作品储存至单独的文件夹;文件夹名称为 <code>作者ID_作者昵称</code></td> <td align="center">false</td> </tr> <tr> <td align="center">write_mtime</td> <td align="center">bool</td> <td align="center">是否将作品文件的 <code>修改时间</code> 属性修改为作品的发布时间</td> <td align="center">false</td> </tr> <tr> <td align="center">language</td> <td align="center">str</td> <td align="center">设置程序语言,目前支持:<code>zh_CN</code>、<code>en_US</code></td> <td align="center">zh_CN</td> </tr> <tr> <td align="center">script_server</td> <td align="center">bool</td> <td align="center">是否开启用户脚本服务器,用于接收浏览器用户脚本的下载任务(TUI、MCP 和 API 模式生效)</td> <td align="center">false</td> </tr> <tr> <td align="center">note_format</td> <td align="center">str</td> <td align="center">作品信息保存格式(每个作品单独保存);含义:<code>txt</code>:纯文本;<code>md</code>:Markdown;<code>all</code>:全部格式;为空则不保存</td> <td align="center">空字符串</td> </tr> </tbody> </table> <hr> <div id="author_archive"> <p>如果 <code>author_archive</code> 参数设置为 <code>true</code>,程序会把每个作者的作品储存至单独的文件夹;当作者的昵称发生变化时,程序会自动更新已下载作品文件名称中的作者昵称部分!</p> <p>除此之外,你还可以通过设置 <code>mapping_data</code> 参数为某个作者设置别名;如果对某个作者设置了别名,程序会使用你设置的作者别名去替代作者昵称!</p> </div> </details> <h1 id="cookie">🌐 Cookie</h1> <ol> <li>打开浏览器(可选无痕模式启动),访问 <code>https://www.xiaohongshu.com/explore</code></li> <li>登录小红书账号(可跳过)</li> <li>按下 <code>F12</code> 打开开发人员工具</li> <li>选择 <code>网络</code> 选项卡</li> <li>勾选 <code>保留日志</code></li> <li>在 <code>过滤</code> 输入框输入 <code>cookie-name:web_session</code></li> <li>选择 <code>Fetch/XHR</code> 筛选器</li> <li>点击小红书页面任意作品</li> <li>在 <code>网络</code> 选项卡选择任意数据包(如果无数据包,重复步骤7)</li> <li>全选复制 Cookie 写入程序或配置文件</li> </ol> <br> <img src="static/screenshot/获取Cookie示意图.png" alt=""> <h1>🗳 下载记录</h1> <p>XHS-Downloader 会将下载过的作品 ID 储存至数据库,当重复下载相同的作品时,XHS-Downloader 会自动跳过该作品的文件下载(即使作品文件不存在),如果想要重新下载作品文件,请先删除数据库中对应的作品 ID,再使用 XHS-Downloader 下载作品文件!</p> <p>该功能默认开启,如果关闭该功能,XHS-Downloader 会检查文件是否存在,若文件存在则跳过下载!</p> <h2>构建可执行文件指南</h2> <details> <summary><b>构建可执行文件指南,适合希望自行构建可执行文件的用户(点击展开)</b></summary>

本指南将引导您通过 Fork 本仓库并执行 GitHub Actions 自动完成基于最新源码的程序构建和打包!

---

使用步骤

Q3: 我可以直接使用主仓库的 Actions 吗?

A: 由于权限限制,您无法直接触发主仓库的 Actions。请通过 Fork 仓库的方式执行打包流程

</details>

Q1: 为什么我无法触发工作流?

A: 请确认您已按照步骤 启用 Actions,否则 GitHub 会禁止运行工作流

Actions 常见问题

🎯 aiskill88 AI 点评 A 级 2026-05-21

活跃度高、功能完整的小红书采集工具。11k+星标体现社区认可度,FastAPI+Docker方案专业。但需关注反爬风险和法律合规性。

📚 实用指南(长尾问题)
适合谁
  • 需要 XHS-Downloader 解决具体问题的开发者与运营人员
最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • Python 依赖冲突:建议用 venv / uv 隔离环境
部署方案
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
XHS-Downloader 中文教程XHS-Downloader 安装报错怎么办XHS-Downloader 与同类工具对比XHS-Downloader 最佳实践XHS-Downloader 适合谁用

⚡ 核心功能

👥 适合谁
  • 需要 XHS-Downloader 解决具体问题的开发者与运营人员
⭐ 最佳实践
  • 先在测试环境跑通最小用例,再接入生产数据
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • Python 依赖冲突:建议用 venv / uv 隔离环境

👥 适合人群

AI 技术爱好者研究人员和学生开发者和工程师技术创业者

🎯 使用场景

  • 本地部署运行,保护数据隐私,满足合规要求
  • 自定义集成到现有系统,扩展技术栈能力
  • 作为开源基础组件进行商业化二次开发

⚖️ 优点与不足

✅ 优点
  • +GitHub 11.1k Star,社区高度认可
  • +GPL-3.0 协议,可免费商用
  • +完全开源免费,无授权费用
  • +本地部署,数据完全自主可控
  • +开发者社区支持,遇问题可查可问
⚠️ 不足
  • −安装和初始配置可能需要一定技术基础
  • −功能完整性通常不如成熟商业产品
  • −技术支持主要依赖开源社区,响应速度不稳定
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

⚠️ GPL 3.0 — 强 Copyleft,衍生作品须开源,含专利保护条款,不可闭源使用。

🔗 相关工具推荐

📚 相关教程推荐
📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合

❓ 常见问题 FAQ

支持账号发布/收藏/点赞作品、搜索结果、用户信息等多维度链接和详细信息提取。
💡 AI Skill Hub 点评

AI Skill Hub 点评:XHS-Downloader MCP工具 的核心功能完整,质量优秀。对于AI 技术爱好者来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。

📚 深入学习 XHS-Downloader MCP工具
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 XHS-Downloader
原始描述 开源MCP工具:小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接;采集小红书作品信息;。⭐11.1k · Python
Topics 小红书爬虫内容采集API工具FastAPI开源
GitHub https://github.com/JoeanAmier/XHS-Downloader
License GPL-3.0
语言 Python
🔗 原始来源
🐙 GitHub 仓库  https://github.com/JoeanAmier/XHS-Downloader 🌐 官方网站  https://discord.com/invite/ZYtmgKud9Y

收录时间:2026-05-13 · 更新时间:2026-05-16 · License:GPL-3.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。

📺 订阅 AI Skill Hub Daily Telegram 频道
每天 8 条精选 AI Skill、MCP、Agent 与自动化工具推送
加入频道 →