goo blog サービス終了のお知らせ 

管理人の妄語(BLOG)

2年ぶりに再開

mp3ファイルのタグの取り扱い

2018-07-07 21:17:01 | LINUX
久しぶりに記事を書こうとしたらパスワードから何からすっかり忘れてしまっている。大昔のデータをひっくり返して、ようやくパスワードを発見し記事投稿モードに入ることができた。それにしても最近どうしてこう何から何まで忘れるのだろうか。老人ボケも近い。

とかなんとか言いながら、最近ちまたで評判の vscode とか触ってみたりしている。このエディタはマイクロソフト製だが、結構快適に動作し、LINUXでもWindowsでも動く。いろいろな支援プラグインもあるのでこれから人気が出るかもしれない。この間も会社で会議していたら、会社の若手がいきなり議事メモを vscode で取り出したので、ちょっとびっくりした。若い世代にも人気らしい。マイクロソフトにしては結構ヒット作か。

さて本題。最近 Arch Linux ベ―スの Manjaro というディストリビューションを触りだした。「Arch Linux は難しいし、すぐ壊れるので初心者はやめとけ」というのでずっと敬遠していたのだが、Manjaro はインストーラがよくできていて簡単にインストールできるし、触ってみると xfce4 ベースでなかなか軽くて快適である。で、今までの ubuntu のツールをこちらに移植することをやりだしたのだが、この中で我が家の音楽録音ツールの整理にずっと使っていた id3v2 の動作が、ちょっとだけ違う。英語やフランス語のタグはよいのだが日本語だと文字化けする。最近 Linux の環境でもついぞみられなくなった UTF系の文字化けの感じである。ありゃりゃ、というわけでいろいろ調べていたらSVXさんのこんな記事をみつけた。症状が私のとぴったり同じである。記事によると、どうももともとの id3v2 が ID3V2.3 の mp3 ファイルにタグを書き込むときに、本当は UTF-16 で書かないといけないのに UTF-8 で書いてしまっているというバグがあるらしい。そう思って ubuntu のパッケージ情報を詳細調査したら、id3v2_0.1.12+dfsg-1 なぞとなっていてなんだかパッチがあたっているっぽい感じである。man を見たら日付が 2000 年である。こんな古いのに誰もアップデートしないとは、もうこんなの誰も使わないのかな。

で、svxさんにならってタグ設定ツールを書かないとダメかな、と思って python 周りを調べだしたら、ちゃんと eyeD3 というツールがあってパッケージも存在していることが判った。仕様を調べるとほぼ id3v2 とコンパチである。で、日本語周りはこっちに乗り換えることにした。こいつを使うときれいに入った。(たしかに、これがあればほぼ困らんな。)

$ eyeD3 -h
usage: eyeD3 [-h] [--version] [-l LEVEL[:LOGGER]] [--profile] [--pdb]
             [--exclude PATTERN] [--fs-encoding ENCODING] [-L] [-P NAME]
             [-C FILE] [--backup] [-Q] [--no-color] [--no-config] [-a STRING]
             [-A STRING] [-b STRING] [-t STRING] [-n NUM] [-N NUM]
             [--track-offset N] [--composer STRING] [-d NUM] [-D NUM]
             [-G GENRE] [--non-std-genres] [-Y YEAR] [-c STRING]
             [--rename PATTERN] [-1] [-2] [--to-v1.1] [--to-v2.3] [--to-v2.4]
             [--release-date DATE] [--orig-release-date DATE]
             [--recording-date DATE] [--encoding-date DATE]
             [--tagging-date DATE] [--publisher STRING] [--play-count <+>N]
             [--bpm N] [--unique-file-id OWNER_ID:ID]
             [--add-comment COMMENT[:DESCRIPTION[:LANG]]]
             [--remove-comment DESCRIPTION[:LANG]] [--remove-all-comments]
             [--add-lyrics LYRICS_FILE[:DESCRIPTION[:LANG]]]
             [--remove-lyrics DESCRIPTION[:LANG]] [--remove-all-lyrics]
             [--text-frame FID:TEXT] [--user-text-frame DESC:TEXT]
             [--url-frame FID:URL] [--user-url-frame DESCRIPTION:URL]
             [--add-image IMG_PATH:TYPE[:DESCRIPTION]]
             [--remove-image DESCRIPTION] [--remove-all-images]
             [--write-images DIR]
             [--add-object OBJ_PATH:MIME-TYPE[:DESCRIPTION[:FILENAME]]]
             [--remove-object DESCRIPTION] [--write-objects DIR]
             [--remove-all-objects]
             [--add-popularity EMAIL:RATING[:PLAY_COUNT]]
             [--remove-popularity EMAIL] [--remove-v1] [--remove-v2]
             [--remove-all] [--remove-frame FID] [--max-padding NUM_BYTES]
             [--no-max-padding] [--encoding latin1|utf8|utf16|utf16-be]
             [--force-update] [-v] [--preserve-file-times]
             [PATH [PATH ...]]


Manjaro では python-eyed3 と python2-eyed3 の2つのパッケージがあってどっちを使うか迷った。python は 3.6 である。どっちでもいいのかな、と思って最初に python2-eyed3 をいれたらなんとかのモジュールが無い、とかいって文句を言われる。ちょっと追いかけてみたが根が深そうだったのでやめて python-eyed3 に乗り換えたら、すんなり動いた。
ubuntu では python3-eyed3 があったので、これにした。こっちは何の問題もなかった。

ちょっと手間取ったが Arch Linux の様子と MP3 ツール事情を知るのには役に立ったかな。

最新の画像もっと見る