用XHS-Downloader批量下载与采集小红书作品

发布时间:2026/11/4 7:05:00
用XHS-Downloader批量下载与采集小红书作品

用XHS-Downloader批量下载与采集小红书作品

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

XHS-Downloader 是小红书(RedNote)链接提取与作品采集工具:输入作品链接,可以批量下载作品的图片、视频、封面与 LivePhoto 文件,并把标题、点赞数、发布时间等元数据持久化保存。它适合需要把小红书内容批量归档到本地的用户,也适合想把采集能力接入自己工具的开发者。

📦 项目速览

  • 采集:输入单个或多个作品链接(explore、discovery/item、xhslink 短链等格式),提取作品的下载地址与点赞、评论、分享、标签、发布时间等元数据,图文作品可指定图片序号下载
  • 下载与存储:支持批量下载图片、视频、视频封面、LivePhoto,支持断点续传;默认记录已下载作品 ID 到本地数据库并自动跳过;文件命名字段、图片格式、作者归档均可配置
  • 多形态集成:同一套程序提供 GUI、TUI、命令行、服务器(API / MCP)四种运行形态,可 Docker 部署,另附 Tampermonkey 用户脚本,用于提取链接和推送下载任务

🚀 选一条适合你的路径

用图形界面下载作品

只想下载个别作品的话,下载 Release 可执行包,双击main启动,把链接粘贴到输入框创建任务即可;程序带剪贴板监听,复制作品链接后会自动识别。已下载的作品会自动跳过,重复运行不会重复下载。可执行包默认把文件存到./Volume/Download,配置文件为./Volume/settings.json。

习惯源码运行的话,需要 Python 3.12 及以上,用 uv 安装依赖后启动:

git clone https://gitcode.com/gh_mirrors/xh/XHS-Downloader cd XHS-Downloader && uv sync --no-dev uv run main.py

Docker 用户拉取joeanamier/xhs-downloader镜像,映射 5556 端口与数据卷后即可运行。

用命令行与用户脚本批量处理

需要批量处理大量链接或接入自动化脚本时,用命令行模式:--url支持空格分隔的多个链接,--index指定图文作品要下载的图片序号(设置后只处理第一个链接),--name_format、--folder_name、--cookie、--proxy等参数可直接覆盖配置文件中的值:

python main.py --url "https://www.xiaohongshu.com/explore/作品ID" python main.py --url "链接1 链接2 链接3" --author_archive true

批量采集的另一半是 Tampermonkey 用户脚本:在小红书网页上提取推荐页、账号发布 / 收藏 / 点赞 / 专辑、搜索结果的作品链接,或在作品页直接勾选图片下载;把程序配置里的script_server设为 true 后,脚本还可以把下载任务推送给正在运行的程序,由程序统一批量下载,文件命名以程序端配置为准。

让 API、MCP 或自己的代码调用它

要把采集能力提供给其他程序或 AI 助手,用服务器模式:python main.py api启动 HTTP 服务,文档页在/docs,向POST /xhs/detail提交链接即返回作品数据或触发下载;python main.py mcp启动 MCP 服务(需先安装fastmcp依赖),客户端连接http://127.0.0.1:5556/mcp。两种模式都要在请求头携带鉴权令牌,令牌由python main.py token生成并与Volume/auth_secret.key绑定。

⚙️ 配置要点与常见卡点

  • 如果视频画质不高,检查是否配置了 Cookie:未配置时视频只能下载低清晰度;Cookie 无需登录账号,访问小红书 explore 页面,在网络面板用cookie-name:web_session过滤请求,从请求标头复制完整 Cookie 写入settings.json
  • 如果链接解析失败或被风控,检查链接是否过期:作品链接携带日期信息,旧链接更容易被风控,下载前重新复制最新链接
  • 如果想重新下载某个作品,检查下载记录:已下载的作品 ID 记录在./Volume/ExploreID.db,程序默认跳过有记录的作品,删除对应 ID 或关闭download_record后再下载
  • 如果网络需要代理,检查proxy参数:数据请求使用proxy,文件下载要走代理则再开启proxy_download
  • 如果 Docker 或 macOS 行为与预期不符,检查运行形态差异:Docker 模式不支持命令行参数模式与剪贴板读取 / 监听;macOS 可执行文件首次运行需先执行xattr -cr 项目文件夹路径移除安全标记

🔧 进阶用法与二次开发

核心是source包中的XHS类,配置文件里的所有参数都能在代码里传入,最小调用如下:

from source import XHS async with XHS(author_archive=True, note_format="md") as xhs: print(await xhs.extract("作品链接", download=True))

extract返回包含下载地址的作品详细信息,获取失败时返回空字典。record_data开启后会把作品数据写入本地 SQLite 数据库,note_format可以按作品保存 txt 或 md 格式的信息文件;author_archive将每个作者的作品存进作者ID_作者昵称命名的文件夹,昵称变化时自动更新,还可用mapping_data给作者设别名替代昵称。

⚠️ 使用边界与注意事项

  • 仅下载个人使用或已授权的内容,尊重原作者版权
  • 程序内置请求延时(avg_delay默认 6 秒),不要自行调高请求频率;用户脚本的自动滚动功能默认关闭,开启后有被平台判定为自动化操作的风控风险
  • 项目遵循 GPL-3.0 协议,二次开发或再分发需遵守许可证条款
  • 鉴权令牌与 Cookie 均在本地存储,注意不要对外公开auth_secret.key与 API 令牌

XHS-Downloader 覆盖了从链接解析到文件归档的完整流程,上手可以在项目目录运行uv run main.py,参数说明以项目 README 为准。

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

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