非常に頻繁に、トレントから物議を醸す音楽をダウンロードした後、ディストリビューションの作者がタグをmp3に登録しなかったか、正しく登録しなかったことがわかります。 これらのmp3ファイルを修正し、それらに通常のタグを書き込むと、ダウンロードしたばかりの状態で座ることができなくなります。 これはあまり良くありません。 一方、last.fmで音楽統計を収集し、タグを最新に保ちたいと思っています。 もちろん、ダウンロードしたばかりの音楽を別の場所にコピーして、そこにタグを修正するオプションもありますが、それはどういうわけかスポーツマンらしくないです。
最初の10回はキュープレイリストを手動で作成しましたが、それでもプログラミングに関係していることを思い出し、mp3ファイルのリストからキュープレイリストを作成する小さなPerlスクリプトを書きました。 mp3 shkiに物理的に触れることなく、アーティスト、アルバム、その中の曲名に関する情報を変更できるようになりました。 これらのプレイリストは、foobarで簡単に読み取ることができます。
スクリプトには1つのパラメーターがあります。パターン-各ファイルに対して実行されるコード。 このコードフラグメントでは、変数$ track、$ titleおよび$ performerを設定する必要があります-これは、それぞれトラック番号、曲のタイトル、およびアーティストです。
たとえば、「22。 Baby Love Need Your Love-Four Tops.mp3»スクリプトは次のように呼び出す必要があります。
perl c:\ util \ Playlist_cue.pl "--pattern =($ track、$ title、$ performer)= $ f =〜/(\ d \ d)\。(。+)-(。+)\。mp3 /; " >> playlist.cue
playlist.cueファイルにはすでにアルバムに関する情報が含まれていると考えられています。
厳格な使用;
警告を使用します。
Getopt :: Longを使用します。
my($トラック、$パフォーマー、$タイトル);
my $ pattern = '($ track、$ title)= $ f =〜/(\ d *)-(。+)\。mp3 /';
GetOptions( "pattern = s" => \ $ pattern);
私の$ f(<*。mp3>){
eval($パターン);
印刷<< ITEM;
ファイル「$ f」MP3
TRACK $ track AUDIO
TITLE "$ title"
アイテム
if(定義された$パフォーマー){
print "\ tPERFORMER \" $ performer \ "\ n";
}
印刷<< ITEMEND
インデックス01 00:00:00
アイテム
}
スクリプトの結果、次のようになります(ヘッダーは手動で作成されました)。
レムジャンルモータータウン
REM日付1992
出演者「さまざまなアーティスト」
TITLE「Hitsville USA:The Motown Singles Collection 1959-1971(disc 1)」
ファイル "01. Money(That's What I Want)-Barrett Strong.mp3" MP3
トラック01オーディオ
TITLE「お金(That's What I Want)」
出演者「バレット・ストロング」
インデックス01 00:00:00
ファイル「02. Shop Around-The Miracles.mp3」MP3
トラック02オーディオ
TITLE「ショップアラウンド」
出演者「奇跡」
インデックス01 00:00:00
ファイル "03.プリーズミスターポストマン-The Marvelettes.mp3" MP3
トラック03オーディオ
TITLE「お願い、郵便屋さん」
出演者「マーヴェレット」
インデックス01 00:00:00
ファイル "04. Jamie-Eddie Holland.mp3" MP3
トラック04オーディオ
TITLE「ジェイミー」
出演者「エディ・ホランド」
インデックス01 00:00:00
これで、元のmp3-shkiに影響を与えることなく、トラックとアーティストの名前を修正できます。
このようにして、タグが自分に合わないmp3ファイルであっても配布を続けることができます。
問題に対する訂正、コメント、および通常の簡単な解決策を歓迎します。