从刷屏动图到永久珍藏:XHS-Downloader LivePhoto全链路处理指南
你是否遇到过这样的困扰:小红书上刷到的精彩LivePhoto动图,想保存却只能得到静态图片?本文将带你通过XHS-Downloader这款开源工具,从获取链接到最终保存,完整掌握LivePhoto的下载与处理方法,让转瞬即逝的动态瞬间成为永久珍藏。
认识LivePhoto与XHS-Downloader
LivePhoto是一种特殊的媒体格式,它在拍摄照片的同时会录制一段短视频,让静态图片"动起来"。XHS-Downloader作为一款基于AIOHTTP模块实现的小红书图文/视频作品采集工具,不仅支持普通图片和视频的下载,还能处理LivePhoto文件。
XHS-Downloader的核心功能模块位于source/application/目录下,其中download.py负责文件下载逻辑,image.py和video.py则分别处理图片和视频文件的解析与保存。
准备工作:安装与配置
在开始下载LivePhoto之前,我们需要先完成XHS-Downloader的安装和基础配置。
安装方式选择
XHS-Downloader提供了多种安装方式,你可以根据自己的需求选择:
-
程序运行:适合仅需下载无水印作品文件的用户。前往项目发布页面下载对应系统的压缩包,解压后双击运行
main即可。 -
Docker运行:适合熟悉容器技术的用户。使用以下命令拉取镜像并启动:
docker pull joeanamier/xhs-downloader docker run --name xhs-downloader -p 5556:5556 -v xhs_downloader_volume:/app/Volume -it joeanamier/xhs-downloader -
源码运行:适合开发者或需要自定义功能的用户。首先克隆仓库:
git clone https://gitcode.com/gh_mirrors/xh/XHS-Downloader然后安装依赖:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt最后运行:
python main.py
基础配置
对于LivePhoto下载,我们需要特别关注配置文件中的live_download参数。该参数默认为false,需要将其设置为true才能开启LivePhoto下载功能。配置文件路径为./Volume/settings.json,你可以直接编辑该文件,或通过程序的设置界面进行修改。
下载LivePhoto的三种方法
XHS-Downloader提供了多种方式来下载小红书内容,包括图形界面、命令行和API调用。下面我们将详细介绍这三种方法如何应用于LivePhoto下载。
图形界面操作
- 启动XHS-Downloader后,你会看到主界面。
- 在输入框中粘贴小红书作品链接。
- 确保"下载LivePhoto"选项已勾选。
- 点击"下载"按钮开始处理。
命令行模式
对于熟悉命令行的用户,可以直接使用命令行模式下载LivePhoto:
python main.py --live_download true "https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX"
其中--live_download true参数用于开启LivePhoto下载功能。你也可以通过编辑配置文件,将live_download设置为true,这样就不需要每次都在命令行中指定该参数了。
API调用
如果需要将XHS-Downloader集成到其他应用中,可以使用API模式。首先启动API服务器:
python main.py api
然后发送POST请求到http://127.0.0.1:5556/xhs/detail,包含以下参数:
import requests
data = {
"url": "https://www.xiaohongshu.com/explore/作品ID?xsec_token=XXX",
"download": True,
"live_download": True
}
response = requests.post("http://127.0.0.1:5556/xhs/detail", json=data)
print(response.json())
example.py文件中提供了更详细的API调用示例,你可以参考该文件进行二次开发。
LivePhoto文件处理流程
XHS-Downloader处理LivePhoto的流程可以分为以下几个关键步骤:
1. 链接解析
当你输入小红书作品链接后,XHS-Downloader会通过source/application/request.py模块向小红书服务器发送请求,获取作品的元数据。这个过程中会判断作品是否包含LivePhoto内容。
2. 资源下载
如果检测到LivePhoto,download.py模块会开始下载相关文件。需要注意的是,小红书的LivePhoto文件是含水印的,这是由于平台的限制。
3. 文件保存
下载完成后,文件会按照配置的路径和命名规则保存。默认情况下,文件会保存在./Volume/Download目录下。你可以通过修改配置文件中的work_path和folder_name参数来自定义保存路径,通过name_format参数自定义文件名格式。
高级技巧:批量下载与自动化
对于需要下载大量LivePhoto的用户,XHS-Downloader提供了批量下载和自动化功能。
批量下载
你可以一次输入多个作品链接,链接之间使用空格分隔。例如:
python main.py --live_download true "链接1" "链接2" "链接3"
监听剪贴板
XHS-Downloader还支持监听剪贴板功能,当检测到小红书链接时自动开始下载。这个功能可以通过source/expansion/browser.py模块实现,你需要在设置中开启"监听剪贴板"选项。
二次开发
如果你是开发者,可以基于XHS-Downloader进行二次开发,实现更复杂的自动化逻辑。example.py提供了详细的代码示例,展示如何通过代码调用XHS-Downloader的核心功能。
下面是一个简单的示例,展示如何使用Python代码批量下载LivePhoto:
from asyncio import run
from source import XHS
async def batch_download():
links = [
"https://www.xiaohongshu.com/explore/作品ID1?xsec_token=XXX",
"https://www.xiaohongshu.com/explore/作品ID2?xsec_token=XXX",
# 更多链接...
]
async with XHS(live_download=True) as xhs:
for link in links:
print(f"正在下载: {link}")
await xhs.extract(link, download=True)
run(batch_download())
常见问题与解决方案
LivePhoto下载后无法播放
如果你下载的LivePhoto文件无法播放,可能是由于以下原因:
-
文件不完整:网络问题可能导致文件下载不完整。XHS-Downloader有文件完整性处理机制,你可以在source/expansion/error.py中查看相关实现。如果怀疑文件不完整,可以尝试重新下载。
-
播放器不支持:LivePhoto是一种特殊格式,并非所有播放器都支持。建议使用最新版本的QuickTime Player或其他支持HEIF/HEVC格式的播放器。
下载速度慢
如果下载速度较慢,可以尝试以下方法:
- 调整分块大小:在配置文件中修改
chunk参数,增大每次从服务器获取的数据块大小。 - 使用代理:通过
proxy参数配置代理服务器,可能会提高访问速度。
Cookie相关问题
从2.2版本开始,XHS-Downloader在功能无异常的情况下无需额外处理Cookie。但如果你遇到访问受限的问题,可以尝试手动获取并设置Cookie:
- 打开浏览器,访问小红书网站
- 按下F12打开开发者工具
- 在"网络"选项卡中找到包含"web_session"的请求
- 复制Cookie值并在XHS-Downloader中设置
总结与展望
通过本文的介绍,你应该已经掌握了使用XHS-Downloader下载和处理小红书LivePhoto的方法。从基础的安装配置,到高级的批量下载和自动化,XHS-Downloader提供了全方位的功能支持。
项目的源码结构清晰,主要模块包括:
- source/CLI/:命令行界面实现
- source/TUI/:终端用户界面实现
- source/application/:核心功能实现
- source/expansion/:扩展功能实现
- source/module/:通用模块
未来,XHS-Downloader可能会加入更多高级功能,如LivePhoto水印去除、格式转换等。如果你有兴趣参与项目开发,可以参考CONTRIBUTING.md中的贡献指南。
希望本文能帮助你更好地使用XHS-Downloader,让那些精彩的LivePhoto不再转瞬即逝,而是成为你永久珍藏的美好回忆。如果你有任何问题或建议,欢迎通过项目的issue系统或社区渠道反馈。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00







