こえ部の声リストを作成するRubyスクリプト
俺はたまーにこえ部を聞いている。
しかし、w3mだと聞けないので声リストを抜き出すスクリプトを作ってしまった。Ruby 1.9対応。出力はUTF-8。
ついカッとなってやってしまった。反省はしていない。
# -*- coding: utf-8 -*- require 'rubygems' require 'json' require 'open-uri' url = ARGV.first #html = File.read("/tmp/test.html", :encoding=>"UTF-8") html = open(url, "r:UTF-8").read json = html[ /var songs += (.+);$/, 1] songs = JSON.parse(json) songs.each do |song| puts "Title: #{song["topic_title"]}" puts "Author: #{song["author"]["full_name"]}" puts "Description: #{song["description"]}" puts "File: #{song["mp3"]}" puts end
実行例
$ ruby19 koebu-extract.rb "http://koebu.com/topic/%E3%80%90%E5%B7%A1%E9%9F%B3%E3%83%AB%E3%82%AB%EF%BD%A5%E9%8F%A1%E9%9F%B3%E3%83%AA%E3%83%B3%E3%80%91%E3%80%8CANTI%20THE%E2%88%9EHOLi" Title: 【巡音ルカ・鏡音リン】「ANTI THE∞HOLiC」【歌ってみよう!】 Author: 葩畄 Description: ANTI THE∞HOLIC 歌ってみましたww えと、早口無理ですwww無謀すぎましたwwwwなので、ところどころ抜けたりしてますが…許してくださいwwwww うるさい感じの仕上がりですwww 音量注意かもwww File: http://koebu.s3.amazonaws.com/mp3/b/bf/bfac/bfac6175c3913b3c52002be4a762e030458431ff.mp3 Title: 【巡音ルカ・鏡音リン】「ANTI THE∞HOLiC」【歌ってみよう!】 Author: らるぅ Description: ANTI THE∞HOLiC歌ってみました!! 早口苦手なのでカミすぎですねwww 暴走Pさん大好きなんですが曲が難しすぎるーー File: http://koebu.s3.amazonaws.com/mp3/c/cc/cc1c/cc1c85c3057a57cfa708066cb0bed835feed2f14.mp3
ちなみに、件のJSONは以下のようなハッシュの配列である。
{"mp3"=> "http://koebu.s3.amazonaws.com/mp3/b/bf/bfac/bfac6175c3913b3c52002be4a762e030458431ff.mp3", "topic_id"=>"56115e19f222f4472a1cadf98d55c407ac88d590", "duration"=>307, "author"=> {"icon"=>"1b00f43cea62dcc3abf51a0241a7466707b05e65", "icon_format"=>"jpg", "full_name"=>"葩畄", "screen_name"=>"harurion"}, "created_date"=>1249443797, "topic_video"=>nil, "description"=> "ANTI THE∞HOLIC 歌ってみましたww えと、早口無理ですwww無謀すぎましたwwwwなので、ところどころ抜けたりしてますが…許してくださいwwwww うるさい感じの仕上がりですwww 音量注意かもwww", "topic_image"=>nil, "rate"=>"58", "topic_link"=> "/topic/%E3%80%90%E5%B7%A1%E9%9F%B3%E3%83%AB%E3%82%AB%EF%BD%A5%E9%8F%A1%E9%9F%B3%E3%83%AA%E3%83%B3%E3%80%91%E3%80%8CANTI%20THE%E2%88%9EHOLi", "topic_title"=>"【巡音ルカ・鏡音リン】「ANTI THE∞HOLiC」【歌ってみよう!】", "playcount"=>202, "id"=>"bfac6175c3913b3c52002be4a762e030458431ff", "topic_count"=>"2", "gender"=>"female"}