2008年9月13日土曜日

mtp-sendtrコマンドでgigabeatSに転送してみた[mtp-tools]

<追記>
mtp linux なんちゃら……でググってきた人へ
mpt-***コマンドの使い方を間違えてる気がするので、以下の内容はあくまで参考にしてください。
なんとなく、こうするんだろうなー、というのは分かっちゃいるんですが、本腰入れて試せていません orz

MTPデバイスであるgigabeat Sにmtp-sendtrコマンドを使ってmp3ファイルを転送してみたテスト。
(本文中では言ってないけど、ひとつコマンド実行する度に一度PCから外さなきゃ次が実行できない妙な問題のせいで、無駄に時間食ってます。)

転送してみたファイルはこちらからいただきました
http://www.teslakite.com/freemp3s/paprika/

$ mtp-sendtr Desktop/byakkoya-no-musume.mp3 Music/
libmtp version: 0.2.6.1

PTP: Opening session
Desktop/byakkoya-no-musume.mp3,Music/,(null),(null),(null),(null),00,0
Sending track Desktop/byakkoya-no-musume.mp3 to Music/
type:mp3,1
Title> 白虎野の娘
Album> パプリカ
Artist> 平沢進
Genre>
Track number>
Year> 2006
Length> 287
Sending track:
Codec: ISO MPEG-1 Audio Layer 3
Title: 白虎野の娘
Album: パプリカ
Artist: 平沢進
Year: 2006
Length: 287
Sending track...
Progress: 4593804 of 4593804 (100%)
New track ID: 16778596
PTP: Closing session
$

これで、mp3ファイルは確かに転送が出来たし、再生も大丈夫だった。
ただ、いくつか問題があったので、書き留めておく。

基本的に楽曲ファイル自体のID3v3などメタデータは読まずに、そういったタイトル情報などはファイル転送時に一緒にデバイス側に伝える様。
エラーメッセージと共に表示されるmtp-sendtrのusageはこんな感じ。
usage: sendtr [ -D debuglvl ] [ -q ] -t <title> -a <artist> -l <album>
-c <codec> -g <genre> -n <track number> -y <year>
-d <duration in seconds> <local path> <remote path>

上記の実行結果のとおり、<local path>と<remote path>だけを与えた場合でもコマンドは通るが、途中でタイトル情報など訊かれる。これは、飛ばしちゃっても良かったりする。
ただし、gigabeat側の問題だと思うのだが、アルバム情報だけは認識してくれず、gigabeat上では「アルバム情報なし」となってしまっていた。この問題にはWindows+WMP環境で使っていた時も悩まさせられた。

また、<remote path>に与える、転送先のgigabeat内でのパス指定がよく分からなかったので、とりあえずgigabeat内のMusicディレクトリという意味で「Music/」としてみたつもりだったのだけれど、実際に転送されたファイルはgigabeat内の「Pictures/My Music/Music」というファイルパスになってしまっていた(Musicという名のファイルとして転送して保存されてしまった)。Rhythmboxで転送した時もそうだったが、なぜか有無を言わさず「Pictures/My Music/」に転送されてしまう。Picturesディレクトリと同階層にMusicディレクトリがあり、Win環境でWMPを使い転送した場合はそちらに入る。libmtpに問題があるのだろうか?

それと、アルバムアートは別途mtp-albumartコマンドで転送する必要がある。
Usage: albumart -i <fileid/trackid> -n <albumname> <imagefile>
このコマンドを実行する前に、MTPデバイス中でのファイルのIDを調べる必要がある。トラックIDとファイルIDの2種類あるがどちらでも、良いらしい。
トラックIDを調べるなら、mtp-tracksコマンド
ファイルIDを調べるなら、mtp-fileコマンド
でそれぞれ、MTPデバイス内のトラック/ファイルの詳細な一覧が出力される。その中にIDも書かれているので、それを使う。
出力結果をファイルに書き出して、テキストエディタでファイル名/タイトルで検索するのが楽だろう。
$ mtp-tracks > trackslist.txt
Track ID: 16778596
Title: 白虎野の娘
Artist: 平沢進
Origfilename: Music
Track number: 0
Duration: 287000 milliseconds
File size 4593792 bytes
Filetype: ISO MPEG-1 Audio Layer 3
Use count: 2 times

こんな感じで出力されるので、16778596をmtp-albumartコマンドで使うわけだ。
$ mtp-albumart -i 16778596 -n "パプリカ" albumart.jpg

これで、gigabeat側でアルバムアートが表示できるようになった。しかも、mtp-albumartコマンドを使うとアルバム情報が上書きされるのか、「アルバム情報なし」だったのがちゃんと「パプリカ」と表示されるようになった。
でも、画像が劣化してる気がするのには目を瞑っとこう……

0 件のコメント: