2016-12-06 89 views
6

我有一個網站,允許用戶鏈接YouTube視頻。我們檢查他們所有的家庭友善。但是,YouTube視頻創作者可以修剪視頻,這意味着更改視頻的開始結束時間,更改顯示的內容。這種類型的變化可以縮小視頻,或者可以恢復爲延長視頻或兩者的組合,這可能導致完全不同的視頻內容集合。如何知道youtube視頻的內容何時隨youtube API發生變化?

我們希望能夠檢測到這些類型的變化,並在實際顯示的幀發生變化時重新檢查視頻。我們不能簡單地查看更改的持續時間,因爲用戶可以撤消修剪,然後重新修剪到完全相同的長度,並且我們不會注意到。修剪也不會更改視頻的發佈日期。

我們使用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內的幀的聲音不會改變。

+0

「Youtube不會爲消費者提供驗證給定videoId中的幀和聲音不會更改的方法。」我無法想象他們(谷歌)真的非常關心。這是一個非常具體的利基邊緣案例。 – ceejayoz

回答

0

你看看是否設置了fileDetails.creationTime屬性?根據documentation這代表:

上傳的視頻文件的創建日期和時間。

recordingDetails.recordingDate屬性也許很有趣。如果指定了這些內容,則每次進行新的上傳時都可能會發生更改...