MP3ファイルの作成
プレイやん用にCDからMP3ファイルを抽出してみた。
とりあえずcdparanoia(cdparanoia-3.0.9.8nb2)とgogo(gogo-2.39.1)をインストールする。そのままでは面倒なので、以下のスクリプトをmp3extというファイル名で保存する。
#!/usr/bin/env ruby # -*- ruby -*- # $Id: mp3ext,v 1.2 2005/04/23 21:40:26 s-tanaka Exp $ # cdparanoia = '/usr/pkg/bin/cdparanoia' gogo = '/usr/pkg/bin/gogo' if ARGV.size < 3 puts 'mp3ext [filename prefix] [begin track no.] [end track no.]' exit end prefix = ARGV.shift begno = ARGV.shift.to_i endno = ARGV.shift.to_i begno.upto(endno) do |i| filename = "#{prefix}_%02d.mp3" % i pid = fork do IO.popen('-', 'w') do |io| if io # parent STDOUT.close io.dup exec(cdparanoia, i.to_s, '-') else # child exec(gogo, 'stdin', filename, '-silent') end end end Process.waitpid(pid) end
実行例。
$ sudo mp3ext album_name 1 15
このスクリプトでは、テンポラリファイルを作らずパイプ経由でデータの受渡しを行っている。シェルを使わずに直接execしてるからちょっと読みにくいな。これはまぁ仕方ないか。
しかし、MP3ファイルの作成なんて最近の人はGrip経由でやるのが普通かも知れず。