[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-9985":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":46,"readmeContent":47,"aiSummary":48,"trendingCount":16,"starSnapshotCount":16,"syncStatus":49,"lastSyncTime":50,"discoverSource":51},9985,"XHS-Downloader","JoeanAmier\u002FXHS-Downloader","JoeanAmier","小红书（XiaoHongShu、RedNote）链接提取\u002F作品采集工具：提取账号发布、收藏、点赞、专辑作品链接；提取搜索结果作品、用户链接；采集小红书作品信息；提取小红书作品下载地址；下载小红书作品文件","https:\u002F\u002Fdiscord.com\u002Finvite\u002FZYtmgKud9Y",null,"Python",11519,1726,41,29,0,16,101,390,84,44.71,"GNU General Public License v3.0",false,"master",[26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"api","docker","download","fastapi","httpx","javascript","json","linux","macos","mcp-server","pyinstaller","python","rednote","server","sqlite","tampermonkey","textual","userscript","windows","xiaohongshu","2026-06-12 02:02:15","\u003Cdiv align=\"center\">\n\u003Cimg src=\"static\u002FXHS-Downloader.png\" alt=\"XHS-Downloader\" height=\"256\" width=\"256\">\u003Cbr>\n\u003Ch1>XHS-Downloader\u003C\u002Fh1>\n\u003Cp>简体中文 | \u003Ca href=\"README_EN.md\">English\u003C\u002Fa>\u003C\u002Fp>\n\u003Ca href=\"https:\u002F\u002Ftrendshift.io\u002Frepositories\u002F5435\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Ftrendshift.io\u002Fapi\u002Fbadge\u002Frepositories\u002F5435\" alt=\"JoeanAmier%2FXHS-Downloader | Trendshift\" style=\"width: 250px; height: 55px;\" width=\"250\" height=\"55\"\u002F>\u003C\u002Fa>\n\u003Cbr>\n\u003Cimg alt=\"GitHub\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FJoeanAmier\u002FXHS-Downloader?style=flat-square\">\n\u003Cimg alt=\"GitHub forks\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002FJoeanAmier\u002FXHS-Downloader?style=flat-square&color=55efc4\">\n\u003Cimg alt=\"GitHub Repo stars\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FJoeanAmier\u002FXHS-Downloader?style=flat-square&color=fda7df\">\n\u003Cimg alt=\"GitHub code size in bytes\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flanguages\u002Fcode-size\u002FJoeanAmier\u002FXHS-Downloader?style=flat-square&color=a29bfe\">\n\u003Cimg alt=\"GitHub release (with filter)\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FJoeanAmier\u002FXHS-Downloader?style=flat-square&color=48dbfb\">\n\u003Cbr>\n\u003Cimg alt=\"Static Badge\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPython-3.12-b8e994?style=flat-square&logo=python&labelColor=3dc1d3\">\n\u003Cimg alt=\"Static Badge\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FUserScript-ffec3d?style=flat-square&logo=tampermonkey&logoColor=%2300485B\">\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FSourcery-enabled-884898?style=flat-square&color=1890ff\" alt=\"\">\n\u003Cimg alt=\"Static Badge\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocker-badc58?style=flat-square&logo=docker\">\n\u003Cimg alt=\"GitHub all releases\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002FJoeanAmier\u002FXHS-Downloader\u002Ftotal?style=flat-square&color=ffdd59\">\n\u003C\u002Fdiv>\n\u003Cbr>\n\u003Cp>🔥 \u003Cb>小红书链接提取\u002F作品采集工具\u003C\u002Fb>：提取账号发布、收藏、点赞、专辑作品链接；提取搜索结果作品链接、用户链接；采集小红书作品信息；提取小红书作品下载地址；下载小红书作品文件！\u003C\u002Fp>\n\u003Cp>🔥 “小红书”、“XiaoHongShu”、“RedNote” 含义相同，本项目统称为 “小红书”\u003C\u002Fp>\n\u003Ch1>📑 项目功能\u003C\u002Fh1>\n\u003Cdetails>\n\u003Csummary>项目程序与用户脚本功能清单（点击展开）\u003C\u002Fsummary>\n\u003Cul>\u003Cb>程序功能\u003C\u002Fb>\n\u003Cli>✅ 采集小红书作品信息\u003C\u002Fli>\n\u003Cli>✅ 提取小红书作品下载地址\u003C\u002Fli>\n\u003Cli>✅ 下载小红书作品文件\u003C\u002Fli>\n\u003Cli>✅ 下载小红书 livePhoto 文件\u003C\u002Fli>\n\u003Cli>✅ 自动跳过已下载的作品文件\u003C\u002Fli>\n\u003Cli>✅ 作品文件完整性处理机制\u003C\u002Fli>\n\u003Cli>✅ 自定义图文作品文件下载格式\u003C\u002Fli>\n\u003Cli>✅ 持久化储存作品信息至文件\u003C\u002Fli>\n\u003Cli>✅ 作品文件储存至单独文件夹\u003C\u002Fli>\n\u003Cli>✅ 后台监听剪贴板下载作品\u003C\u002Fli>\n\u003Cli>✅ 记录已下载作品 ID\u003C\u002Fli>\n\u003Cli>✅ 支持命令行下载作品文件\u003C\u002Fli>\n\u003Cli>☑️ 从浏览器读取 Cookie\u003C\u002Fli> \n\u003Cli>✅ 自定义文件名称格式\u003C\u002Fli> \n\u003Cli>✅ 支持 API 调用功能\u003C\u002Fli>\n\u003Cli>✅ 支持 MCP 调用功能\u003C\u002Fli>\n\u003Cli>✅ 支持文件断点续传下载\u003C\u002Fli>\n\u003Cli>✅ 智能识别作品文件类型\u003C\u002Fli>\n\u003Cli>✅ 支持设置作者备注\u003C\u002Fli>\n\u003Cli>✅ 自动更新作者昵称\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cul>\u003Ca href=\"#user-scripts\">\u003Cb>脚本功能\u003C\u002Fb>\u003C\u002Fa>\n\u003Cli>✅ 下载小红书作品文件\u003C\u002Fli>\n\u003Cli>✅ 提取推荐页面作品链接\u003C\u002Fli>\n\u003Cli>✅ 提取账号发布作品链接\u003C\u002Fli>\n\u003Cli>✅ 提取账号收藏作品链接\u003C\u002Fli>\n\u003Cli>✅ 提取账号点赞作品链接\u003C\u002Fli>\n\u003Cli>✅ 提取账号专辑作品链接\u003C\u002Fli>\n\u003Cli>✅ 提取搜索结果作品链接\u003C\u002Fli>\n\u003Cli>✅ 提取搜索结果用户链接\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fdetails>\n\u003Ch1>📸 程序截图\u003C\u002Fh1>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.bilibili.com\u002Fvideo\u002FBV1Fcb3zWEjt\u002F\">前往 bilibili 观看演示\u003C\u002Fa>；\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002FVIjDytHaopg\">前往 YouTube 观看演示\u003C\u002Fa>\u003C\u002Fp>\n\u003Cimg src=\"static\u002Fscreenshot\u002F程序运行截图CN1.png\" alt=\"\">\n\u003Chr>\n\u003Cimg src=\"static\u002Fscreenshot\u002F程序运行截图CN2.png\" alt=\"\">\n\u003Chr>\n\u003Cimg src=\"static\u002Fscreenshot\u002F程序运行截图CN3.png\" alt=\"\">\n\u003Ch1>🔗 支持链接\u003C\u002Fh1>\n\u003Cul>\n\u003Cli>\u003Ccode>https:\u002F\u002Fwww.xiaohongshu.com\u002Fexplore\u002F作品ID?xsec_token=XXX\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>https:\u002F\u002Fwww.xiaohongshu.com\u002Fdiscovery\u002Fitem\u002F作品ID?xsec_token=XXX\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>https:\u002F\u002Fwww.xiaohongshu.com\u002Fuser\u002Fprofile\u002F作者ID\u002F作品ID?xsec_token=XXX\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>https:\u002F\u002Fxhslink.com\u002F分享码\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cbr\u002F>\n\u003Cp>\u003Cb>支持单次输入多个作品链接，链接之间使用空格分隔；程序会自动提取有效链接，无需额外处理！\u003C\u002Fb>\u003C\u002Fp>\n\u003C\u002Ful>\n\u003Ch1>🪟 关于终端\u003C\u002Fh1>\n\u003Cp>⭐ 推荐使用 \u003Ca href=\"https:\u002F\u002Flearn.microsoft.com\u002Fzh-cn\u002Fwindows\u002Fterminal\u002Finstall\">Windows 终端\u003C\u002Fa> （Windows 11 默认终端）运行程序以便获得最佳显示效果！\u003C\u002Fp>\n\u003Ch1>🥣 使用方法\u003C\u002Fh1>\n\u003Cp>如果仅需下载作品文件，建议选择 \u003Cb>程序运行\u003C\u002Fb> 或 \u003Cb>Docker 运行\u003C\u002Fb>；如果有其他需求，建议选择 \u003Cb>源码运行\u003C\u002Fb>！\u003C\u002Fp>\n\u003Cp>⚠️ Cookie 配置为非强制项；如遇功能异常，建议配置或更新 Cookie 后再次尝试！\u003C\u002Fp>\n\u003Cp>⚠️ 未设置 Cookie 时，视频作品只能下载低分辨率文件；建议配置 Cookie 以获取更高画质（无需登录账号）！\u003C\u002Fp>\n\u003Ch2>🖱 程序运行\u003C\u002Fh2>\n\u003Cp>⭐ Mac OS、Windows 10 及以上用户可前往 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FXHS-Downloader\u002Freleases\u002Flatest\">Releases\u003C\u002Fa> 或者 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FXHS-Downloader\u002Factions\">Actions\u003C\u002Fa> 下载程序压缩包，解压后打开程序文件夹，双击运行 \u003Ccode>main\u003C\u002Fcode> 即可使用。\u003C\u002Fp>\n\u003Cp>⭐ 本项目包含自动构建可执行文件的 GitHub Actions，使用者可以随时使用 GitHub Actions 将最新源码构建为可执行文件！\u003C\u002Fp>\n\u003Cp>⭐ 自动构建可执行文件教程请查阅本文档的 \u003Ccode>构建可执行文件指南\u003C\u002Fcode> 部分；如果需要更加详细的图文教程，请 \u003Ca href=\"https:\u002F\u002Fmp.weixin.qq.com\u002Fs\u002FTorfoZKkf4-x8IBNLImNuw\">查阅文章\u003C\u002Fa>！\u003C\u002Fp>\n\u003Cp>\u003Cstrong>注意：由于 Mac OS 平台的可执行文件 \u003Ccode>main\u003C\u002Fcode> 未经过代码签名，首次运行时会受到系统安全限制。请先在终端执行 \u003Ccode>xattr -cr 项目文件夹路径\u003C\u002Fcode> 命令移除安全标记，执行一次后即可正常运行。\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>若通过此方式使用程序，文件默认下载路径为：\u003Ccode>.\\_internal\\Volume\\Download\u003C\u002Fcode>；配置文件路径为：\u003Ccode>.\\_internal\\Volume\\settings.json\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>程序更新\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>方案一：\u003C\u002Fstrong>下载并解压文件，将旧版本的 \u003Ccode>_internal\\Volume\u003C\u002Fcode> 文件夹复制到新版本的 \u003Ccode>_internal\u003C\u002Fcode> 文件夹。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>方案二：\u003C\u002Fstrong>下载并解压文件（不要运行程序），复制全部文件，直接覆盖旧版本文件。\u003C\u002Fp>\n\u003Ch2>⌨️ 源码运行\u003C\u002Fh2>\n\u003Col>\n\u003Cli>安装 \u003Ccode>≥3.12\u003C\u002Fcode> 版本的 \u003Ca href=\"https:\u002F\u002Fwww.python.org\u002F\">Python\u003C\u002Fa> 解释器\u003C\u002Fli>\n\u003Cli>下载最新的源码或 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FXHS-Downloader\u002Freleases\u002Flatest\">Releases\u003C\u002Fa> 发布的源码至本地\u003C\u002Fli>\n\u003Col>\u003Cb>使用 pip 安装项目依赖\u003C\u002Fb>\n\u003Cli>运行 \u003Ccode>python -m venv venv\u003C\u002Fcode> 命令创建虚拟环境（可选）\u003C\u002Fli>\n\u003Cli>运行 \u003Ccode>.\\venv\\Scripts\\activate.ps1\u003C\u002Fcode> 或者 \u003Ccode>venv\\Scripts\\activate\u003C\u002Fcode> 命令激活虚拟环境（可选）\u003C\u002Fli>\n\u003Cli>运行 \u003Ccode>pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple -r requirements.txt\u003C\u002Fcode> 命令安装程序所需模块\u003C\u002Fli>\n\u003Cli>运行 \u003Ccode>python .\\main.py\u003C\u002Fcode> 或者 \u003Ccode>python main.py\u003C\u002Fcode> 命令启动 XHS-Downloader\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Col>\u003Cb>使用 uv 安装项目依赖（推荐）\u003C\u002Fb>\n\u003Cli>运行 \u003Ccode>uv sync --no-dev\u003C\u002Fcode> 命令同步环境依赖\u003C\u002Fli>\n\u003Cli>运行 \u003Ccode>uv run main.py\u003C\u002Fcode> 命令启动 XHS-Downloader\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fol>\n\u003Ch2>⌨️ Docker 运行\u003C\u002Fh2>\n\u003Col>\n\u003Cli>获取镜像\u003C\u002Fli>\n\u003Cul>\n\u003Cli>方式一：使用 \u003Ccode>Dockerfile\u003C\u002Fcode> 文件构建镜像\u003C\u002Fli>\n\u003Cli>方式二：使用 \u003Ccode>docker pull joeanamier\u002Fxhs-downloader\u003C\u002Fcode> 命令拉取镜像\u003C\u002Fli>\n\u003Cli>方式三：使用 \u003Ccode>docker pull ghcr.io\u002Fjoeanamier\u002Fxhs-downloader\u003C\u002Fcode> 命令拉取镜像\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cli>创建容器\u003C\u002Fli>\n\u003Cul>\n\u003Cli>TUI 模式：\u003Ccode>docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:\u002Fapp\u002FVolume -it &lt;镜像名称&gt;\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>API 模式：\u003Ccode>docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:\u002Fapp\u002FVolume -it &lt;镜像名称&gt; python main.py api\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>MCP 模式：\u003Ccode>docker run --name 容器名称(可选) -p 主机端口号:5556 -v xhs_downloader_volume:\u002Fapp\u002FVolume -it &lt;镜像名称&gt; python main.py mcp\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cbr>\u003Cb>注意：\u003C\u002Fb>此处的 \u003Ccode>&lt;镜像名称&gt;\u003C\u002Fcode> 需与您在第一步中使用的镜像名称保持一致（\u003Ccode>joeanamier\u002Fxhs-downloader\u003C\u002Fcode> 或 \u003Ccode>ghcr.io\u002Fjoeanamier\u002Fxhs-downloader\u003C\u002Fcode>）\n\u003C\u002Ful>\n\u003Cli>运行容器\n\u003Cul>\n\u003Cli>启动容器：\u003Ccode>docker start -i 容器名称\u002F容器 ID\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>重启容器：\u003Ccode>docker restart -i 容器名称\u002F容器 ID\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Docker 运行项目时不支持 \u003Cb>命令行调用模式\u003C\u002Fb>，无法使用 \u003Cb>读取剪贴板\u003C\u002Fb> 与 \u003Cb>监听剪贴板\u003C\u002Fb> 功能，可以正常粘贴内容，其他功能如有异常请反馈！\u003C\u002Fp>\n\u003Ch1>🛠 命令行模式\u003C\u002Fh1>\n\u003Cp>项目支持命令行运行模式，若想要下载图文作品的部分图片，可以使用此模式设置需要下载的图片序号！\u003C\u002Fp>\n\u003Cp>\u003Cstrong>注意：\u003C\u002Fstrong>未设置 \u003Ccode>--index\u003C\u002Fcode> 参数时，支持传入多个作品链接，全部链接需要使用引号包围，链接之间使用空格分隔；已设置 \u003Ccode>--index\u003C\u002Fcode> 参数时，不支持传入多个作品链接，即使传入多个作品链接，程序仅处理首个作品链接！\u003C\u002Fp>\n\u003Cp>\u003Ccode>bool\u003C\u002Fcode> 类型参数支持使用 \u003Ccode>true\u003C\u002Fcode>、\u003Ccode>false\u003C\u002Fcode>、\u003Ccode>1\u003C\u002Fcode>、\u003Ccode>0\u003C\u002Fcode>、\u003Ccode>yes\u003C\u002Fcode>、\u003Ccode>no\u003C\u002Fcode>、\u003Ccode>on\u003C\u002Fcode> 或 \u003Ccode>off\u003C\u002Fcode>（不区分大小写）来设置。\u003C\u002Fp>\n\u003Ch2>从浏览器读取 Cookie\u003C\u002Fh2>\n\u003Cp>该功能已失效，请参考 \u003Ca href=\"#cookie\">获取 Cookie\u003C\u002Fa> 教程！\u003C\u002Fp>\n\u003Cp>\u003Cdel>可以使用命令行实现 \u003Cb>从浏览器读取 Cookie 并写入配置文件！\u003C\u002Fb>\u003C\u002Fdel>\u003C\u002Fp>\n\u003Cp>\u003Cdel>命令示例：\u003Ccode>python .\\main.py --browser_cookie Chrome --update_settings\u003C\u002Fcode>\u003C\u002Fdel>\u003C\u002Fp>\n\u003Cp>\u003Cdel>兼容性提醒：此功能依赖的第三方模块已长期未更新，可能无法正常支持最新浏览器版本。若功能出现异常，请尝试手动获取 Cookie！\u003C\u002Fdel>\u003C\u002Fp>\n\u003Chr>\n\u003Cimg src=\"static\u002Fscreenshot\u002F命令行模式截图CN1.png\" alt=\"\">\n\u003Chr>\n\u003Cimg src=\"static\u002Fscreenshot\u002F命令行模式截图CN2.png\" alt=\"\">\n\u003Ch1>🖥 服务器模式\u003C\u002Fh1>\n\u003Cp>服务器模式包含 API 模式和 MCP 模式！\u003C\u002Fp>\n\u003Ch2>API 模式\u003C\u002Fh2>\n\u003Cp>\u003Cb>启动：\u003C\u002Fb>运行命令：\u003Ccode>python .\\main.py api\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cb>关闭：\u003C\u002Fb>按下 \u003Ccode>Ctrl\u003C\u002Fcode> + \u003Ccode>C\u003C\u002Fcode> 关闭服务器\u003C\u002Fp>\n\u003Cp>访问 \u003Ccode>http:\u002F\u002F127.0.0.1:5556\u002Fdocs\u003C\u002Fcode> 或者 \u003Ccode>http:\u002F\u002F127.0.0.1:5556\u002Fredoc\u003C\u002Fcode>；你会看到自动生成的交互式 API 文档！\u003C\u002Fp>\n\u003Cp>\u003Cb>请求接口：\u003C\u002Fb>\u003Ccode>\u002Fxhs\u002Fdetail\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cb>请求方法：\u003C\u002Fb>\u003Ccode>POST\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cb>请求格式：\u003C\u002Fb>\u003Ccode>JSON\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cb>请求参数：\u003C\u002Fb>\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth align=\"center\">参数\u003C\u002Fth>\n\u003Cth align=\"center\">类型\u003C\u002Fth>\n\u003Cth align=\"center\">含义\u003C\u002Fth>\n\u003Cth align=\"center\">默认值\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd align=\"center\">url\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">小红书作品链接，自动提取，不支持多链接；必需参数\u003C\u002Ftd>\n\u003Ctd align=\"center\">无\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">download\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">是否下载作品文件；设置为 \u003Ccode>true\u003C\u002Fcode> 将会耗费更多时间；可选参数\u003C\u002Ftd>\n\u003Ctd align=\"center\">false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">index\u003C\u002Ftd>\n\u003Ctd align=\"center\">list[int]\u003C\u002Ftd>\n\u003Ctd align=\"center\">下载指定序号的图片文件，仅对图文作品生效；\u003Ccode>download\u003C\u002Fcode> 参数设置为 \u003Ccode>false\u003C\u002Fcode> 时不生效；可选参数\u003C\u002Ftd>\n\u003Ctd align=\"center\">null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">cookie\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">请求数据时使用的 Cookie；可选参数\u003C\u002Ftd>\n\u003Ctd align=\"center\">配置文件 cookie 参数\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">proxy\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">请求数据时使用的代理；可选参数\u003C\u002Ftd>\n\u003Ctd align=\"center\">配置文件 proxy 参数\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">skip\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">是否跳过存在下载记录的作品；设置为 \u003Ccode>true\u003C\u002Fcode> 将不会返回存在下载记录的作品数据；可选参数\u003C\u002Ftd>\n\u003Ctd align=\"center\">false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>\u003Cb>代码示例：\u003C\u002Fb>\u003C\u002Fp>\n\u003Cpre>\nasync def example_api():\n    \"\"\"通过 API 设置参数，适合二次开发\"\"\"\n    server = \"http:\u002F\u002F127.0.0.1:5556\u002Fxhs\u002Fdetail\"\n    data = {\n        \"url\": \"\",  # 必需参数\n        \"download\": True,\n        \"index\": [\n            3,\n            6,\n            9,\n        ],\n        \"proxy\": \"http:\u002F\u002F127.0.0.1:10808\",\n    }\n    response = post(server, json=data, timeout=10)\n    print(response.json())\n\u003C\u002Fpre>\n\u003Ch2>MCP 模式\u003C\u002Fh2>\n\u003Cp>\u003Cb>启动：\u003C\u002Fb>运行命令：\u003Ccode>python .\\main.py mcp\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>\u003Cb>关闭：\u003C\u002Fb>按下 \u003Ccode>Ctrl\u003C\u002Fcode> + \u003Ccode>C\u003C\u002Fcode> 关闭服务器\u003C\u002Fp>\n\u003Ch3>MCP 配置示例\u003C\u002Fh3>\n\n[\u002F\u002F]: # (\u003Ch4>STDIO\u003C\u002Fh4>)\n\u003Ch4>Streamable HTTP\u003C\u002Fh4>\n\u003Cp>\u003Cb>MCP URL：\u003C\u002Fb>\u003Ccode>http:\u002F\u002F127.0.0.1:5556\u002Fmcp\u002F\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cimg src=\"static\u002Fscreenshot\u002FMCP配置示例.png\" alt=\"MCP配置示例\">\n\u003Ch3>MCP 调用示例\u003C\u002Fh3>\n\u003Cdetails>\n\u003Csummary>MCP 功能及调用示例（点击展开）\u003C\u002Fsummary>\n\u003Ch4>\u003Cstrong>获取小红书作品信息\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cimg src=\"static\u002Fscreenshot\u002FMCP获取数据.png\" alt=\"MCP获取数据\">\n\u003Chr>\n\u003Ch4>\u003Cstrong>下载小红书作品文件\u003C\u002Fstrong>\u003C\u002Fh4>\n\u003Cp>下载图文作品时可以指定需要下载的图片序号；默认不返回作品信息，如需返回作品信息，请在对话时明确表述。\u003C\u002Fp>\n\u003Cimg src=\"static\u002Fscreenshot\u002FMCP下载文件1.png\" alt=\"MCP下载文件\">\n\u003Chr>\n\u003Cimg src=\"static\u002Fscreenshot\u002FMCP下载文件2.png\" alt=\"MCP下载文件\">\n\u003C\u002Fdetails>\n\u003Ch1>📜 其他说明\u003C\u002Fh1>\n\u003Cul>\n\u003Cli>由于作品链接携带日期信息，使用先前日期获取的作品链接可能会被风控，建议下载作品文件时使用最新获取的作品链接\u003C\u002Fli>\n\u003Cli>\u003Cdel>Windows 系统需要以管理员身份运行程序才能读取 Chromium、Chrome、Edge 浏览器 Cookie\u003C\u002Fdel>\u003C\u002Fli>\n\u003Cli>如果开启保存作品数据至文件功能，作品数据默认储存至 \u003Ccode>.\u002FVolume\u002FDownload\u002FExploreData.db\u003C\u002Fcode> 文件\u003C\u002Fli>\n\u003Cli>程序下载记录数据储存至 \u003Ccode>.\u002FVolume\u002FExploreID.db\u003C\u002Fcode> 文件\u003C\u002Fli>\n\u003Cli>为了避免请求频率过高对平台服务器造成影响，本项目内置请求延时机制\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch1 id=\"user-scripts\">🕹 用户脚本\u003C\u002Fh1>\n\u003Cp>如果您的浏览器安装了 \u003Ca href=\"https:\u002F\u002Fwww.tampermonkey.net\u002F\">Tampermonkey\u003C\u002Fa> 浏览器扩展程序，可以使用用户脚本体验项目功能！\u003C\u002Fp>\n\u003Cp>用户脚本链接（右键单击复制链接）：\u003Ca href=\"https:\u002F\u002Fraw.githubusercontent.com\u002FJoeanAmier\u002FXHS-Downloader\u002Frefs\u002Fheads\u002Fmaster\u002Fstatic\u002FXHS-Downloader.js\">master 分支\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fraw.githubusercontent.com\u002FJoeanAmier\u002FXHS-Downloader\u002Frefs\u002Fheads\u002Fdevelop\u002Fstatic\u002FXHS-Downloader.js\">develop 分支\u003C\u002Fa>\u003C\u002Fp>\n\u003Cimg src=\"static\u002Fscreenshot\u002F脚本安装教程.png\" alt=\"\">\n\u003Chr>\n\u003Cdetails>\n\u003Csummary>查看 Tampermonkey 用户脚本截图（点击展开）\u003C\u002Fsummary>\n\u003Cimg src=\"static\u002Fscreenshot\u002F用户脚本截图1.png\" alt=\"\">\n\u003Chr>\n\u003Cimg src=\"static\u002Fscreenshot\u002F用户脚本截图2.png\" alt=\"\">\n\u003Chr>\n\u003Cimg src=\"static\u002Fscreenshot\u002F用户脚本截图3.png\" alt=\"\">\n\u003Chr>\n\u003Cimg src=\"static\u002Fscreenshot\u002F用户脚本截图4.png\" alt=\"\">\n\u003C\u002Fdetails>\n\u003Cp>提示：使用 XHS-Downloader 用户脚本批量提取作品链接，搭配 XHS-Downloader 程序可以实现批量下载作品文件！\u003C\u002Fp>\n\u003Cp>\u003Cb>修改用户脚本语言\u003C\u002Fb>\u003C\u002Fp>\n\u003Cimg src=\"static\u002Fscreenshot\u002F脚本切换语言.png\" alt=\"切换语言\">\n\u003Ch2>🌏 连接服务器\u003C\u002Fh2>\n\u003Cp>⭐ 本项目支持通过浏览器用户脚本与主程序联动，实现一键推送下载任务。\u003C\u002Fp>\n\u003Cul>\u003Cb>功能说明：\u003C\u002Fb>\n\u003Cli>在项目程序的配置文件中，需要将 \u003Ccode>script_server\u003C\u002Fcode> 参数设置为 \u003Ccode>true\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>保持项目程序在后台运行，它将作为服务器，接收用户脚本的指令（TUI、MCP 和 API 模式均支持）\u003C\u002Fli>\n\u003Cli>当您在浏览器中访问作品页面时，点击用户脚本菜单中的 \u003Ccode>推送下载任务\u003C\u002Fcode> 选项\u003C\u002Fli>\n\u003Cli>用户脚本会将下载任务发送给项目程序，由项目程序负责处理和下载文件\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>📜 脚本说明\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>下载小红书作品文件时，脚本需要花费时间处理文件，请等待片刻，请勿多次点击下载按钮\u003C\u002Fli>\n\u003Cli>提取账号发布、收藏、点赞、专辑作品链接时，脚本可以自动滚动页面直至加载全部作品\u003C\u002Fli>\n\u003Cli>提取推荐作品链接、搜索作品、用户链接时，脚本可以自动滚动指定次数加载更多内容，默认滚动次数：50 次\u003C\u002Fli>\n\u003Cli>自动滚动页面功能默认关闭；用户可以自由开启，并修改滚动页面次数，修改后立即生效\u003C\u002Fli>\n\u003Cli>如果未开启自动滚动页面功能，用户需要手动滚动页面以便加载更多内容后再进行其他操作\u003C\u002Fli>\n\u003Cli>支持作品文件打包下载；该功能默认开启，多个文件的作品将会以压缩包格式下载\u003C\u002Fli>\n\u003Cli>向服务器推送下载任务时，文件格式、名称规则等设置以服务器配置文件中的设置为准\u003C\u002Fli>\n\u003Cli>使用全局代理工具可能会导致脚本下载文件失败，如有异常，请尝试关闭代理工具，必要时向作者反馈\u003C\u002Fli>\n\u003Cli>XHS-Downloader 用户脚本仅实现可见即可得的数据采集功能，无任何收费功能和破解功能\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>自动滚动页面功能代码已重构，该功能默认关闭！启用该功能可能会被小红书检测为自动化操作，从而导致账号受到风控或封禁风险！\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch1>💻 二次开发\u003C\u002Fh1>\n\u003Cp>如果有其他需求，可以根据 \u003Ccode>example.py\u003C\u002Fcode> 的注释提示进行代码调用或修改！\u003C\u002Fp>\n\u003Cpre>\nasync def example():\n    \"\"\"通过代码设置参数，适合二次开发\"\"\"\n    # 示例链接\n    demo_link = \"https:\u002F\u002Fwww.xiaohongshu.com\u002Fexplore\u002FXXX?xsec_token=XXX\"\n    # 实例对象\n    work_path = \"D:\\\\\"  # 作品数据\u002F文件保存根路径，默认值：项目根路径\n    folder_name = \"Download\"  # 作品文件储存文件夹名称（自动创建），默认值：Download\n    name_format = \"作品标题 作品描述\"\n    user_agent = \"\"  # User-Agent\n    cookie = \"\"  # 小红书网页版 Cookie，无需登录，可选参数，登录状态对数据采集有影响\n    proxy = None  # 网络代理\n    timeout = 5  # 请求数据超时限制，单位：秒，默认值：10\n    chunk = 1024 * 1024 * 10  # 下载文件时，每次从服务器获取的数据块大小，单位：字节\n    max_retry = 2  # 请求数据失败时，重试的最大次数，单位：秒，默认值：5\n    record_data = False  # 是否保存作品数据至文件\n    image_format = \"WEBP\"  # 图文作品文件下载格式，支持：AUTO、PNG、WEBP、JPEG、HEIC\n    folder_mode = False  # 是否将每个作品的文件储存至单独的文件夹\n    image_download = True  # 图文、图集作品文件下载开关\n    video_download = True  # 视频作品文件下载开关\n    live_download = False  # 图文动图文件下载开关\n    download_record = True  # 是否记录下载成功的作品 ID\n    language = \"zh_CN\"  # 设置程序提示语言\n    author_archive = True  # 是否将每个作者的作品存至单独的文件夹\n    write_mtime = True  # 是否将作品文件的 修改时间 修改为作品的发布时间\n    # read_cookie = None  # 读取浏览器 Cookie，支持设置浏览器名称（字符串）或者浏览器序号（整数），设置为 None 代表不读取\n    # async with XHS() as xhs:\n    #     pass  # 使用默认参数\n    async with XHS(\n        work_path=work_path,\n        folder_name=folder_name,\n        name_format=name_format,\n        user_agent=user_agent,\n        cookie=cookie,\n        proxy=proxy,\n        timeout=timeout,\n        chunk=chunk,\n        max_retry=max_retry,\n        record_data=record_data,\n        image_format=image_format,\n        folder_mode=folder_mode,\n        image_download=image_download,\n        video_download=video_download,\n        live_download=live_download,\n        download_record=download_record,\n        language=language,\n        # read_cookie=read_cookie,\n        author_archive=author_archive,\n        write_mtime=write_mtime,\n    ) as xhs:  # 使用自定义参数\n        download = True  # 是否下载作品文件，默认值：False\n        # 返回作品详细信息，包括下载地址\n        # 获取数据失败时返回空字典\n        print(\n            await xhs.extract(\n                demo_link,\n                download,\n                index=[\n                    1,\n                    2,\n                    5,\n                ],\n            )\n        )\n\u003C\u002Fpre>\n\u003Ch1>📋 读取剪贴板\u003C\u002Fh1>\n\u003Cp>项目使用 \u003Ccode>pyperclip\u003C\u002Fcode> 实现读取剪贴板功能，该模块在不同的系统上会有差异。\u003C\u002Fp>\n\u003Cp>在 Windows 上，不需要额外的模块。\u003C\u002Fp>\n\u003Cp>在 Mac 上，该模块使用 pbcopy 和 pbpaste 命令，这些命令应该随操作系统一起提供。\u003C\u002Fp>\n\u003Cp>在 Linux 上，该模块使用 xclip 或 xsel 命令，这些命令应该随操作系统一起提供。否则，请运行 \"sudo apt-get install xclip\" 或 \"sudo apt-get install xsel\"（注意：xsel 似乎并不总是有效）\u003C\u002Fp>\n\u003Cp>在其他 Linux 系统上，你需要安装 qtpy 或 PyQT5 模块。\u003C\u002Fp>\n\u003Ch1>⚙️ 配置文件\u003C\u002Fh1>\n\u003Cp>项目根目录下的 \u003Ccode>.\u002FVolume\u002Fsettings.json\u003C\u002Fcode> 文件，首次运行自动生成，可以自定义程序运行参数；如果设置了无效的参数值，程序将会使用参数默认值！\u003C\u002Fp>\n\u003Cp>如果您在程序界面修改配置时无法正常交互，可以直接编辑配置文件；如果您的计算机没有合适的程序编辑 JSON 文件，建议使用 \u003Ca href=\"https:\u002F\u002Fwww.toolhelper.cn\u002FJSON\u002FJSONFormat\">在线工具\u003C\u002Fa> 编辑配置文件内容，修改后需要重启软件才能生效。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth align=\"center\">参数\u003C\u002Fth>\n\u003Cth align=\"center\">类型\u003C\u002Fth>\n\u003Cth align=\"center\">含义\u003C\u002Fth>\n\u003Cth align=\"center\">默认值\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd align=\"center\">mapping_data\u003C\u002Ftd>\n\u003Ctd align=\"center\">str: str\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Csup>\u003Ca href=\"#author_archive\">#\u003C\u002Fa>\u003C\u002Fsup>作者别名映射表，格式：\u003Ccode>作者ID: 作者别名\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd align=\"center\">无\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">work_path\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">作品数据 \u002F 文件保存根路径\u003C\u002Ftd>\n\u003Ctd align=\"center\">项目根路径\u002FVolume\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">folder_name\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">作品文件储存文件夹名称\u003C\u002Ftd>\n\u003Ctd align=\"center\">Download\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">name_format\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">作品文件名称格式，字段之间使用空格分隔，支持字段：\u003Ccode>收藏数量\u003C\u002Fcode>、\u003Ccode>评论数量\u003C\u002Fcode>、\u003Ccode>分享数量\u003C\u002Fcode>、\u003Ccode>点赞数量\u003C\u002Fcode>、\u003Ccode>作品标签\u003C\u002Fcode>、\u003Ccode>作品ID\u003C\u002Fcode>、\u003Ccode>作品标题\u003C\u002Fcode>、\u003Ccode>作品描述\u003C\u002Fcode>、\u003Ccode>作品类型\u003C\u002Fcode>、\u003Ccode>发布时间\u003C\u002Fcode>、\u003Ccode>最后更新时间\u003C\u002Fcode>、\u003Ccode>作者昵称\u003C\u002Fcode>、\u003Ccode>作者ID\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Ccode>发布时间 作者昵称 作品标题\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">user_agent\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">浏览器 User Agent\u003C\u002Ftd>\n\u003Ctd align=\"center\">内置 Chrome User Agent\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">cookie\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">小红书网页版 Cookie，\u003Cb>无需登录，非必需参数！\u003C\u002Fb>\u003C\u002Ftd>\n\u003Ctd align=\"center\">无\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">proxy\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">设置程序代理\u003C\u002Ftd>\n\u003Ctd align=\"center\">null\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">timeout\u003C\u002Ftd>\n\u003Ctd align=\"center\">int\u003C\u002Ftd>\n\u003Ctd align=\"center\">请求数据超时限制，单位：秒\u003C\u002Ftd>\n\u003Ctd align=\"center\">10\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">chunk\u003C\u002Ftd>\n\u003Ctd align=\"center\">int\u003C\u002Ftd>\n\u003Ctd align=\"center\">下载文件时，每次从服务器获取的数据块大小，单位：字节\u003C\u002Ftd>\n\u003Ctd align=\"center\">2097152(2 MB)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">max_retry\u003C\u002Ftd>\n\u003Ctd align=\"center\">int\u003C\u002Ftd>\n\u003Ctd align=\"center\">请求数据失败时，重试的最大次数，单位：秒\u003C\u002Ftd>\n\u003Ctd align=\"center\">5\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">record_data\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">是否保存作品数据至文件，保存格式：\u003Ccode>SQLite\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd align=\"center\">false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">image_format\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">图文作品文件下载格式，支持：\u003Ccode>AUTO\u003C\u002Fcode>、\u003Ccode>PNG\u003C\u002Fcode>、\u003Ccode>WEBP\u003C\u002Fcode>、\u003Ccode>JPEG\u003C\u002Fcode>、\u003Ccode>HEIC\u003C\u002Fcode>\u003Cbr>\u003Cstrong>部分作品没有 \u003Ccode>HEIC\u003C\u002Fcode> 格式的文件，此时下载的文件可能为 \u003Ccode>WEBP\u003C\u002Fcode> 格式！\u003C\u002Fstrong>\u003Cbr>\u003Cstrong>设置为 \u003Ccode>AUTO\u003C\u002Fcode> 时表示动态格式，实际格式取决于服务器响应数据！\u003C\u002Fstrong>\u003C\u002Ftd>\n\u003Ctd align=\"center\">JPEG\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">image_download\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">图文、图集作品文件下载开关\u003C\u002Ftd>\n\u003Ctd align=\"center\">true\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">video_download\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">视频作品文件下载开关\u003C\u002Ftd>\n\u003Ctd align=\"center\">true\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">live_download\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">图文动图文件下载开关\u003C\u002Ftd>\n\u003Ctd align=\"center\">false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">video_preference\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">视频作品文件下载偏好；含义：\u003Ccode>resolution\u003C\u002Fcode>：分辨率优先；\u003Ccode>bitrate\u003C\u002Fcode>：码率优先；\u003Ccode>size\u003C\u002Fcode>：文件大小优先\u003C\u002Ftd>\n\u003Ctd align=\"center\">resolution\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">folder_mode\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">是否将每个作品的文件储存至单独的文件夹；文件夹名称与文件名称保持一致\u003C\u002Ftd>\n\u003Ctd align=\"center\">false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">download_record\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">是否记录下载成功的作品 ID，如果开启，程序将会自动跳过下载存在记录的作品\u003C\u002Ftd>\n\u003Ctd align=\"center\">true\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">author_archive\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Csup>\u003Ca href=\"#author_archive\">#\u003C\u002Fa>\u003C\u002Fsup>是否将每个作者的作品储存至单独的文件夹；文件夹名称为 \u003Ccode>作者ID_作者昵称\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd align=\"center\">false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">write_mtime\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">是否将作品文件的 \u003Ccode>修改时间\u003C\u002Fcode> 属性修改为作品的发布时间\u003C\u002Ftd>\n\u003Ctd align=\"center\">false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">language\u003C\u002Ftd>\n\u003Ctd align=\"center\">str\u003C\u002Ftd>\n\u003Ctd align=\"center\">设置程序语言，目前支持：\u003Ccode>zh_CN\u003C\u002Fcode>、\u003Ccode>en_US\u003C\u002Fcode>\u003C\u002Ftd>\n\u003Ctd align=\"center\">zh_CN\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">script_server\u003C\u002Ftd>\n\u003Ctd align=\"center\">bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">是否开启用户脚本服务器，用于接收浏览器用户脚本的下载任务（TUI、MCP 和 API 模式生效）\u003C\u002Ftd>\n\u003Ctd align=\"center\">false\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Chr>\n\u003Cdiv id=\"author_archive\">\n\u003Cp>如果 \u003Ccode>author_archive\u003C\u002Fcode> 参数设置为 \u003Ccode>true\u003C\u002Fcode>，程序会把每个作者的作品储存至单独的文件夹；当作者的昵称发生变化时，程序会自动更新已下载作品文件名称中的作者昵称部分！\u003C\u002Fp>\n\u003Cp>除此之外，你还可以通过设置 \u003Ccode>mapping_data\u003C\u002Fcode> 参数为某个作者设置别名；如果对某个作者设置了别名，程序会使用你设置的作者别名去替代作者昵称！\u003C\u002Fp>\n\u003C\u002Fdiv>\n\u003Chr>\n\u003Cp>\u003Cb>其他说明：\u003Ccode>user_agent\u003C\u002Fcode>参数获取示例；强烈建议根据实际浏览器信息进行设置！\u003C\u002Fb>\u003C\u002Fp>\n\u003Cimg src=\"static\u002Fscreenshot\u002F请求头示例图.png\" alt=\"\">\n\u003Ch1 id=\"cookie\">🌐 Cookie\u003C\u002Fh1>\n\u003Col>\n\u003Cli>打开浏览器（可选无痕模式启动），访问 \u003Ccode>https:\u002F\u002Fwww.xiaohongshu.com\u002Fexplore\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>登录小红书账号（可跳过）\u003C\u002Fli>\n\u003Cli>按下 \u003Ccode>F12\u003C\u002Fcode> 打开开发人员工具\u003C\u002Fli>\n\u003Cli>选择 \u003Ccode>网络\u003C\u002Fcode> 选项卡\u003C\u002Fli>\n\u003Cli>勾选 \u003Ccode>保留日志\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>在 \u003Ccode>过滤\u003C\u002Fcode> 输入框输入 \u003Ccode>cookie-name:web_session\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>选择 \u003Ccode>Fetch\u002FXHR\u003C\u002Fcode> 筛选器\u003C\u002Fli>\n\u003Cli>点击小红书页面任意作品\u003C\u002Fli>\n\u003Cli>在 \u003Ccode>网络\u003C\u002Fcode> 选项卡选择任意数据包（如果无数据包，重复步骤7）\u003C\u002Fli>\n\u003Cli>全选复制 Cookie 写入程序或配置文件\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cbr>\n\u003Cimg src=\"static\u002Fscreenshot\u002F获取Cookie示意图.png\" alt=\"\">\n\u003Ch1>🗳 下载记录\u003C\u002Fh1>\n\u003Cp>XHS-Downloader 会将下载过的作品 ID 储存至数据库，当重复下载相同的作品时，XHS-Downloader 会自动跳过该作品的文件下载（即使作品文件不存在），如果想要重新下载作品文件，请先删除数据库中对应的作品 ID，再使用 XHS-Downloader 下载作品文件！\u003C\u002Fp>\n\u003Cp>该功能默认开启，如果关闭该功能，XHS-Downloader 会检查文件是否存在，若文件存在则跳过下载！\u003C\u002Fp>\n\u003Ch2>构建可执行文件指南\u003C\u002Fh2>\n\u003Cdetails>\n\u003Csummary>\u003Cb>构建可执行文件指南（点击展开）\u003C\u002Fb>\u003C\u002Fsummary>\n\n本指南将引导您通过 Fork 本仓库并执行 GitHub Actions 自动完成基于最新源码的程序构建和打包！\n\n---\n\n## 使用步骤\n\n### 1. Fork 本仓库\n\n1. 点击项目仓库右上角的 **Fork** 按钮，将本仓库 Fork 到您的个人 GitHub 账户中\n2. 您的 Fork 仓库地址将类似于：`https:\u002F\u002Fgithub.com\u002Fyour-username\u002Fthis-repo`\n\n---\n\n### 2. 启用 GitHub Actions\n\n1. 前往您 Fork 的仓库页面\n2. 点击顶部的 **Settings** 选项卡\n3. 点击右侧的 **Actions** 选项卡\n4. 点击 **General** 选项\n5. 在 **Actions permissions** 下，选择 **Allow all actions and reusable workflows** 选项，点击 **Save** 按钮\n\n---\n\n### 3. 手动触发打包流程\n\n1. 在您 Fork 的仓库中，点击顶部的 **Actions** 选项卡\n2. 找到名为 **构建可执行文件** 的工作流\n3. 点击右侧的 **Run workflow** 按钮：\n    - 选择 **master** 或者 **develop** 分支\n    - 点击 **Run workflow**\n\n---\n\n### 4. 查看打包进度\n\n1. 在 **Actions** 页面中，您可以看到触发的工作流运行记录\n2. 点击运行记录，查看详细的日志以了解打包进度和状态\n\n---\n\n### 5. 下载打包结果\n\n1. 打包完成后，进入对应的运行记录页面\n2. 在页面底部的 **Artifacts** 部分，您将看到打包的结果文件\n3. 点击下载并保存到本地，即可获得打包好的程序\n\n---\n\n## 注意事项\n\n1. **资源使用**：\n    - Actions 的运行环境由 GitHub 免费提供，普通用户每月有一定的免费使用额度（2000 分钟）\n\n2. **代码修改**：\n    - 您可以自由修改 Fork 仓库中的代码以定制程序打包流程\n    - 修改后重新触发打包流程，您将得到自定义的构建版本\n\n3. **与主仓库保持同步**：\n    - 如果主仓库更新了代码或工作流，建议您定期同步 Fork 仓库以获取最新功能和修复\n\n---\n\n## Actions 常见问题\n\n### Q1: 为什么我无法触发工作流？\n\nA: 请确认您已按照步骤 **启用 Actions**，否则 GitHub 会禁止运行工作流\n\n### Q2: 打包流程失败怎么办？\n\nA:\n\n- 检查运行日志，了解失败原因\n- 确保代码没有语法错误或依赖问题\n- 如果问题仍未解决，可以在本仓库的 [Issues 页面](https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FXHS-Downloader\u002Fissues) 提出问题\n\n### Q3: 我可以直接使用主仓库的 Actions 吗？\n\nA: 由于权限限制，您无法直接触发主仓库的 Actions。请通过 Fork 仓库的方式执行打包流程\n\n\u003C\u002Fdetails>\n\u003Ch1>⭐ Star 趋势\u003C\u002Fh1>\n\u003Cp>\n\u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=JoeanAmier\u002FXHS-Downloader&amp;type=Timeline\"\u002F>\n\u003C\u002Fp>\n\u003Ch1>♥️ 支持项目\u003C\u002Fh1>\n\u003Cp>如果 \u003Cb>XHS-Downloader\u003C\u002Fb> 对您有帮助，请考虑为它点个 \u003Cb>Star\u003C\u002Fb> ⭐，感谢您的支持！\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth align=\"center\">微信(WeChat)\u003C\u002Fth>\n\u003Cth align=\"center\">支付宝(Alipay)\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd align=\"center\">\u003Cimg src=\".\u002Fstatic\u002F微信赞助二维码.png\" alt=\"微信赞助二维码\" height=\"200\" width=\"200\">\u003C\u002Ftd>\n\u003Ctd align=\"center\">\u003Cimg src=\".\u002Fstatic\u002F支付宝赞助二维码.png\" alt=\"支付宝赞助二维码\" height=\"200\" width=\"200\">\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>如果您愿意，可以考虑提供资助为 \u003Cb>XHS-Downloader\u003C\u002Fb> 提供额外的支持！\u003C\u002Fp>\n\n# 💰 项目赞助\n\n## DartNode\n\n[![Powered by DartNode](static\u002Fother\u002FDartNode_AD.png)](https:\u002F\u002Fdartnode.com \"Powered by DartNode - Free VPS for Open Source\")\n\n***\n\n## ZMTO\n\n\u003Ca href=\"https:\u002F\u002Fwww.zmto.com\u002F\">\u003Cimg src=\"https:\u002F\u002Fconsole.zmto.com\u002Ftemplates\u002F2019\u002Fdist\u002Fimages\u002Flogo_dark.svg\" alt=\"ZMTO\">\u003C\u002Fa>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.zmto.com\u002F\">ZMTO\u003C\u002Fa>：一家专业的云基础设施提供商，以可靠的尖端技术与专业支持，提供高效的解决方案，并为符合条件的开源项目提供企业级VPS基础设施，支持开源生态系统的可持续发展与创新。\u003C\u002Fp>\n\n***\n\n## IPWO\n\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.ipwo.net\u002F?ref=githubJoeanAmier\">\u003Cimg src=\"static\u002Fother\u002FIPWO_AD.jpg\" alt=\"IPWO\">\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.ipwo.net\u002F?ref=githubJoeanAmier\">IPWO\u003C\u002Fa>：爬虫住宅代理全球领先代理网络。专注于提供全球各地 195+ 国家、拥有上亿级代理 IP 池，确保您的网络连接速度和稳定性。高可用、高并发，轻松应对大型爬虫任务，新手也能高效采集数据。\u003C\u002Fp>\n\u003Ch1>🌟 贡献指南\u003C\u002Fh1>\n\u003Cp>\u003Cstrong>欢迎对本项目做出贡献！为了保持代码库的整洁、高效和易于维护，请仔细阅读以下指南，以确保您的贡献能够顺利被接受和整合。\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>在开始开发前，请从 \u003Ccode>develop\u003C\u002Fcode> 分支拉取最新的代码，以此为基础进行修改；这有助于避免合并冲突并保证您的改动基于最新的项目状态。\u003C\u002Fli>\n\u003Cli>如果您的更改涉及多个不相关的功能或问题，请将它们分成多个独立的提交或拉取请求。\u003C\u002Fli>\n\u003Cli>每个拉取请求应尽可能专注于单一功能或修复，以便于代码审查和测试。\u003C\u002Fli>\n\u003Cli>遵循现有的代码风格；请确保您的代码与项目中已有的代码风格保持一致；建议使用 Ruff 工具保持代码格式规范。\u003C\u002Fli>\n\u003Cli>编写可读性强的代码；添加适当的注释帮助他人理解您的意图。\u003C\u002Fli>\n\u003Cli>每个提交都应该包含一个清晰、简洁的提交信息，以描述所做的更改。提交信息应遵循以下格式：\u003Ccode>&lt;类型&gt;: &lt;简短描述&gt;\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>当您准备提交拉取请求时，请优先将它们提交到 \u003Ccode>develop\u003C\u002Fcode> 分支；这是为了给维护者一个缓冲区，在最终合并到 \u003Ccode>master\u003C\u002Fcode>\n分支之前进行额外的测试和审查。\u003C\u002Fli>\n\u003Cli>建议在开发前或遇到疑问时与作者沟通，确保开发方向一致，避免重复劳动或无效提交。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>参考资料：\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.contributor-covenant.org\u002Fzh-cn\u002Fversion\u002F2\u002F1\u002Fcode_of_conduct\u002F\">贡献者公约\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fopensource.guide\u002Fzh-hans\u002Fhow-to-contribute\u002F\">如何为开源做贡献\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch1>✉️ 联系作者\u003C\u002Fh1>\n\u003Cul>\n\u003Cli>作者邮箱：yonglelolu@foxmail.com\u003C\u002Fli>\n\u003Cli>作者微信: Downloader_Tools\u003C\u002Fli>\n\u003Cli>微信公众号: Downloader Tools\u003C\u002Fli>\n\u003Cli>\u003Cb>Discord 社区\u003C\u002Fb>: \u003Ca href=\"https:\u002F\u002Fdiscord.com\u002Finvite\u002FZYtmgKud9Y\">点击加入社区\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>QQ 群聊: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FXHS-Downloader\u002Fblob\u002Fmaster\u002Fstatic\u002FQQ%E7%BE%A4%E8%81%8A%E4%BA%8C%E7%BB%B4%E7%A0%81.png\">扫码加入群聊\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cb>说明：\u003C\u002Fb>QQ 群聊仅限于讨论项目使用问题，严禁发布任何广告，严禁讨论任何账号交易、账号流量、流量变现、灰色产业等相关的内容！\u003C\u002Fp>\n\u003Cp>✨ \u003Cb>作者的其他开源项目：\u003C\u002Fb>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cb>DouK-Downloader（抖音、TikTok）\u003C\u002Fb>：\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FTikTokDownloader\">https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FTikTokDownloader\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cb>KS-Downloader（快手、KuaiShou）\u003C\u002Fb>：\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FKS-Downloader\">https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FKS-Downloader\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch1>⚠️ 免责声明\u003C\u002Fh1>\n\u003Col>\n\u003Cli>使用者对本项目的使用由使用者自行决定，并自行承担风险。作者对使用者使用本项目所产生的任何损失、责任、或风险概不负责。\u003C\u002Fli>\n\u003Cli>本项目的作者提供的代码和功能是基于现有知识和技术的开发成果。作者按现有技术水平努力确保代码的正确性和安全性，但不保证代码完全没有错误或缺陷。\u003C\u002Fli>\n\u003Cli>本项目依赖的所有第三方库、插件或服务各自遵循其原始开源或商业许可，使用者需自行查阅并遵守相应协议，作者不对第三方组件的稳定性、安全性及合规性承担任何责任。\u003C\u002Fli>\n\u003Cli>使用者在使用本项目时必须严格遵守 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FXHS-Downloader\u002Fblob\u002Fmaster\u002FLICENSE\">GNU\n    General Public License v3.0\u003C\u002Fa> 的要求，并在适当的地方注明使用了 \u003Ca\n        href=\"https:\u002F\u002Fgithub.com\u002FJoeanAmier\u002FXHS-Downloader\u002Fblob\u002Fmaster\u002FLICENSE\">GNU General Public License\n    v3.0\u003C\u002Fa> 的代码。\n\u003C\u002Fli>\n\u003Cli>使用者在使用本项目的代码和功能时，必须自行研究相关法律法规，并确保其使用行为合法合规。任何因违反法律法规而导致的法律责任和风险，均由使用者自行承担。\u003C\u002Fli>\n\u003Cli>使用者不得使用本工具从事任何侵犯知识产权的行为，包括但不限于未经授权下载、传播受版权保护的内容，开发者不参与、不支持、不认可任何非法内容的获取或分发。\u003C\u002Fli>\n\u003Cli>本项目不对使用者涉及的数据收集、存储、传输等处理活动的合规性承担责任。使用者应自行遵守相关法律法规，确保处理行为合法正当；因违规操作导致的法律责任由使用者自行承担。\u003C\u002Fli>\n\u003Cli>使用者在任何情况下均不得将本项目的作者、贡献者或其他相关方与使用者的使用行为联系起来，或要求其对使用者使用本项目所产生的任何损失或损害负责。\u003C\u002Fli>\n\u003Cli>本项目的作者不会提供 XHS-Downloader 项目的付费版本，也不会提供与 XHS-Downloader 项目相关的任何商业服务。\u003C\u002Fli>\n\u003Cli>基于本项目进行的任何二次开发、修改或编译的程序与原创作者无关，原创作者不承担与二次开发行为或其结果相关的任何责任，使用者应自行对因二次开发可能带来的各种情况负全部责任。\u003C\u002Fli>\n\u003Cli>本项目不授予使用者任何专利许可；若使用本项目导致专利纠纷或侵权，使用者自行承担全部风险和责任。未经作者或权利人书面授权，不得使用本项目进行任何商业宣传、推广或再授权。\u003C\u002Fli>\n\u003Cli>作者保留随时终止向任何违反本声明的使用者提供服务的权利，并可能要求其销毁已获取的代码及衍生作品。\u003C\u002Fli>\n\u003Cli>作者保留在不另行通知的情况下更新本声明的权利，使用者持续使用即视为接受修订后的条款。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cb>在使用本项目的代码和功能之前，请您认真考虑并接受以上免责声明。如果您对上述声明有任何疑问或不同意，请不要使用本项目的代码和功能。如果您使用了本项目的代码和功能，则视为您已完全理解并接受上述免责声明，并自愿承担使用本项目的一切风险和后果。\u003C\u002Fb>\n\n# 💡 项目参考\n\n* https:\u002F\u002Fgithub.com\u002Fencode\u002Fhttpx\u002F\n* https:\u002F\u002Fgithub.com\u002Ftiangolo\u002Ffastapi\n* https:\u002F\u002Fgithub.com\u002Ftextualize\u002Ftextual\u002F\n* https:\u002F\u002Fgithub.com\u002Fpyinstaller\u002Fpyinstaller\n* https:\u002F\u002Fgithub.com\u002Fzbowling\u002Fbeartype-pyinstaller-repro\n* https:\u002F\u002Fgithub.com\u002Fjlowin\u002Ffastmcp\n* https:\u002F\u002Fgithub.com\u002Fomnilib\u002Faiosqlite\n* https:\u002F\u002Fgithub.com\u002Fcarpedm20\u002Femoji\u002F\n* https:\u002F\u002Fgithub.com\u002Fasweigart\u002Fpyperclip\n* https:\u002F\u002Fgithub.com\u002Flxml\u002Flxml\n* https:\u002F\u002Fgithub.com\u002Fyaml\u002Fpyyaml\n* https:\u002F\u002Fgithub.com\u002Fpallets\u002Fclick\u002F\n* https:\u002F\u002Fgithub.com\u002Fencode\u002Fuvicorn\n* https:\u002F\u002Fgithub.com\u002FTinche\u002Faiofiles\n","XHS-Downloader 是一个用于小红书（XiaoHongShu、RedNote）的链接提取和作品采集工具，能够帮助用户提取账号发布、收藏、点赞、专辑作品链接，以及搜索结果中的作品和用户链接，并支持下载小红书作品文件。该工具基于 Python 开发，利用 FastAPI 和 HTTPX 等现代技术栈提供高效的数据处理能力。它还支持 Docker 部署、API 调用及 MCP 服务，便于集成到更广泛的应用场景中。此外，XHS-Downloader 提供了多种自定义选项如文件命名格式、断点续传等，以满足不同用户的个性化需求。此项目特别适合需要批量获取或备份小红书内容的研究人员、营销人员或是个人用户使用。",2,"2026-06-11 03:25:56","top_topic"]