【发布时间】: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 中的帧和声音不会改变。”我无法想象他们(谷歌)真的那么在乎。这是一个非常具体的利基边缘案例。
标签: video youtube youtube-api youtube-data-api