我不仅要抓取 YouTube 的发布日期,还要抓取视频的上传日期。我的公司会在视频公开发布前几天或几周将视频上传为私人列表。查询 part=snippet 将返回“publishedAt”项,即视频公开发布的时间。但我没有看到类似的“uploadedAt”项目。当我转到 YouTube 上的视频编辑页面时,我可以看到上传日期(目前我正在手动将其复制到我的电子表格中),但它似乎无法在 YouTube APIv3 中访问。
我是否遗漏了什么,或者我是否正确地假设没有办法刮取视频的上传日期?
我不仅要抓取 YouTube 的发布日期,还要抓取视频的上传日期。我的公司会在视频公开发布前几天或几周将视频上传为私人列表。查询 part=snippet 将返回“publishedAt”项,即视频公开发布的时间。但我没有看到类似的“uploadedAt”项目。当我转到 YouTube 上的视频编辑页面时,我可以看到上传日期(目前我正在手动将其复制到我的电子表格中),但它似乎无法在 YouTube APIv3 中访问。
我是否遗漏了什么,或者我是否正确地假设没有办法刮取视频的上传日期?
不幸的是,一旦私人视频更新为公开,publishedAt
日期就会从视频上传日期更新到公开日期。此时,上传日期不再直接在 API 中可用。
来自 YouTube 的文档snippet.publishedAt
:
视频发布的日期和时间。请注意,此时间可能与上传视频的时间不同。例如,如果视频作为私人视频上传,然后在稍后公开,则此属性将指定视频公开的时间。
有几个特殊情况:
- 如果视频作为私有视频上传,并且视频元数据由频道所有者检索,则属性值指定上传视频的日期和时间。
- 如果视频作为未列出的视频上传,则属性值还指定上传视频的日期和时间。在这种情况下,任何知道视频唯一视频 ID 的人都可以检索视频元数据。
该值以 ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) 格式指定。
作为替代方案,您可以考虑使用基于浏览器的工具(如 Selenium)抓取 YouTube Studio 仪表板(或使用 BeautifulSoup 之类的工具来解析仪表板 HTML)以获取您正在寻找的数据。