如何通过 youtube API 判断 youtube 视频的内容何时发生变化?
Posted
技术标签:
【中文标题】如何通过 youtube API 判断 youtube 视频的内容何时发生变化?【英文标题】:How can I tell when a youtube video's content changes with the youtube API? 【发布时间】:2017-04-21 18:06:26 【问题描述】:我有一个允许用户链接 youtube 视频的网站。我们会检查它们是否适合家庭。但是,youtube 视频创作者可以修剪视频,这意味着更改视频的开始和结束时间,更改显示的内容。这种类型的更改可以缩小视频,也可以还原为延长视频,或两者结合,这可能会导致一组完全不同的视频内容。
我们希望能够检测到这些变化,并在实际显示的帧发生变化时重新检查视频。我们不能简单地查看更改的持续时间,因为用户可以撤消修剪然后重新修剪到完全相同的长度,而我们不会注意到。修剪也不会改变视频的发布日期。
我们正在使用 youtube api,例如:
https://www.googleapis.com/youtube/v3/videos?part=snippet%2CcontentDetails%2CrecordingDetails%2Cstatus&id=[videoId]&key=[apiKey]
这为我们提供了大量数据,包括:
Duration - this doesn't always change when a video is trimmed (undo trim, trim again)
Title
Etag - this changes all the time
Thumbnails - These don't change when you trim
PublishedAt - this doesn't change when you trim
Etag 的变化确实表明发生了变化,但它的变化太频繁了——每当标题发生变化时,以及许多其他类型的变化也是如此。所以这会错误地提醒我们不需要审核的更改。
我们还考虑过抓取随机帧并随着时间的推移对它们进行比较,但没有公开的 API。
那么,我们如何使用 API 来检测视频的内容发生了变化呢?
我在这里提问是因为 youtube 建议使用我在这个问题中包含的标签在这里提问:https://developers.google.com/youtube/v3/support
另外,请注意,如果这个问题不能用现有的 API 解决,这意味着向网站提交 youtube 链接的人可以任意更改视频的内容,而网站却无法知道它在合理的方式。即 Youtube 没有给消费者一种方法来验证给定 videoId 中的帧和声音不会改变。
【问题讨论】:
“Youtube 没有给消费者一种方法来验证给定 videoId 中的帧和声音不会改变。”我无法想象他们(谷歌)真的那么在乎。这是一个非常具体的利基边缘案例。 【参考方案1】:您是否查看了是否设置了 fileDetails.creationTime 属性?根据documentation,这代表:
上传视频文件的创建日期和时间。
recordingDetails.recordingDate 属性可能也很有趣。如果指定了这些,它们可能会在每次进行新的上传时发生变化...
【讨论】:
以上是关于如何通过 youtube API 判断 youtube 视频的内容何时发生变化?的主要内容,如果未能解决你的问题,请参考以下文章
突然在 YouTube V3 API 上获得 Oauth 2.0 同意的 403(禁止)
如何通过 Android 应用程序的链接重定向到 youtube 应用程序?
用于获取频道上所有视频的 Youtube Api(不再可用错误)