PythonスクリプトからeyeD3でID3タグを読み書きする
前回のエントリで、カーオーディオに正しく認識されるMP3-CD作成のために
- EasyTAGでタグ変換
- シェルスクリプトでリネーム
を行いました。
タグ変換もスクリプトで一括して行いたいと思い、eyeD3というプログラムを見つけたものの、コマンドラインからだと使いづらい。Pythonから利用するのが良さそうだと思い、やってみることにしました。
Pythonは使ったことがないので、Python入門から始まります。
Python初体験
標準入力から読んで標準出力に出す
参考:Python でファイルを読む
print文の最後にカンマがついてるけど、こうすると改行しなくなるらしい。
#!/usr/bin/python import sys for line in sys.stdin: print line,
キーボードから入力して、CTRL-Dで表示。
$ ./a.py hogehoge asdf aaaa hogehoge asdf aaaa
echoからパイプで渡す。
$ echo hogehoge|./a.py hogehoge
ファイルから読む
b.txtというテキストファイルを読む。
#!/usr/bin/python for line in open('b.txt', 'r'): print line,
$ ./a.py hogehoge asdf aaaa
標準入力からファイル名を受け取り、そのファイルを読む。
#!/usr/bin/python import sys file=raw_input() print file for line in open(file, 'r'): print line,
$ echo b.txt|./a.py b.txt hogehoge asdf aaaa
eyeD3を使ってMP3ファイルのID3タグを読む
#!/usr/bin/python import eyeD3 tag=eyeD3.Tag() tag.link("melt.mp3") print tag.getArtist() print tag.getAlbum() print tag.getTitle()
eyeD3.Tag()でオブジェクトを作って、linkでファイルを指定する・・・ってことかな?
オブジェクト指向をよく知らないので細かいことはわかりません。
$ ./id3.py 初音ミク 初音ミクbest メルト
おお、できてる。
トラック番号を読むのはどうするんだろう?
とりあえずここまで。