558星的开源工具PyInstaLive,一键下载Instagram直播视频
558星的开源工具PyInstaLive,一键下载Instagram直播视频
Instagram上每天都有大量直播内容,覆盖娱乐、电商、教学等多个领域,但平台本身不提供直播回放下载功能。如果你需要保存某场直播用于回顾或分析,PyInstaLive是一个现成的解决方案。

它能做什么
PyInstaLive 的功能定位很明确:下载正在进行的 Instagram 直播,保存为 MP4 视频文件。运行后会持续录制直到直播结束,同时将评论保存为单独的文本日志。程序内置登录会话缓存,首次登录后将凭证保存到本地,后续运行无需重复输入密码,直到会话过期。
输出文件按日期、用户名和直播 ID 自动命名,便于后续管理。一次配置后,后续下载只需一行命令。在终端运行过程中,程序会实时显示直播已进行时长、当前状态和观看人数。直播视频以分段形式下载,每段独立存储为临时文件,提升了下载过程的容错能力。
下载过程中如果直播中断或网络异常,已下载的分段数据不会丢失。直播结束后,程序自动将分段视频流组装合并为完整的 MP4 文件,同时输出一份包含所有评论的日志文件。

安装与配置
依赖项包括 ffmpeg、Git、Python 3.6 及以上版本。确保这些工具已加入系统 PATH 后,通过 pip 从 Git 仓库安装:
pip install git+https://github.com/dvingerh/PyInstaLive.git@4.0.2
首次运行 pyinstalive 会自动生成配置文件 pyinstalive.ini。在配置文件中填入 Instagram 账号和密码,设置下载路径、ffmpeg 路径。其他可配置项包括:是否同时下载评论、直播开始和结束时自动执行的命令、是否清空临时文件、是否启用文件锁防止重复下载、是否跳过视频组装环节以及是否将运行日志写入文件。
基本用法只需要一行:
pyinstalive -d "目标用户名"
程序会先检查登录会话是否有效,然后查询目标用户的直播状态,直播在线则立即开始下载。
运行效果
以下是下载一场直播时的完整终端输出:
> pyinstalive -d "janedoe"
---------------------------------------------------------------------------
[I] PYINSTALIVE (SCRIPT V4.0.2 - PYTHON V3.8.10) - 06-10-2022 05:02:02 PM
---------------------------------------------------------------------------
An existing login session file was found: johndoe.dat
Checking the validity of the saved login session.
---------------------------------------------------------------------------
Successfully logged in using account: johndoe
The login session file will expire on: 06-09-2023 at 12:41:55 PM
---------------------------------------------------------------------------
Getting livestream information for user: janedoe
---------------------------------------------------------------------------
Livestream available, starting download.
---------------------------------------------------------------------------
Downloading livestream, press [CTRL+C] to abort.
---------------------------------------------------------------------------
Airing time : 4 minutes and 45 seconds
Status : Active
Viewers : 75
---------------------------------------------------------------------------
The livestream has been ended.
---------------------------------------------------------------------------
Airing time : 6 minutes and 25 seconds
Downloaded : 1 minutes and 21 seconds
Missing : 5 minutes and 4 seconds
---------------------------------------------------------------------------
Waiting for background tasks to finish.
---------------------------------------------------------------------------
Saving 12 comments to text file.
Successfully saved text file: 20220610_janedoe_17905387649602356_1654873322_live.log
---------------------------------------------------------------------------
Assembling segments into video file.
Successfully saved video file: 20220610_janedoe_17905387649602356_1654873322_live.mp4
---------------------------------------------------------------------------
从这份输出可以看到完整的下载流程:登录验证、直播信息获取、实时下载进度、结束后的文件组装。输出中也暴露了实际使用中可能遇到的问题:一场 6 分 25 秒的直播实际只下载了 1 分 21 秒,丢失了 5 分 4 秒。这种情况取决于下载开始时机和网络稳定性。另外,从输出中可以看到会话过期时间设定为一年,说明登录凭据可以长期复用,不必频繁重新认证。
需要注意的问题
项目 README 中有两点明确提示。第一,该脚本的活跃开发已经结束,Issue 不再处理,不再发布更新。第二,使用此脚本可能导致 Instagram 账号被封禁,风险自负。
这两点对用户决策很关键。停止维护意味着如果 Instagram 修改了接口协议,脚本可能直接失效且不会有修复。而账号风险则要求用户自行评估是否值得用主账号操作,或使用备用账号来降低影响。
适用场景
尽管项目已停止维护,Python 开发者仍然可以参考其实现的直播流捕获逻辑。对于需要短期批量下载 Instagram 直播的用户,当前版本如果还能正常工作,也是一个可用的选择。
总的来看,PyInstaLive 解决了一个实际存在但平台没有提供官方支持的需求。558 个 Star 说明确实有一部分用户需要这个功能。如果 Instagram 是你获取信息的重要渠道,这个工具值得了解,同时也需要理性看待它停止维护的现实。
供官方支持的需求。558 个 Star 说明确实有一部分用户需要这个功能。如果 Instagram 是你获取信息的重要渠道,这个工具值得了解,同时也需要理性看待它停止维护的现实。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)