何かを書き留める何か

数学や読んだ本について書く何かです。最近は社会人として生き残りの術を学ぶ日々です。

MP3ファイルにトラック番号をPythonで付与する

すべてはYouTube Music君のせい

背景

  • ちょっくら英語の勉強を始めようかと某出版社の単語帳(受験生向け)を購入する
  • CD付きだったがストリーミングまたはダウンロードもできる、という令和な構成に感謝しつつ音声をダウンロード
  • Androidスマートフォン経由で音声を聞くために、YouTube Musicのアップロード機能で自分用にアップロード
  • ダウンロードした音声にトラック番号が付与されていなかったので、アップロードした際に順番が滅茶苦茶になる
  • ファイル名はソートされていたので、YouTube Music上でソートして再生すればよいのだが、そんな機能はない
  • 元々、楽曲を管理していたiTune側にも自動的にトラック番号を付与する機能はない
  • 勉強にならない!!!

やりたいこと

  • 適切に命名されたMP3ファイルが約150個ある
  • トラック番号を機械的に付与したい、手動で150個設定する暇はない

解法

  • mutagenを使う

mutagen.readthedocs.io

コード

さっさとやりたかったので細かいことは何も考えていない。

import pathlib

import mutagen.easyid3

path = pathlib.Path("/path/to/mp3")

for idx, p in enumerate(path.glob("*.mp3"), start=1):
    tags = mutagen.easyid3.EasyID3(p)
    tags["tracknumber"] =[f"{idx}/150"]
    tags.save()

感想

  • iPodが復活してほしい。