You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否用Youtube API实现实时浏览历史验证?C#项目求方案

可行的实现思路

方案1:利用YouTube Data API获取历史后本地过滤

虽然YouTube Data API没有直接按时间范围筛选历史记录的参数,但可以通过以下步骤实现需求:

  • 调用channels.list接口,获取用户的历史播放列表ID(对应contentDetails.relatedPlaylists.history字段)。
  • 调用playlistItems.list接口,拉取该播放列表的最近一批条目(比如最近50条,通过maxResults参数控制)。
  • 每条历史条目会返回snippet.publishedAt字段,这是该视频被添加到播放历史的时间(即播放完成/开始的时间),在本地筛选出时间在目标时间段内的条目。
  • 对筛选出的条目,调用videos.list接口批量获取视频详情,通过contentDetails.duration判断是否为Shorts(比如时长小于PT60S),或者检查视频URL是否包含shorts/标识,最后统计数量触发提醒。

方案2:直接读取浏览器本地历史数据库

跳过API调用,直接读取浏览器存储的访问记录:

  • 主流浏览器(如Chrome、Edge)的历史记录存在本地SQLite数据库中,比如Chrome的数据库路径为C:\Users\<你的用户名>\AppData\Local\Google\Chrome\User Data\Default\History。
  • 用C#的SQLite库(如System.Data.SQLite)连接数据库(注意:浏览器运行时会锁定数据库,需要先复制一份副本再读取)。
  • 编写SQL查询,筛选出URL包含youtube.com/shorts/且访问时间在最近5分钟内的记录,统计数量即可。
  • 缺点是不同浏览器的数据库结构和路径有差异,需要适配,且需要处理文件锁定问题。

方案3:Chrome扩展+C#本地程序联动

实现实时监控播放行为:

  • 开发一个轻量Chrome扩展,监听YouTube页面的播放事件(尤其是Shorts页面的加载/播放完成事件),记录每条Shorts的播放时间。
  • 通过本地通信方式(如命名管道、WebSocket)将播放数据发送到C#程序。
  • C#程序负责维护时间窗口内的播放统计,当数量超过阈值时触发提醒。
  • 这个方案能更精准捕捉实际播放行为,避免API或历史记录的延迟问题,同时也能练习跨进程通信和浏览器扩展开发。

备选API练习方向

如果原需求的时间过滤确实难以实现,可以调整需求来继续练习API调用:

  • 统计用户最近100条历史记录中的Shorts占比。
  • 拉取用户订阅频道的最新Shorts,统计每日更新数量。
  • 分析用户历史播放记录的总时长,生成周度观看报告。

内容的提问来源于stack exchange,提问作者Maju

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 07:03:16