如何通过viddl-rb下载视频?

时间:2015-01-29 04:17:01

标签: ruby youtube

我想根据我的数据库中的链接从youtube.com下载视频文件。

我找到了gem viddl-rb,但我只看到了在文档中下载的控制台方式 - viddl-rb youtube.com/watch/myvideoid

如何在控制台中使用require viddl-rb下载视频?

1 个答案:

答案 0 :(得分:5)

请注意,从Youtube下载视频可能会违反Youtube的ToS;但无论如何,下面的代码可能会帮助你做到这一点:

require 'open-uri'
require 'viddl-rb'

YouTubeLinks = %w[
  https://www.youtube.com/watch?v=Z8wLQ3NCBgg
  https://www.youtube.com/watch?v=QH2-TGUlwu4
]

youtube_hashes = YouTubeLinks.map do |link|
  ViddlRb.get_urls_names(link).first
end

youtube_hashes.each do |yt|
  puts "Downloading: #{yt[:name]}"

  File.open(yt[:name], 'wb') do |video_file|
    open(yt[:url]) { |video| video_file.write video.read }
  end
end
相关问题