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

How to download video via viddl-rb?

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

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

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

请注意,从 Youtube 下载视频可能会违反 Youtube 的服务条款;但无论如何,以下代码可能会帮助您做到这一点:

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