XHS-Downloader v2.2 – 小红书图文视频下载工具

简介

XHS-Downloader 是一款免费开源的轻量级小红书链接提取作品采集下载工具,基于 AIOHTTP 模块实现。支持提取账号发布、收藏、点赞作品链接,提取搜索结果作品链接、用户链接,采集小红书作品信息,提取小红书作品下载地址,下载小红书无水印作品文件!

软件截图

演示视频

软件功能

程序功能

  • ✅ 采集小红书作品信息
  • ✅ 提取小红书作品下载地址
  • ✅ 下载小红书无水印作品文件
  • ✅ 下载小红书 livePhoto 文件(非无水印)
  • ✅ 自动跳过已下载的作品文件
  • ✅ 作品文件完整性处理机制
  • ✅ 自定义图文作品文件下载格式
  • ✅ 持久化储存作品信息至文件
  • ✅ 作品文件储存至单独文件夹
  • ✅ 后台监听剪贴板下载作品
  • ✅ 记录已下载作品 ID
  • ✅ 支持命令行下载作品文件
  • ✅ 从浏览器读取 Cookie
  • ✅ 自定义文件名称格式
  • ✅ 支持 API 调用功能
  • ✅ 支持文件断点续传下载

脚本功能

  • ✅ 下载小红书无水印作品文件
  • ✅ 提取发现页面作品链接
  • ✅ 提取账号发布作品链接
  • ✅ 提取账号收藏作品链接
  • ✅ 提取账号点赞作品链接
  • ✅ 提取搜索结果作品链接
  • ✅ 提取搜索结果用户链接

支持的链接格式:

  • https://www.xiaohongshu.com/explore/作品ID
  • https://www.xiaohongshu.com/discovery/item/作品ID
  • https://xhslink.com/分享码

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

使用

推荐使用 Windows 终端 (Windows 11 自带默认终端)运行程序以便获得最佳显示效果!

文件默认下载路径:.\_internal\Download
配置文件路径:
.\_internal\settings.json

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

建议自行设置 cookie 参数,若不设置该参数,程序功能可能无法正常使用!

程序运行

Mac OS(ARM)、Windows 10 及以上用户可下载程序压缩包,解压后打开程序文件夹,双击运行 main 即可使用。

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

Docker 运行

  1. 获取镜像
    • 方式一:使用 Dockerfile 文件构建镜像
    • 方式二:使用 docker pull joeanamier/xhs-downloader 命令拉取镜像
  2. 创建容器
    • TUI 模式:docker run -it joeanamier/xhs-downloader
    • API 模式:docker run -it joeanamier/xhs-downloader python main.py server

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

源码运行

  1. 安装版本号不低于 3.12 的 Python 解释器
  2. 下载本项目最新的源码至本地
  3. 打开终端,切换至项目根路径
  4. 运行 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt 命令安装程序所需模块
  5. 运行 main.py 即可使用

命令行模式

项目支持命令行运行模式,若想要下载图文作品的部分图片,可以使用此模式设置需要下载的图片序号!

可以使用命令行从浏览器读取 Cookie 并写入配置文件!注意需要关闭浏览器才能读取数据!

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

bool 类型参数支持使用 truefalse10yesnoon  off(不区分大小写)来设置。

服务器模式

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

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

请求接口:/xhs/

请求方法:POST

请求格式:JSON

请求参数:

参数 类型 含义 默认值
url str 小红书作品链接,自动提取,不支持多链接
download bool 是否下载作品文件;设置为 true 将会耗费更多时间 false
index list[int] 下载指定序号的图片文件,仅对图文作品生效;download 参数设置为 false 时不生效 null
skip bool 是否跳过存在下载记录的作品;设置为 true 将不会返回存在下载记录的作品数据 false

 

代码示例:

def api_demo():
    server = "http://127.0.0.1:8000/xhs/"
    data = {
        "url": "https://www.xiaohongshu.com/explore/123456789",
        "download": True,
        "index": [
            3,
            6,
            9,
        ],
    }
    response = requests.post(server, json=data)
    print(response.json())

读取剪贴板

项目使用 pyperclip 实现读取剪贴板功能,该模块在不同的系统上会有差异。

在 Windows 上,不需要额外的模块。

在 Mac 上,该模块使用 pbcopy 和 pbpaste 命令,这些命令应该随操作系统一起提供。

在 Linux 上,该模块使用 xclip 或 xsel 命令,这些命令应该随操作系统一起提供。否则,请运行 "sudo apt-get install xclip" 或 "sudo apt-get install xsel"(注意:xsel 似乎并不总是有效)

在其他 Linux 系统上,你需要安装 qtpy 或 PyQT5 模块。

配置文件

项目根目录下的 settings.json 文件,首次运行自动生成,可以自定义部分运行参数。

如果设置了无效的参数值,程序将会使用参数默认值!

参数 类型 含义 默认值
work_path str 作品数据 / 文件保存根路径 项目根路径
folder_name str 作品文件储存文件夹名称 Download
name_format str 作品文件名称格式,字段之间使用空格分隔,支持字段:收藏数量评论数量分享数量点赞数量作品标签作品ID作品标题作品描述作品类型发布时间最后更新时间作者昵称作者ID 发布时间 作者昵称 作品标题
sec_ch_ua str 浏览器请求头 Sec-Ch-Ua 内置 Chrome Sec-Ch-Ua
sec_ch_ua_platform str 浏览器请求头 Sec-Ch-Ua-Platform 内置 Chrome Sec-Ch-Ua-Platform
user_agent str 浏览器 User Agent 内置 Chrome User Agent
cookie str 小红书网页版 Cookie,无需登录
proxy str|dict 设置程序代理 null
timeout int 请求数据超时限制,单位:秒 10
chunk int 下载文件时,每次从服务器获取的数据块大小,单位:字节 2097152(2 MB)
max_retry int 请求数据失败时,重试的最大次数,单位:秒 5
record_data bool 是否保存作品数据至文件,保存格式:SQLite false
image_format str 图文作品文件下载格式,支持:PNGWEBP PNG
image_download bool 图文作品文件下载开关 true
video_download bool 视频作品文件下载开关 true
live_download bool 图文动图文件下载开关 false
folder_mode bool 是否将每个作品的文件储存至单独的文件夹;文件夹名称与文件名称保持一致 false
download_record bool 是否记录下载成功的作品 ID,如果开启,程序将会自动跳过下载存在记录的作品 true
language str 设置程序语言,目前支持:zh_CNen_GB zh_CN

 

其他说明:sec_ch_uasec_ch_ua_platformuser_agent参数获取示例,仅当程序获取数据失败时需要自行设置!

Cookie

  1. 打开浏览器(可选无痕模式启动),访问 https://www.xiaohongshu.com/explore
  2. 登录小红书账号(可跳过)
  3. 按下 F12 打开开发人员工具
  4. 选择 网络 选项卡
  5. 勾选 保留日志
  6.  过滤 输入框输入 cookie-name:web_session
  7. 选择 Fetch/XHR 筛选器
  8. 点击小红书页面任意作品
  9.  网络 选项卡选择任意数据包(如果无数据包,重复步骤7)
  10. 全选复制 Cookie 写入程序或配置文件

下载记录

XHS-Downloader 会将下载过的作品 ID 储存至数据库,当重复下载相同的作品时,XHS-Downloader 会自动跳过该作品的文件下载(即使作品文件不存在),如果想要重新下载作品文件,请先删除数据库中对应的作品 ID,再使用 XHS-Downloader 下载作品文件!

该功能默认开启,如果关闭该功能,XHS-Downloader 会检查文件是否存在,若文件存在则跳过下载!

下载

XHS-Downloader

For Windows/macOS 夸克网盘下载

XHS-Downloader

For Windows/macOS 123云盘下载

XHS-Downloader

For Windows/macOS 城通网盘下载

XHS-Downloader

For Windows/macOS 蓝奏云盘下载

更新记录

V2.2 Beta 更新内容:

  1. 使用 rookiepy 替代 browser-cookie3
  2. 修复 record_data 参数无效的问题
  3. 新增文件名称非法字符处理机制
  4. 新增自动删除空文件夹功能
  5. 优化重定向链接获取逻辑
  6. 引入 aiofiles 库操作文件
  7. 修复 ScannerError 错误
  8. 更新 chunk 参数默认值
  9. 优化作品数据提取逻辑
  10. 优化作品数据返回格式
  11. 优化项目运行信息提示
  12. 新增作品下载记录开关
  13. 新增文件断点续传功能
  14. 默认开启局域网访问
  15. 更新英语翻译

V2.1 更新内容:

  1. 使用 HTTPX 替代 AIOHTTP
  2. 使用 FastAPI 替代 AIOHTTP
  3. 更新 Dockerfile 文件
  4. 优化 Web API 模式
  5. 更新命令行调用模式
  6. 新增请求头参数设置
  7. 更新项目依赖库版本
  8. 其他细节优化
历史记录

V2.0 更新日志:

  1. 修复网络错误导致异常退出的问题
  2. 新增视频/图文作品文件下载开关
  3. 修复检查新版本功能错误的问题
  4. 新增自定义作品文件名称功能
  5. 更新小红书视频文件下载接口
  6. 新增 livePhoto 下载功能
  7. 新增 livePhoto 下载开关
  8. 移除 user_agent 参数
  9. 优化跳过已下载作品功能
  10. 新增 Web API 模式
  11. 优化 TUI 交互界面
  12. 修复其他已知问题
  13. 其他细节优化

V1.9 更新日志:

  1. 新增从浏览器获取 Cookie 功能
  2. 修复下载 PNG 图片失败的问题
  3. 更新无水印图片地址处理逻辑
  4. 新增支持命令行运行模式
  5. 修复删除记录失败的问题
  6. 优化作品数据储存格式
  7. 优化文件下载状态提示
  8. 移除内置延时机制
  9. 修复其他已知问题
  10. 其他细节优化

注意:请删除旧版配置文件并重新生成;作品下载记录与旧版不兼容,如有需要请注意迁移数据!

V1.8 更新日志:

  1. 新增监听剪贴板下载作品功能
  2. 新增图片下载格式设置
  3. 优化作品文件名称格式
  4. 提高作品文件下载效率
  5. 优化程序异常捕获
  6. 优化配置文件参数
  7. 新增作品处理延时
  8. 新增英语语言支持
  9. 移除内置 Cookie
  10. 优化 TUI 交互效果

旧版本升级请删除 settings.json 配置文件,运行程序会重新生成该文件!

V1.7 更新日志:

  1. 优化配置文件的编码方式
  2. 更新无水印视频提取逻辑
  3. 更新无水印图片提取逻辑
  4. 优化无水印图片文件格式
  5. 优化作品文件名称格式
  6. 新增保存作品数据功能
  7. 增加作品归档保存功能
  8. 优化程序代码运行逻辑
  9. 优化 TUI 交互效果
  10. 其他细节优化

V1.6 更新日志:

  1. 移除读取文件下载作品功能
  2. 支持单次输入多个作品链接
  3. 更新无水印图片提取逻辑
  4. 更新无水印视频提取逻辑
  5. 优化批量处理作品功能
  6. 支持更多作品链接格式
  7. 获取数据失败自动重试
  8. 新增读取剪贴板按钮
  9. 优化程序自定义参数
  10. 优化 TUI 交互界面
  11. 移除 cookie 参数
  12. 其他细节优化

V1.5 更新日志:

  1. 更新无水印图片采集逻辑
  2. 新增程序版本提示
  3. 更新内置 Cookie

V1.4 更新日志:

  1. 更新文本用户界面
  2. 优化交互提示

V1.3 更新日志:

  1. 优化图片地址提取逻辑
  2. 优化作品数据提取逻辑
  3. 增加 IP 归属地字段
  4. 优化异常处理

V1.2 更新日志:

  1. 修复无水印图片采集功能
  2. 优化文件系统路径处理
  3. 简化项目代码

V1.1 更新日志:

  1. 增加批量下载作品文件功能
  2. 增加文件完整性处理机制
  3. 优化程序异常处理

V1.0 实现功能

  • 采集小红书图文/视频作品信息
  • 获取小红书图文/视频作品下载地址
  • 下载小红书图文/视频作品文件
  • 自动跳过已存在的作品文件

THE END
分享
二维码
打赏
海报
XHS-Downloader v2.2 – 小红书图文视频下载工具
XHS-Downloader 是一款免费开源的轻量级小红书链接提取作品采集下载工具,基于 AIOHTTP 模块实现。支持提取账号发布、收藏、点赞作品链接,提取搜索结果作品链接、用户链接,采集小红书作品信息,提取小红书作品下载地址,下载小红书无水印作品文件!
<<上一篇
下一篇>>