我想根据我的数据库中的链接从youtube.com
下载视频文件。
我找到了gem viddl-rb
,但我只看到了在文档中下载的控制台方式 - viddl-rb youtube.com/watch/myvideoid
如何在控制台中使用require viddl-rb
下载视频?
答案 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