2010-05-23
sshのポートフォワードを使ってエリア外からradikoを録音するプログラム
sshのポートフォワード機能を使ってエリア外からradikoを録音するRubyプログラムを作成しました。(何番煎じかわかりませんが)
一応Rubyのsshライブラリの使い方のサンプルにもなってます。
begin require "net/ssh" rescue LoadError require "rubygems" require "net/ssh" end def command(cmd) puts cmd system cmd end def change_ext(path, ext, new_ext) File.dirname(path) + "/" + File.basename(path, ext) + new_ext end def flv2mp3(flv) mp3 = change_ext(flv, ".flv", ".mp3") if File.exists? flv command "ffmpeg -i #{flv} #{mp3}" command "rm -f #{flv}" end end def get_radiko_mp3(channel, time) user = "user" host = "host" local_port = 8000 now = Time.now.strftime("%Y-%m-%d_%H-%M") flv = "radiko_#{channel}_#{now}.flv" alist = [["rtmp", "rtmpe://127.0.0.1"], ["port", local_port.to_s], ["playpath", "simul-stream"], ["swfUrl", "http://radiko-dl.ssdl1.smartstream.ne.jp/radiko-dl/1.1/player/player_0.1.2.swf"], ["pageUrl", "http://radiko.jp/player/player.html\##{channel}"], ["app", "#{channel}/_defInst_"], ["flashVer", "LNX 10,0,45,2"], ["stop", time.to_s], ["flv", flv], ] rtmp_cmd = "rtmpdump " + alist.map{|k,v| "--#{k} \"#{v}\""}.join(" ") + " --live" Net::SSH.start(host, user) do |ssh| ssh.forward.local(local_port, "radiko.smartstream.ne.jp", 1935) th = nil ssh.loop(0.1) do th = Process.detach(Process.fork{exec rtmp_cmd}) unless th th.alive? end end flv2mp3 flv end def usage puts "usage: #{__FILE__} channel time" exit 0 end if $0 == __FILE__ if ARGV.length < 2 usage else get_radiko_mp3(ARGV[0], ARGV[1]) puts "bye" end end
sshホストはradikoのエリア内に存在する必要があります。
また、ローカルのパソコンにrtmpdump、ffmpeg及びRubyのNet::SSHライブラリがインストールされている必要があります。
トラックバック - http://d.hatena.ne.jp/saitodevel01/20100523/1274630036
リンク元
- 6 http://www.google.co.jp/search?q=radiko+エリア外&hl=ja&tbo=p&rlz=1B3GGGL_ja___JP229&tbs=qdr:y15&start=20&sa=N
- 2 http://d.hatena.ne.jp/phithon/20100523/1274641734
- 2 http://k.hatena.ne.jp/keywordblog/RTMP
- 1 http://d.hatena.ne.jp/saitodevel01
- 1 http://k.hatena.ne.jp/keywordblog/Ruby
- 1 http://pipes.yahoo.com/pipes/pipe.info?_id=VPw6npu13RGKo15vBRNMsA
- 1 http://search.yahoo.co.jp/search?p=RADIKO+エリア外&ei=UTF-8&n=10&meta=vc=&pstart=1&fr=ie8sc&b=11
- 1 http://webcache.googleusercontent.com/search?q=cache:ro8gFP9r6PoJ:d.hatena.ne.jp/saitodevel01/20100523/1274603287+radiko+ポート&cd=2&hl=ja&ct=clnk&gl=jp
- 1 http://www.google.co.jp/search?client=safari&rls=en&q=emacs+xcode&ie=UTF-8&oe=UTF-8&redir_esc=&ei=Trf9S-eUPMmDcM2SnPQJ
- 1 http://www.google.co.jp/search?client=safari&rls=en&q=radiko+エリア外 mac&ie=UTF-8&oe=UTF-8&redir_esc=&ei=lNn7S6WtM9KHkAXFibnIAg