
后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载收藏Saved功能是 Instagram 客户端最常用的内容沉淀手段之一而「预览评论」Preview Comments则是收藏帖返回数据中用于快速展示评论区概览的关键片段。本指南聚焦于 instagram-private-apiNodeJS Instagram private API SDKTypeScript 编写中 SavedFeedResponsePreviewCommentsItem 接口逐字段拆解其类型、语义、可选性并结合 SavedFeed 与 saved.feed.response.ts 源码说明该数据结构在GET /api/v1/feed/saved/接口响应中的真实位置与实战解析方式。读完本文你将能够读懂收藏帖响应中的评论预览对象并在自己的爬取、归档与数据分析代码中准确消费这些字段。SavedFeedResponsePreviewCommentsItem 在响应树中的位置理解一个响应接口的最好方式是先看它挂在哪棵数据树上。收藏帖接口GET /api/v1/feed/saved/返回的根对象是 SavedFeedResponseRootObject其结构为export interface SavedFeedResponseRootObject { items: SavedFeedResponseItemsItem[]; num_results: number; more_available: boolean; auto_load_more_enabled: boolean; status: string; next_max_id: string; }每一页的items元素是SavedFeedResponseItemsItem其中真正承载帖子内容的是media字段类型为 SavedFeedResponseMedia。而本文的主角SavedFeedResponsePreviewCommentsItem正是SavedFeedResponseMedia中preview_comments数组的元素类型// src/responses/saved.feed.response.ts:9-60节选 export interface SavedFeedResponseItemsItem { media: SavedFeedResponseMedia; } export interface SavedFeedResponseMedia { // ... preview_comments: SavedFeedResponsePreviewCommentsItem[]; max_num_visible_preview_comments: number; can_view_more_preview_comments: boolean; // ... }因此从「收藏帖 → 单条帖子 → 预览评论」的取值路径是root.items[i].media.preview_comments[j]。围绕preview_comments还有两个关联字段需要一并理解max_num_visible_preview_comments: number服务端允许在该帖列表卡片上直接展示的预览评论条数上限can_view_more_preview_comments: boolean是否存在更多可加载的评论用于驱动「查看全部评论」交互。两者与preview_comments一起构成了 Instagram 评论区的三层信息架构卡片内展示的少量预览评论、是否还有更多、以及通过其他评论接口完整评论列表。字段全解类型、语义与可选性SavedFeedResponsePreviewCommentsItem共 17 个属性其中 15 个为必填2 个为可选has_translation、parent_comment_id。以下按语义分组逐字段说明全部定义见 saved.feed.response.ts:93-111。1. 身份与归属字段字段类型必填语义pkstring是评论的唯一主键可用于去重、缓存或作为后续操作如点赞评论的 IDuser_idnumber是评论作者的数值型用户 IDmedia_idstring是该评论所属帖子media的 IDparent_comment_idstring可选父评论 ID存在即说明这是一条回复子评论可用于还原评论树其中pk是评论最稳定的标识符parent_comment_id的有无直接决定了该预览评论在评论树中的层级。2. 内容字段字段类型必填语义textstring是评论正文文本typenumber是评论类型标识数值枚举content_typestring是内容类型字符串如commenttext是消费预览评论时最主要的数据type与content_type共同描述了这条评论的形态普通文本评论与富媒体评论的区别通常体现在这两个字段上。3. 时间字段字段类型必填语义created_atnumber是评论创建时间Unix 时间戳秒created_at_utcnumber是评论创建时间的 UTC 表示两者均为秒级时间戳created_at_utc通常与created_at数值一致用于在客户端按 UTC 时区直接展示在分析场景中可直接用new Date(created_at * 1000)转换为标准时间。4. 状态与标记字段字段类型必填语义statusstring是评论状态如Active、Hidden等bit_flagsnumber是评论的位标志集合用于组合表达多种状态did_report_as_spamboolean是该评论是否被举报为垃圾信息share_enabledboolean是该评论是否允许被分享has_translationboolean可选评论是否提供翻译能力缺省时可视为未提供status与bit_flags是一对互补字段status是面向展示的语义化状态bit_flags是以位掩码承载的机器可读标志组合。在需要过滤垃圾评论或隐藏评论时did_report_as_spam与status是最直接的判据。5. 互动数据字段字段类型必填语义has_liked_commentboolean是当前登录用户是否已点赞该评论comment_like_countnumber是该评论收到的点赞总数这两个字段是评论互动数据的最小集合可用于在 UI 上渲染点赞态与点赞数。6. 作者信息字段字段类型必填语义userSavedFeedResponseUser是评论作者的用户对象user是内嵌的完整用户对象而非简单的 ID其结构saved.feed.response.ts:70-86包括必填pk: number、username: string、full_name: string、is_private: boolean、profile_pic_url: string、is_verified: boolean可选friendship_status、has_anonymous_profile_picture、is_unpublished、is_favorite、show_shoppable_feed、shoppable_posts_count、can_be_reported_as_fraud、latest_reel_media、profile_pic_id。这意味着每条预览评论都会携带作者的昵称、头像、隐私状态与认证状态无需额外请求即可渲染评论列表这是 Instagram 在列表场景下刻意内联用户信息以减少请求数的设计。与评论相关接口的结构呼应SavedFeedResponsePreviewCommentsItem并非孤立设计。对比 media-comments.feed.response.ts 中 MediaCommentsFeedResponsePreviewCommentsItem/api/v1/media/{id}/comments/响应可以发现两者字段几乎一致均包含pk、user_id、text、type、created_at、created_at_utc、content_type、status、bit_flags、user、did_report_as_spam、share_enabled、has_translation、has_liked_comment、comment_like_count、parent_comment_id。这一结构高度重复并非冗余而是 Instagram 在评论模块各处复用同一套「评论对象」的体现无论是收藏帖卡片的预览、媒体评论区接口还是评论回复的层级结构其基本元素都遵循相同的数据契约。这种一致性对开发者是利好的你可以为「评论对象」抽象一套统一的解析与类型工具函数同时服务于收藏帖的preview_comments、完整评论区的comments数组以及子评论preview_child_comments大幅降低多场景下的重复建模成本。在 SavedFeed 中实战解析预览评论获取收藏帖数据SavedFeed是 instagram-private-api 中访问收藏帖的入口注册于 FeedFactory 中feed.factory.ts:218-220public saved(): SavedFeed { return new SavedFeed(this.client); }其底层请求位于 saved.feed.ts:14-24async request(): PromiseSavedFeedResponseRootObject { const { body } await this.client.request.send({ url: /api/v1/feed/saved/, qs: { max_id: this.nextMaxId, include_igtv_preview: false, }, }); this.state body; return body; }items()方法则将每页的items[i].media抽取出来返回SavedFeedResponseMedia[]saved.feed.ts:26-29。在 README 的入门流程README.md基础上获取收藏帖并读取预览评论的完整代码如下import { IgApiClient } from instagram-private-api; const ig new IgApiClient(); ig.state.generateDevice(process.env.IG_USERNAME); ig.state.proxyUrl process.env.IG_PROXY; (async () { await ig.simulate.preLoginFlow(); await ig.account.login(process.env.IG_USERNAME, process.env.IG_PASSWORD); process.nextTick(async () await ig.simulate.postLoginFlow()); // 获取第一页收藏帖每条帖子的 SavedFeedResponseMedia 对象 const savedItems await ig.feed.saved().items(); for (const media of savedItems) { console.log(Media ${media.pk}评论数 ${media.comment_count}预览评论 ${media.preview_comments.length} 条); for (const preview of media.preview_comments) { console.log( - [${preview.user.username}] ${preview.text} (likes: ${preview.comment_like_count}, created_at: ${preview.created_at}), ); } } })();注意items()与 README 中「All the feeds are auto-paginated」的语义一致SavedFeed继承自 Feedcore/feed.ts其statesetter 会根据响应的more_available与next_max_id更新分页状态saved.feed.ts:9-12连续调用items()即逐页取回全部收藏帖。完整评论列表与预览评论的配合preview_comments是精简预览其条数受max_num_visible_preview_comments约束。当某条帖子的can_view_more_preview_comments为true时可结合 MediaCommentsFeed 通过ig.feed.mediaComments(media.pk)拉取该帖的完整评论列表底层为GET /api/v1/media/{id}/comments/实现「先预览、后全量」的渐进式加载const savedFeed ig.feed.saved(); const firstPage await savedFeed.items(); for (const media of firstPage) { if (media.can_view_more_preview_comments) { const commentsFeed ig.feed.mediaComments(media.pk); const allComments await commentsFeed.items(); // 完整评论对象 // allComments 与 media.preview_comments 结构同源可统一建模 } }这种「预览 按需全量」的组合是 Instagram 客户端在有限带宽下平衡首屏速度与信息完整度的典型做法SDK 将其完整暴露给开发者。典型应用场景基于上述字段语义预览评论数据可支撑以下典型业务评论情感与文本分析直接消费text、created_at结合user对象中的pk、username构建「用户-时间-内容」分析数据流无需额外请求垃圾与异常评论过滤优先检查did_report_as_spam、status再结合bit_flags判断是否需要降权或隐藏展示评论区 UI 渲染使用has_liked_comment与comment_like_count渲染点赞状态使用parent_comment_id还原评论的层级缩进评论去重与增量归档以pk为主键、comment_like_count为可变指标实现本地评论数据的增量同步。小结SavedFeedResponsePreviewCommentsItem是 instagram-private-api 收藏帖响应中预览评论的数据契约17 个字段完整覆盖了评论的身份、内容、时间、状态、互动与作者信息。结合 SavedFeed 的分页机制与media.preview_comments的嵌套位置开发者可以零成本地将收藏帖中的评论概览接入自己的数据流水线而其与媒体评论区接口的高度同构也意味着你只需建立一份「评论对象」模型即可同时覆盖收藏预览与完整评论两种场景。若需要直接查看类型定义原文可前往 src/responses/saved.feed.response.ts:93-111相关模块索引见 responses 模块文档。赞分享后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载相关推荐instagram-private-api 中 MediaCommentsFeedResponseCaption 接口详解评论流帖文 captions 字段结构与数据解析instagram private api 中 MediaCommentsFeedResponseCaption 接口详解评论流帖文 captions 字段结后端如何彻底搞懂 Dem 故障管理DTC 记录、存储与清除的完整指南如何彻底搞懂 Dem 故障管理DTC 记录、存储与清除的完整指南 在车载 ECU 开发中 Dem故障管理模块 是安全车控操作系统 BSW 的核心组件。E后端instagram-private-api 收藏内容解析SavedFeedResponseMedia 接口数据结构完全指南instagram private api 收藏内容解析SavedFeedResponseMedia 接口数据结构完全指南 本篇指南围绕 Node.js 开源后端上一篇ComfyUI-Impact-Pack完整安装指南快速解锁AI图像增强的4大核心功能下一篇ComfyUI-SUPIR超分辨率插件三步实现AI图像高清放大修复创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考