我正在使用yt gem for my rails app,以获取youtube帐户的所有视频。
我正在使用的代码是
account = Yt::Account.new access_token: @user.youtube_access_token
youtube_videos = []
@videos = account.videos
@videos.each do |video|
res1 = {}
res1["provider"] = response["provider"]
res1["video_id"] = video.id
res1["url"] = "https://www.youtube.com/watch?v=" + video.id
res1["thumbnail"] = video.thumbnail_url
res1["title"] = video.title
res1["description"] = video.description
res1["published_at"] = video.published_at
res1["duration"] = video.duration
youtube_videos << res1
end
一些基本的Time.now()日志显示@videos = account.videos
语句需要大约1秒才能完成并返回一个Yt :: Collections :: Videos对象,这是预期的。但是,对于每个存在的视频,后续@videos.each
循环大约需要1秒。这在我的应用中添加了太多延迟。
我的解释是@videos.each
中的每次迭代都会导致单独的API调用,这就是循环需要花费很多时间才能执行的原因。但是我不确定这个事实。
有没有办法加快从帐户中获取所有视频的过程?