>> 古い記事: Kate で C/C++シンボルビューアを使う
<< 新しい記事: Ubuntu Studio + Sound Blaster SX / .asoundrc

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

zip化された mp3アルバムを Linux で聴く(やっつけ)

amarok, rhythmbox, songbird とかそのあたりのメジャーなメディアプレイヤーが zip化された mp3アルバムの読み込みに対応しておらず、ネットレーベルなどからダウンロードしてきたアルバムを聴くのが難儀。

一旦一時ファイルに展開して聴く方法もあるが、後で削除し損ねるなどすると余計なディスクスペースを消費したり管理がめんどくさい。

というわけで、fuse-zip を使ってみた。 先に言っておくと、この方法では複数のアルバムには対応できません。

環境

Ubuntu Studio 8.04

インストールなど

fuse-zip は Ubuntu のリポジトリに入っていないので、ソースからコンパイルしてインストールする。

sudo apt-get install libfuse-dev libzip-dev
wget http://fuse-zip.googlecode.com/files/fuse-zip-0.2.7.tar.gz
tar xvf fuse-zip-0.2.7.tar.gz
cd fuse-zip-0.2.7
make
sudo make install

次に、fuse グループに自分を追加。間違えると sudo もできなくなるので慎重に。 /etc/group はバックアップ取っておきましょう。
参考: ユーザをグループに追加するとき、やってはいけないこと - satake7’s memo


やる気のない Rubyスクリプト playzip.rb を書いてみた。自己責任でどうぞ。

#!/usr/bin/ruby

PLAYER = "vlc"
LOG_PATH = File.join( `echo -n $HOME`, "#{File.basename(__FILE__)}.log" )
LOG_VIEWER = "gedit"
TARGET_RE = /\.(ogg|oga|mp3)$/i

zipfile = File.basename(ARGV[0])
basedir = File.dirname(File.expand_path(ARGV[0]))
zipfile_esc = zipfile.gsub(" ", "_")

mountpoint = "__fuse_temp_#{zipfile_esc}"

$log = []

def exec_cmd(cmd)
  $log << "-" * 64
  $log << cmd
  $log << `#{cmd} ; echo $?`
end

#--------------------------------
Dir.chdir( basedir )

exec_cmd %Q! mkdir #{mountpoint} !
exec_cmd %Q! fuse-zip "#{zipfile}" #{mountpoint} !

found = `find #{mountpoint}`.split("\n")

mediafiles = found.select{|fn| fn =~ TARGET_RE }
mediafiles.map!{|fn| %Q!"#{fn.strip}"!}

exec_cmd %Q! #{PLAYER} #{mediafiles.join(" ")} !

exec_cmd %Q! fusermount -u #{mountpoint} !
exec_cmd %Q! rmdir #{mountpoint} !

open( LOG_PATH, "w" ){|f|
  f.puts $log
}

#cmd = %Q! #{LOG_VIEWER} #{LOG_PATH} !
#puts cmd; system cmd

あとはこのスクリプトをファイルタイプで関連付けしておけば、zipファイルを右クリックして playzip.rb に渡して再生できる。

パーミッション絡みか何かで上手く開けないことがあります。直せたら追記・修正します。
以上。

追記 20091125

上記の方法は微妙に不便なので結局使わなくなってしまいました。 代わりに、単機能的で雑な作りですが Ruby/Tk で再生用プログラムを書いてみましたので 人柱でもいいという方はどうぞ。
http://wiki.github.com/sonota/zip-player

>> 古い記事: Kate で C/C++シンボルビューアを使う
<< 新しい記事: Ubuntu Studio + Sound Blaster SX / .asoundrc
** ホームに戻る

コメント

コメントの投稿

管理者にだけ表示を許可する

|
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。