用途
instagram-saved-download 用于下载“你自己”的 Instagram 收藏(Saved)帖子。它依赖 Ego Lite 中已登录的 Instagram 登录态,通过 ego-browser 的 nodejs 能力打开页面并读取收藏夹。匿名模式看不到收藏夹,因此必须先在 Ego Lite 内登录 Instagram,下载的才是该账号保存的帖子。该技能仅限个人使用,需留意服务条款(见 references/tos-notes.md)。
主要能力
- 读取当前登录账号的收藏帖子,默认抓取图片(视频帖子保存其封面图)。
- 通过 --media 选择媒体类型:image 保存图片(含视频封面),video 仅保存 MP4,any 两者都保存。
- 可通过 --query 在信息流加载后按 caption 或用户名过滤。
- 可通过 --count / --limit 控制数量,范围 1–100,默认 10。
- 输出到 --out 指定目录(会先解析为绝对路径),默认 ~/Downloads/instagram-saved;文件与 manifest.json 一并写入该目录,不应提交到版本库。
- 标准输出为单个 JSON 对象,成功后可报告 downloads[].path 与数量。
使用方式
先用 Ego Lite 登录 Instagram。随后用 ego-browser nodejs 执行脚本。注意 ego-browser nodejs 不转发 shell 参数,命令会写一个临时模块,再用 ego-browser nodejs -e "await import('file://…')" 执行。示例:
node skills/instagram-saved-download/scripts/download.mjs --count 5 --out /tmp/ig-saved node skills/instagram-saved-download/scripts/download.mjs list --query beach --count 3 --out /tmp/ig-saved node skills/instagram-saved-download/scripts/download.mjs saved --media any --count 2 --out /tmp/ig-saved
参数说明:saved 或 list(默认 saved,仅你的收藏);--query(默认空,加载信息流后过滤 caption 或用户名);--count / --limit(默认 10,1–100);--out(默认 ~/Downloads/instagram-saved,先解析为绝对路径);--media(默认 image);--keep(默认关闭,保持 Instagram 标签页打开)。
媒体下载方面,Node fetch 拉取 Instagram CDN(cdninstagram.com / fbcdn.net)时可能在任何 HTTP 状态之前就抛出 fetch failed。脚本会再用 HTTP/1.1(IPv4,带浏览器 User-Agent)重试一次;若仍失败,则通过当前已登录页面的 page.fetch 保存图片或 MP4。
退出码:至少保存一个文件为 0;Instagram 未登录为 2;其它失败为 1。每次运行都应把 JSON 中的 login_tip / login_tip_zh 告知用户,即使成功也要显示。若退出码为 2(login_required: true),需一并给出 how_to_login / how_to_login_zh 后停止,不要输入密码;该技能自行检查登录,无需再叠加 cookie-healthcheck 技能,详见 references/login.md。
适用场景
- 备份自己在 Instagram 上收藏的图片或视频。
- 按关键词或用户名筛选收藏内容后批量导出。
- 在 Ego Lite 会话内完成个人收藏的本地留存。
限制
- 只能读取已在 Ego Lite 中登录的账号的收藏,匿名模式不可用。
- 需要 Ego Lite 与 ego-browser nodejs 环境。
- 数量上限为 100。
- 仅限个人使用。
- 未登录时不会自动输入密码,需用户自行在 Ego Lite 内完成登录。