我正在使用YouTube API检索视频,但我想排除使用默认(灰色)图像作为缩略图的结果。因为上传者没有选择缩略图吗?
这样做的最佳方法是什么?因为我认为数据中没有标志来反映这一点。
我正在使用youtube api的v3。
感谢。
答案 0 :(得分:0)
在最近的一个项目中,我发现了一种hacky但有用的方法,可以从YouTube API获取每个视频的相关缩略图。
在每个视频记录返回的缩略图中,看起来JSON中的第四个缩略图可靠地是视频的识别帧。
下面,在我的fetch_movie_history方法中,我将第四个电影缩略图的网址保存到我的电影记录中,以便我以后可以显示它。
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
这是我在页面上使用的缩略图的示例截图(在样式化之前):
底部的描述来自API返回的视频记录,因此您可以看到它与缩略图很好地匹配。
希望这有帮助!祝你好运。
答案 1 :(得分:0)
我找到了另一个解决方案。我实现了一个节点服务来读取图像标题并将大小与“无图像”图像的大小进行比较,从而在从我的数据库中找到时删除记录。