2013-07-18 40 views
2

我正在使用YouTube API檢索視頻,但我想排除使用默認(灰色)圖像作爲縮略圖的結果。作爲上傳者沒有選擇縮略圖嗎?如何檢測YouTube視頻是否沒有縮略圖並僅使用默認圖像?

什麼是最好的方法來做到這一點?因爲我認爲數據中沒有標誌可以反映這一點。

我使用的YouTube的API的V3。

謝謝。

+0

看起來帶有「灰色」圖片的視頻不再存在於YouTube上,因某種原因被刪除,版權或所有者將其刪除。 –

+0

沒有辦法檢查我所知道的視頻的狀態。您將不得不再次運行搜索,以查看是否不再返回視頻。有沒有檢查狀態的方法? –

回答

0

在最近的一個項目中,我發現了一個黑客但有用的方法來從YouTube API獲取每個視頻的相關縮略圖。

在每個視頻記錄返回的縮略圖中,看起來JSON中的第四個縮略圖可靠地是視頻的識別幀。

下面,在我的fetch_movie_history方法中,我將第四個電影縮略圖的URL保存到我的電影記錄中,以便稍後顯示它。

def fetch_movie_history 

    watch_history = self.youtube_client.watch_history 
    watch_history.videos.each do |video| 
     movie = Movie.find_or_create_by(unique_id: video.unique_id) 
     movie.title = video.title 
     movie.description = video.description 
     movie.url = video.player_url 
     movie.thumbnail = video.thumbnails[3].url 
     movie.save 
     self.movies << movie 
    end 
end 

這是一個例子截圖我我的網頁上使用的縮略圖(造型前):

example of thumbnail from fourth record in YouTube API JSON

底部的描述是從API返回的錄像,所以你可以看到它與縮略圖很好地匹配。

希望這會有所幫助!祝你好運。

+0

感謝您的信息,我找到了另一種解決方案。我實現了一個節點服務來讀取圖像頭,並將大小與「無圖像」圖像的大小進行比較,從而在從我的數據庫中找到記錄時刪除記錄。 –

0

我找到了另一種解決方案。我實現了一個節點服務來讀取圖像頭,並將大小與「無圖像」圖像的大小進行比較,從而在從我的數據庫中找到記錄時刪除記錄。

+0

聽起來很棒。你能分享代碼嗎? –

相關問題