根据你要保存的评论对象,需要选择不同的备份方法:

  • 你发布的评论: 使用 Google Takeout 和 YouTube 评论记录。
  • 视频或频道中的评论和回复: 使用 YouTube Data API,然后通过分页获取结果。
  • 审核或客服记录: 保存文本、作者、视频详情、直接链接、回复、状态和采集时间。

这种区分可以避免把个人账户导出误认为整个频道的评论归档。

想要归档完整的 YouTube 公开资料,而不是单独的评论文件?SocialGuardian 支持 YouTube,归档仅对你的账户保持私密,并表示你可以随时导出完整归档(查看归档选项)。开始备份

1. 选择需要保存的记录

先回答一个问题:你要保存的是自己发布的公开评论,还是你管理或审查的视频中的观众评论?

YouTube 的“评论记录”可以让你查看自己在 YouTube 上发布的公开评论,并通过点击或点按评论内容打开评论发布的原始位置(YouTube 帮助)。这对于查找自己的评论及其原始背景很有用。

Google Takeout 是账户级别的导出方式。导出方法对比显示,它不同于视频或频道导出:Takeout 导出的是你发布的评论,而不是其他观众在你视频下发布的评论(导出方法对比)。

对于观众评论,请使用 YouTube Data API 的 commentThreads.list。它可以按 videoId 或 allThreadsRelatedToChannelId 进行筛选(YouTube Data API)。

2. 使用 Google Takeout 备份你发布的评论

对于个人评论归档,可使用以下流程:

  1. 打开 takeout.google.com。
  2. 取消选择所有产品,然后选择 YouTube 和 YouTube Music。
  3. 在 YouTube 下的数据选项中选择 评论。
  4. 选择导出格式和文件大小,然后创建导出。

这些步骤来自经过审核的仅评论 Takeout 流程(导出方法对比)。Google 也记录了常规流程:登录、打开 Google Takeout、取消选中不需要的产品、使用 包含的所有数据(All data included)缩小产品范围(可选),然后选择 下一步(Next step)(Google Takeout 帮助)。

Takeout 支持通过电子邮件或云存储交付,支持一次性或定期导出,文件格式包括 ZIP 或 TGZ,并有归档大小限制(Google Takeout 帮助)。Google 表示,归档创建可能需要几分钟到几天,大多数人会在当天收到链接,较大的下载内容可能会拆分为多个归档(Google Takeout 帮助)。

记录提交导出请求的日期,以及收到或下载归档的日期。Google 警告,数据文件可能不包含从提交下载请求到创建归档期间发生的更改,因此应将每次 Takeout 视为一个快照(Google Takeout 帮助)。下载数据不会从 Google 的服务器中删除这些数据(Google Takeout 帮助)。

3. 使用 YouTube Data API 导出视频或频道评论

对于其他观众发布的评论,应围绕 commentThreads.list 建立归档:

  1. 对于单个视频的评论主题,选择 videoId;对于与某个频道相关的主题,选择 allThreadsRelatedToChannelId。
  2. 使用 1 到 100 之间的 maxResults 请求一个页面。
  3. 持续使用 nextPageToken,直到没有下一页。
  4. 保存返回的 items 和响应中的 pageInfo,包括 totalResults 和 resultsPerPage。
  5. 如有需要,使用 searchTerms 将结果限制为包含指定词语的评论,并将 textFormat 选择为 html 或 plainText。

YouTube API 参考文档说明了筛选条件、页面大小、分页字段、搜索筛选器和文本格式(commentThreads.list)。将页面令牌和总数与导出结果一起保存,可以证明本次运行覆盖了多少数据,而不只是保留一批评论行(commentThreads.list)。

在将结果标记为完成前,先检查访问权限。API 文档记录了视频禁用评论时的 commentsDisabled 403 错误,以及请求缺少权限时的 insufficient permissions 错误(commentThreads.list)。将这些失败与归档一起记录,并将受影响的视频或频道标记为不完整。

每次 commentThreads.list 调用消耗 1 个配额单位。额外的分页请求也会产生该方法的费用;启用 YouTube Data API 的项目对所有其他端点默认分配每天 10,000 个单位;每日配额在太平洋时间午夜重置(YouTube 配额指南)。

如果你想要定期归档公开资料,而不是手动组装每次导出,SocialGuardian 表示其自动备份每天运行一次,并包含受支持平台上的内容和互动,包括 YouTube(SocialGuardian)。设置资料备份

4. 保存回复和审核背景

顶级评论主题响应并不保证包含全部回复。评论保存指南指出,完整获取回复可能需要使用 comments.list,并建议保存父子关系(评论保存指南)。

使用以下回复流程:

  1. 从评论主题记录中保存顶级评论及其评论 ID。
  2. 使用该评论 ID 作为 parentId 调用 comments.list。
  3. 每页请求最多 100 条结果,并使用 pageToken 获取后续页面。
  4. 保存每条回复及其父评论 ID。

YouTube API 记录了 parentId、1 到 100 的页面大小,以及 comments.list 的 pageToken 分页方式(comments.list)。文档还说明,YouTube 目前支持对顶级评论进行回复;未来可能支持对回复进行回复(comments.list)。

对于已授权的请求,commentThreads.list 可以按 moderationStatus 筛选 heldForReview、likelySpam 或 published;默认值为 published(commentThreads.list)。当审核背景很重要时,将该状态与采集时间一起保存。如果 API 报告评论已禁用或权限不足,不要将本次运行标记为完成(commentThreads.list)。

5. 构建仍然有用的归档

没有视频和主题背景的评论行,之后很难审查。保存指南建议保留:

  • 评论文本
  • 可见的作者姓名
  • 视频标题
  • 评论直接链接
  • 采集日期
  • 当记录用于客服时,保留相关回复和问题状态

这些字段来自实用的评论保存指南(评论保存指南)。对于 API 导出,还应添加评论 ID、父评论 ID、请求筛选条件、页面令牌和响应总数,以便保留关系和采集范围(commentThreads.list;comments.list)。

选择 CSV 或 JSON

  • CSV: 当归档主要用于电子表格排序和分享时选择它(导出方法对比)。
  • JSON: 当需要层级化的评论主题结构和用于程序处理的元数据时选择它(导出方法对比)。

如果使用 CSV,请将父评论 ID 保存在单独的列中。如果使用 JSON,请在结构中保留评论主题和回复的关系。无论采用哪种格式,都要将直接链接和采集日期与记录一起保存(评论保存指南)。

当你点击或点按评论时间戳时,YouTube 会创建高亮评论链接;地址栏中的链接会指向该评论及其主题(YouTube 帮助)。要检查保存的链接,请在隐私窗口中打开它,并确认目标主题被高亮,而不是只打开了视频(评论保存指南)。

对于 API 运行,将保存的项目数量与 pageInfo.totalResults 进行比较,保留 resultsPerPage,并在仍有更多页面时保留 nextPageToken(commentThreads.list)。对于回复,使用 comments.list 的分页和父评论 ID重复相同的检查(comments.list)。

6. 让备份流程可以重复执行

实用的策略包括三个部分:

  1. 选择范围: 对你发布的评论使用 Takeout;对视频或频道主题使用 API。
  2. 选择频率: Takeout 支持一次性和定期导出,因此当单个快照不够时,可以使用定期导出(Google Takeout 帮助)。对于 API 任务,记录每次运行是每日、每周,还是与审核或发布事件相关。
  3. 验证每次运行: 记录采集时间、页面总数、分页证据、访问失败,以及至少一次永久链接检查(Google Takeout 帮助;commentThreads.list;评论保存指南)。

备份保存的是该时间点采集到的内容。YouTube 表示,如果评论发布在已删除的视频下,或因违反政策被 YouTube 移除,该个人评论不会出现在“评论记录”中(YouTube 帮助)。因此,当你需要历史记录时,采集时间和范围都很重要。

SocialGuardian 表示,你可以分享公开的 @handle,自动归档内容,并在无需密码或登录的情况下下载或恢复内容(SocialGuardian)。从公开资料开始

常见问题

如何备份 YouTube 评论?

对于你发布的评论,使用 Google Takeout。对于与视频或频道相关的评论,使用 commentThreads.list,通过 nextPageToken 分页;需要获取回复时,使用带有 parentId 的 comments.list(导出方法对比;commentThreads.list;comments.list)。

可以导出 YouTube 视频中的全部评论吗?

你可以使用 videoId 请求视频的评论主题,每页请求最多 100 条结果,并持续使用 nextPageToken。在将归档标记为完成前,检查评论是否被禁用或是否存在权限错误(commentThreads.list)。

Google Takeout 会导出我不拥有的视频中的评论吗?

经过审核的导出对比说明,Takeout 导出的是你发布的评论,而不是其他观众在你视频下发布的评论。对于视频或频道评论主题,请改用 YouTube Data API(导出方法对比;commentThreads.list)。

如何保存 YouTube 评论回复和审核背景?

先获取评论主题,然后使用顶级评论作为 parentId 调用 comments.list,遵循分页并保存父子关系。对于已授权的请求,保存 heldForReview、likelySpam 或 published 等 moderationStatus(comments.list;commentThreads.list)。

应该将 YouTube 评论保存为 CSV 还是 JSON?

使用 CSV 进行电子表格排序和分享。使用 JSON 保存层级化的主题结构和用于程序处理的元数据(导出方法对比)。

YouTube API 能获取主题中的每一条回复吗?

不要假设一次 commentThreads.list 响应包含所有回复。使用带有 parentId 的 comments.list 并遵循 pageToken 分页;YouTube 当前记录的是对顶级评论的回复(评论保存指南;comments.list)。

应多久备份一次 YouTube 评论?

选择与评论或审核记录变化速度相匹配的已记录频率。Google Takeout 支持一次性和定期导出,而 API 流程应记录每次运行是每日、每周还是基于事件(Google Takeout 帮助)。

YouTube 评论被删除后还能恢复吗?

在删除前保存副本,并保留评论文本、作者、视频标题、直接链接、回复和采集日期。YouTube 表示,已删除视频中的评论,或因违反政策而被移除的评论,不会出现在“评论记录”中(评论保存指南;YouTube 帮助)。