mp3ファイルの詳細情報を読み込んで、編集するツールを作りたいなぁ。
C#.NETなら簡単に出来るもんなのかなぁ。
やってみましょう。
この記事には.NET Framework 4.6.1を使用しています。
この記事にはtaglib 2.1.0を使用しています。
taglibを使ってみよう
NuGetにはtaglibという便利なライブラリがあるみたいです。
taglibはGitHubにコードが公開されているので、コードの中も確認できます。
使い方はとっても簡単。
TagLib.File.Create()
にファイル名を指定することでTagLib.File
クラスが作成されます。
このクラスのプロパティ経由で、mp3ファイルの情報を閲覧することできます。
mp3ファイルの情報を書き換える場合は、このクラスのプロパティを変更してTagLib.File.Save()
を呼ぶだけで情報がファイルの情報を書き換えることができます。
コードを書いてみましょう。
Program.cs
class Program { static void Main( string[] i_args ) { try { // ファイル名からTagLib.Fileを取得しちゃうぞ! TagLib.File file = TagLib.File.Create( i_args[ 0 ] ); // 読み込み System.Console.WriteLine( "File: {0} ", file.Name ); System.Console.WriteLine( "Title: {0} ", file.Tag.Title ); System.Console.WriteLine( "Performers: {0} ", file.Tag.Performers ); System.Console.WriteLine( "Album Artists: {0} ", file.Tag.AlbumArtists ); System.Console.WriteLine( "Album: {0} ", file.Tag.Album ); System.Console.WriteLine( "Year: {0} ", file.Tag.Year ); System.Console.WriteLine( "Track: {0} ", file.Tag.Track ); System.Console.WriteLine( "Genres: {0} ", file.Tag.Genres ); System.Console.WriteLine( "Time: {0}:{1} ", file.Properties.Duration.Minutes, file.Properties.Duration.Seconds ); System.Console.WriteLine( "Bitrate: {0} ", file.Properties.AudioBitrate ); // 書き込み file.Tag.Title = "諦めない"; file.Tag.Performers = new string[] { "希望を捨てない" }; file.Tag.AlbumArtists = new string[] { "くじけない" }; file.Tag.Album = "最後まで"; file.Save(); } catch( System.Exception i_exception ) { System.Console.WriteLine( "例外なの...: {0}", i_exception ); } finally { System.Console.WriteLine( "..." ); System.Console.ReadKey(); } } }
では出来たアプリケーションを実行してみましょう。
こちらのmp3ファイルを読み込みましょう。
さて、どうなるでしょうか。
うまく処理されたようです。
ちなみにTagLib.File
ではファイル名は変更できないので、ファイル名を変更する場合はSystem.IO.File.Move()
などを使ってくださいね。