subzeroid/insta-dl

GitHub: subzeroid/insta-dl

异步 Instagram 多类型内容批量下载与归档 CLI,支持增量更新、元数据保留及可插拔后端。

Stars: 0 | Forks: 0

# insta-dl [![PyPI](https://img.shields.io/pypi/v/instagram-dl.svg)](https://pypi.org/project/instagram-dl/) [![Python](https://img.shields.io/pypi/pyversions/instagram-dl.svg)](https://pypi.org/project/instagram-dl/) [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![Tests](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/2cf446fe24111134.svg)](https://github.com/subzeroid/insta-dl/actions/workflows/tests.yml) [![codecov](https://codecov.io/gh/subzeroid/insta-dl/branch/main/graph/badge.svg)](https://codecov.io/gh/subzeroid/insta-dl) [![Docs](https://img.shields.io/badge/docs-subzeroid.github.io-blue)](https://subzeroid.github.io/insta-dl/) Instagram 的异步命令行下载器。支持下载个人主页、帖子、Reels、快拍、精选、话题标签和评论——保存到磁盘时保留原始时间戳。 ``` pip install instagram-dl # pip pipx install instagram-dl # or as an isolated CLI app export HIKERAPI_TOKEN=your_token insta-dl instagram ``` 或者无需安装 Python 直接运行: ``` docker run --rm -v "$PWD/out:/data" -e HIKERAPI_TOKEN \ ghcr.io/subzeroid/insta-dl:latest instagram ``` 在 [hikerapi.com](https://hikerapi.com/p/18j4ib4j) 获取免费的 HikerAPI token —— **前 100 次请求免费**,无需信用卡。一次请求 ≈ 一篇帖子或信息流的一页。 **insta-dl** - 下载 **个人主页、话题标签、单个帖子、Reels、快拍、精选和评论**, - 保留 **原始 `taken_at` 时间戳** 作为文件的 mtime,以便 Photos/Finder 正确排序, - 在每篇帖子旁边写入 **JSON 元数据附属文件**(说明文字、点赞数、位置、所有者), - 支持 `--fast-update` 和 `--latest-stamps` 进行 **增量更新**, - 接受个人主页名称、`#话题标签`、帖子短代码以及完整的 `instagram.com` URL, - 提供 **两个可互换的后端**:付费商业 API(HikerAPI,无需 Instagram 会话,无封号风险)和开源私有 API 库(aiograpi,使用你自己的登录信息)。 ``` insta-dl [--backend hiker|aiograpi] [--dest DIR] [--fast-update] [--latest-stamps FILE] [--stories] [--highlights] [--comments] profile | "#hashtag" | post:SHORTCODE | https://instagram.com/... ``` 📖 **[完整文档](https://subzeroid.github.io/insta-dl/)** — 安装、CLI 参考、后端对比、Python API、故障排除。 ## 如何下载 Instagram 个人主页 ``` export HIKERAPI_TOKEN=$(cat ~/.config/hikerapi-token) insta-dl --dest ./out instagram ``` 这会抓取每一篇帖子,将文件命名为 `2026-04-21_16-04-15_DXZlTiKEpxw.mp4`,并在每个文件旁边写入元数据附属文件。 ## 如何保持本地归档同步 ``` insta-dl --fast-update --latest-stamps ./stamps.ini --dest ./out instagram ``` `--fast-update` 会在遇到第一个已存在于磁盘上的帖子时停止;`--latest-stamps` 会记录每个个人主页最新的 `taken_at`,这样即使本地副本被删除也能恢复下载。 ## 如何下载单个帖子或 Reels ``` insta-dl post:DXZlTiKEpxw insta-dl https://www.instagram.com/p/DXZlTiKEpxw/ insta-dl https://www.instagram.com/reel/DXZlTiKEpxw/ ``` ## 如何下载话题标签 ``` insta-dl '#sunset' --dest ./out ``` 将该标签的最近信息流拉取到 `./out/#sunset/`。 ## 如何抓取快拍和精选 ``` insta-dl --stories --highlights --dest ./out instagram ``` 快拍和精选会存放在 `//stories/` 和 `//highlights/_/` 下。 ## 如何在帖子旁保存评论 ``` insta-dl --comments --dest ./out instagram ``` 每篇帖子都会生成一个 `..._comments.json` 附属文件流式写入磁盘。 ## 后端 选择与你的身份验证方式相匹配的后端。 | | **hiker**(默认) | **aiograpi** *(开发中)* | |---|---|---| | 身份验证 | API token | Instagram 登录 + 2FA | | 费用 | 按请求付费,[**100 次免费请求**](https://hikerapi.com/p/18j4ib4j)起步 | 免费 | | 账号封禁风险 | 无 —— 不涉及 Instagram 会话 | 存在风险,通过会话复用缓解 | | 针对 Instagram 变更的稳定性 | 高(受管代理) | 脆弱 | | 私密账号 | HikerAPI 所暴露的内容 | 你的账号能看到的任何内容 | 使用 `--backend` 切换: ``` insta-dl --backend hiker --hiker-token TOKEN instagram insta-dl --backend aiograpi --login USER --password PASS --session ./session.json instagram ``` 详细对比和身份验证设置:参见[后端文档](https://subzeroid.github.io/insta-dl/backends/)。关于 insta-dl 与 instaloader、yt-dlp 和 gallery-dl 的对比,参见[与替代方案的比较](https://subzeroid.github.io/insta-dl/comparison/)。 ## 输出布局 ``` <dest>/<username>/ 2026-04-21_16-04-15_DXZlTiKEpxw.mp4 2026-04-21_16-04-15_DXZlTiKEpxw.json # metadata sidecar 2026-04-21_16-04-15_DXZlTiKEpxw_comments.json # with --comments stories/ 2026-04-21_18-30-00_178290.jpg # with --stories highlights/ 17991_Travel/ # with --highlights 2025-10-12_19-20-30_4011.jpg ``` 话题标签下载会存放在 `<dest>/#<tag>/` 下;单帖下载使用帖子所有者的用户名(或回退到 `owner_pk`)。 ## 状态 目前处于 **alpha** 阶段。hiker 后端已实现端到端功能(197 个测试,95% 覆盖率)。aiograpi 后端已建立桩代码,等待上游同步。CLI 标志和输出布局已稳定;Python API 可能仍有变动。 尚未实现的功能: - 需要登录的私密账号(等待 aiograpi 支持) - `:feed` 和 `:saved`(与账号绑定,受限于 aiograpi) - 帖子过滤表达式(计划中:AST 受限评估) - 针对 429/5xx 的自动重试/退避 参见[更新日志](CHANGELOG.md)了解各版本发布内容,参见[贡献](CONTRIBUTING.md)了解如何提供帮助。 ## 贡献 欢迎提交 Bug 报告、修复和后端实现。请从 [CONTRIBUTING.md](CONTRIBUTING.md) 开始。测试:`pip install -e .[dev] && pytest`。 ## 免责声明 insta-dl 不隶属于、未经 Instagram 或 Meta 授权、维护或认可。使用风险自负,并请尊重内容创作者的权利。根据 [MIT](LICENSE) 获得许可。</div><div><strong>标签:</strong>aiograpi, API对接, HikerAPI, Instagram下载器, Instagram爬虫, MIT许可, Python, Reels下载, Stories下载, URL抓取, 代码示例, 图片下载, 备份工具, 帖子下载, 开源, 异步下载, 数字取证, 数据分析, 数据抓取, 数据泄露, 无后门, 社交媒体数据, 自动化脚本, 视频下载, 计算机取证, 请求拦截, 逆向工具</div></article></div> <!-- 人机验证 --> <script> (function () { var base = (document.querySelector('base') && document.querySelector('base').getAttribute('href')) || ''; var path = base.replace(/\/?$/, '') + '/cap-wasm/cap_wasm.min.js'; window.CAP_CUSTOM_WASM_URL = new URL(path, window.location.href).href; })(); </script> </body> </html>