YouTubeの映像をまとめてMP4でDLしてiPod touchで見る
上の動画をiPodで見たくなった。ということで、まとめてDLするスクリプトを書いてみた。すごいアドホックな処理なので、汎用性とか全く意識してません。
使い方は、保存したい題名とvideo_idをタブセパレーテッドなファイルに書いておく。下のような感じで。ファイル名はlist.tsvとでもしておきましょう。
ドラッグフック Ik3zwrMjjHE ファルカンフェイント Q-KpVcBCc1Q ラーボデバッカ SCW5ymYssp0
で、下のようにコマンドを実行するだけ
ruby fetch_youtube_mp4.rb list.tsv
ソースは貼付けておきます。
#/usr/bin/env ruby # fetch_youtube_mp4.rb require 'open-uri' ar = [] ARGF.each do |line| info = line.split(/\t/) ar.push info throw 'format error' if info.length != 2 info[1].chomp! end ar.each do |info| puts "fetching: #{info[0]} #{info[1]}" t = nil open("http://jp.youtube.com/watch?v=#{info[1]}") do |f| f.each_line do |line| next unless line =~ /var swfArgs = .*"t": "([^"]*)"/ t = $1 end end url = "http://www.youtube.com/get_video?fmt=18&video_id=#{info[1]}&t=#{t}" puts url open(url) do |f| open("#{info[0]}.mp4", 'w') do |mp4| mp4.write f.read end end end