サントラを買ったのでそれの整理をしたい!

はじめに

Steamで新たにサントラを買いました。↓宣伝。買え。
store.steampowered.com

さて、iPhoneに取り込みたいのでiTunesにいれたりなんやかんやなんやかんやする必要があります。ですが、サントラって買った時だいたい「[トラック番号][何らかの区切り文字][タイトル].mp3」になっているじゃないですか。

f:id:Amesiorine271108:20210112035538p:plain
トラック番号がファイル名に入っている例

iTunesに取り込むとき直すの面倒じゃん?っていう思いがあったので一括で処理してもらいました。
どうせ3歩歩いたら忘れるので自分用の忘備録です。

コード

import os
import glob
import re
from mutagen.easyid3 import EasyID3

path = r"R:\Game\steamapps\music\ATRI My Dear Moments Original Soundtrack"
files = glob.glob(path + r"/*.mp3")
pattern = '_'

total_track_num = len(files)
album = "ATRI My Dear Moments Original Soundtrack"

for file in files:
    f = os.path.basename(file)
    l = re.split(pattern, f, maxsplit=1)
    track_num = l[0]
    nf = os.path.dirname(file) + "\\" +l[1]
    os.rename(file, nf)
    
    tags = EasyID3(nf)
    tags["tracknumber"] = "{}/{}".format(track_num, total_track_num)
    tags["album"] = album
    tags.save()

対象のディレクトリをpathに入れました。
んで、そのフォルダ内にはアルバムアートワークも入っているのでmp3に限定。
今回のサントラのタイトルは「01_海中都市.mp3」「02_希望の光.wav」みたいな感じなので区切り文字は「_」。(空白だったらどうしたんだろうね。)

この辺コードの書き方ひどいなーって感じするというか無駄じゃんって後から気付いたけど、ディレクトリ名取得したりトラックナンバー取ったりして、os.rename(file, nf)ファイル名の変更。

EasyID3ってやつ使って、トラックナンバーとアルバム名を入力&保存。
簡単だね!手作業でやるのと時間変わらないけど2度目以降は楽になるよね。(願望)なって。(懇願)

余談「Steamのサウンドトラックの再ダウンロード」

Steamサウンドトラックの再ダウンロードはライブラリからサウンドトラックを選択してゲームを再ダウンロードするのとおんなじ要領でやるとできる。忘れてたというか知らなかったというかなのでメモ。
f:id:Amesiorine271108:20210112035154p:plain