複数のオーディオファイルのファイル名をタイトルに変更する

複数のオーディオファイルのファイル名をタイトルに変更する

各ファイルのファイル名をそのファイルのタイトルに変更するCLIまたはGUIソリューションが必要です。

ファイル名がコンテンツを正しく表示しない複数のラジオポッドキャストがあります。これはタイトルの下のメディアプレーヤーに表示されますが、ファイルマネージャでこのコンテンツを表示できません。そのため、ファイル名をタイトルに変更したいと思います。

Linuxの基本ツールを探しています。、Foobar2000などのプログラムを使用してWineでこれを行う方法を知っていますが。

コメント後の編集:mp3ファイルです。ドルフィンファイルマネージャの情報パネルに表示されるタイトルデータを表示できます。

答え1

探しているなら基本ツールmp3rename一部のディストリビューションでは、guiだけでなくコマンドラインも提供していますpyrenamer

前者の場合は、まず「タイトル」(&t)形式を指定してください。

mp3rename -s '&t'

mp3renameその後、ファイル名のリストを提供してファイル名を変更できます。たとえば、mp3ファイルが含まれているディレクトリにある場合を入力します。あるいは、一部の起動ディレクトリABCで名前付きファイルをmp3rename *.mp3再帰的に検索することもできます。*.mp3

find ABC -name '*.mp3' -exec mp3rename {} \;

予期しないことが発生しないようにファイルのコピーを処理することもできます。

GUIの場合コーンMusic以降のバージョンには、「メタデータを使用して音楽の名前を変更する」ことができるタブがあります。このフィールドに文字列を入力し{title}.mp3て作業したいファイルを選択し、クリックして名前がどのようにPreviewなるかを確認します。

ここに画像の説明を入力してください。

答え2

フェルはどうですか?これはLinuxの基本です。私のテスト設定は次のとおりです。スクリプトは、mp3.pl作業する曲を含む同じディレクトリにあります。musicコマンドライン引数として渡します。コードはこのディレクトリを繰り返してすべてのmp3ファイルを取得します。次に、トラックリストを一度に1つずつ繰り返して名前を変更してトラックのタイトルを指定します。

まず、どのトラックがあるかを確認してください。

$ ls music
track1.mp3  track2.mp3

パスワード:

use warnings;
use strict;

use File::Copy;
use File::Find::Rule;
use MP3::Tag;

if (! @ARGV){
    print "usage: perl mp3.pl <directory>\n";
    exit;
}

my $dir = $ARGV[0];

my @files = File::Find::Rule->file()
                            ->name('*.mp3')
                            ->in($dir);

for my $track (@files){
    my $mp3 = MP3::Tag->new($track);

    my $title = $mp3->title;
    $title .= '.mp3';

    move $track, "$dir/$title" or die $!;
}

走る:

perl mp3.pl music

「音楽」ディレクトリが変更されました:

$ ls music/
Almost Famous.mp3  No Love (feat Lil Wayne).mp3

関連情報