web-dev-qa-db-ja.com

ID3タイトルタグをMP3ファイル名と等しくなるように設定する

メディアライブラリを通過し、各MP3ファイルのid3タイトルタグをファイル名と等しくなるように設定するbashスクリプトを持っている人はいますか?

私は他の自動化された方法にも開放的です。 GUIアプリケーションなど、自動的に処理を実行するものであれば何でもかまいません。

EasyTagメソッドは次のとおりです。 mp3 ID3ファイルの一括タイトルタグの名前を変更する方法 —残念ながら、手順がわかりません。

14
MountainX

EasyTAGは確かにこの問題に最適なツールです。私は私の答えを見つけました ここ 。使用方法に関しては、最適なリファレンスは EasyTAGの独自のドキュメント です。

EasyTagを開き、音楽ファイルが含まれているフォルダーに移動し、フォルダー内のすべてのファイル、またはタグ付けするすべてのファイルを選択し、[ファイルのスキャン]ボタンをクリックします(カーソルを合わせるには、それらにカーソルを合わせる必要があります)どちらかです)。

次に、スキャナーのドロップダウンが[タグを埋める]に設定されていることを確認してから、[タグを埋める]フィールドで、フィールドの下の例が探しているものになるまで適切に編集します。 [Fill Tag]フィールドに何を入力するかについてさらにヘルプが必要な場合は、「?」をクリックしてください。凡例のボタン(さまざまな可能なコードの翻訳対象のリスト)とマスクボタンをクリックして、いくつかの開始点をリストします。

結果に満足したら、[ファイルのスキャン]ボタンをクリックします([ファイルのスキャン]ダイアログボックスで、最初にクリックした場所ではなく、アイコンの外観が同じです)。変更が適用されます。 。アーティスト名またはアルバム名が表示されない場合は、変更するすべてを選択してデータを入力し、そのフィールドの横にある小さなボタンをクリックすると、選択されたすべてのファイルがそのアーティストまたはアルバムに入力または変更されます。これはほとんどの分野で機能します。

完了したら、[保存]ボタンをクリックして完了です。

PS:CDDBスキャナーは、タグ付けしようとしている完全なアルバムがある場合、または少なくとも市販の曲ファイルがある場合、かなりうまく機能することがよくあります。

PPS:私はどうやらまだ半分起きています。元の投稿に書き込んだ内容に応じて、[Fill Tag]フィールドでこれを試してください:

%n. %a - %t

この質問に関連するセクションは次のとおりです。


1.2.2。 「フィルタグ」スキャナーで自動的に:

このモードを使用するためのいくつかの条件:

  • アルバムでソートされたファイル
  • ファイル名または親ディレクトリには、タグ情報(アーティスト、アルバム、タイトルなど)が含まれています
  • 空のタグまたは正しくないタグ

「タグを埋める」スキャナーは、パターンを使用して、ファイル名とディレクトリ内の単語をタグエントリに関連付けます。このようにして、スキャナーウィンドウまたはツールバーの「緑」ボタンを押すと、タグフィールドを自動的に入力できます。タグが部分的に完成している場合は、[設定]ウィンドウの[スキャナー]タブにある[タグをスキャンするときにフィールドを上書きする]オプションを使用して、すべてのフィールドを新しい値に置き換えます。

各コードはフィールドに対応し、以下のルールに従います。

Strings associated with code    Will fill the field
%a
  Artist
%b
  Album
%c
  Comment
%p
  Composer
%r
  Copyright
%e
  Encoded by
%g
  Genre
%i
  None! (used to ignore a string)
%l
  Number of tracks
%o
  Original artist
%n
  Track
%t
  Title
%u
  URL
%y
  Year

注:間違いを避けるために、パターン内でコードを1回だけ使用することをお勧めします。もちろん、手動でタグ付けする場合と同様に、選択したファイルのみがスキャナーで処理されます。リストで定義されたパターンを使用するか、独自のパターンを記述して、ファイル名とディレクトリの形式に対応させることができます。正しいパターンを選択したり、書き込んだりするときの間違いを防ぐために、プレビューには、パターンを適用する前の結果がすぐに表示されます。さまざまなコードのヘルプが必要な場合は、[ヘルプ]ボタン(救命浮環)を押して、各コードの凡例を表示します。また、独自のパターンを保存、編集、または並べ替える場合は、「マスク」ボタンを押すと、スキャナーウィンドウに小さなエディターが表示されます。

以下にパターンの使用例を示します。

a)次のファイル名:

“/mnt/MP3/EVANESCENCE – Fallen (2003) – Rock/01. Going Under.mp3”

b) with the pattern :

“%a - %b (%y) - %g/%n. %t”

c) you will fill the tag with theses strings :

    Artist (%a) => EVANESCENCE
    Album (%b) => Fallen
    Year (%y) => 2003
    Genre (%g) => Rock
    Track (%n) => 01
    Title (%t) => Going Under
17
MountainX

EasyTAG は、オーディオ(および一部のビデオ)ファイルに対して、あらゆる種類の一般的なバッチタグ/ファイル名操作を実行します。

さまざまなコマンドラインツールが役立つことがわかりました。

id3v2

id3v2は、コマンドラインid3v2タグエディターです。 id3v2タグを追加/変更/削除して、id3v1タグをid3v2タグに変換できます。 id3libを使用しています。共同メンテナを探しています。興味のある方はmyers_carpenterにメールしてください。

eyeD

eyeD3はPython=モジュールとID3タグを処理するためのプログラムです。mp3ファイルに関する情報(ビットレート、サンプル周波数、再生時間など)も提供されます。サポートされている形式はID3 v1です。 0/v1.1およびv2.3/v2.4。

これらは、ディレクトリをスキャンするために何かをスクリプト化するときに理想的です。

3
Paul M

これは必ずしも完全に完璧とは限りませんが、私は一般的なUNIXツール(busyboxバージョンを含む)のみを使用してmp3ファイルの名前を取得するために使用しました。たぶん、6つ以上のTom Petty mp3を持つ人は、さらにテストを行うことができます。

for x in *.mp3; do
  TITLE=$(strings "$x" |grep TAG |grep -v TAGL |sed "s/^.*TAG//g ; /^L$/d ; /^@$/d ; /^$/d ; /^Ac$/d")
  #mv "$x" "$TITLE.mp3"
  echo $x" "$TITLE.mp3" #just echo for now, until further tested
done

編集:質問を読み間違えましたが、上記のことを知っているため、sedを使用して$ TITLEをファイルの名前「$ x」に置き換えることができます。

sed -i "s/$TITLE/$x/" "$x"

私はこれがID3仕様のすべてを満たしていないことをほぼ100%確信していますが、最初にバックアップを作成する限り、基本的な個人的な使用には十分かもしれません

2
technosaurus

Ubuntu 18.04 LTSの場合(すべてのDebianフレーバーで問題なく動作すると思います):

  • Sudo apt install eyeD3を使用してeyeD3をインストールする

  • Bashスクリプト用のファイルを作成します(「タッチ」を使用しました。好きなテキストエディターを使用できます)

  • これをコピーしてファイルに貼り付けます:

    ファイル名をコピーしてTitleタグに書き込みます

    for x in *; do
        eyeD3 --title="${x%.*}" "$x"
        echo $a
    done
    

    進行状況を表示したくない場合は、「完了」という単語の上にあるecho $aの行を省略してください。

  • ファイルを実行可能にします。

    chmod +x filename
    
  • スクリプトを実行したいディレクトリ(メディアファイルを含むディレクトリ)にスクリプトをコピーします。例えば:

    cp filename /music/directory
    
  • スクリプトをコピーしたディレクトリに移動します。

    cd /music/directory
    
  • スクリプトを実行します。

    ./filename
    

    [〜#〜]完了[〜#〜]

Ubuntu 18.04 LTSで動作しました。妻がこれを3分ほどで書いてくれたので、動作しない場合は質問に答えられません。私はプログラマーに精通していません。このWeb、DNS、SSH、SFTP、FTP、AD /ドメイン、ファイル、ファイアウォール、ルーター/サーバーのようなものをセットアップしています。スクリプティング、プログラミングなどを利用するのが大好きです:-)

2
John

ffmpegまたはavconvを使用した最も簡単な解決策を提案した人がいないことに驚きます。

for i in *.mp3; do avconv -y -i "$i" -c copy -metadata title="$i" new_"$i"; done;
1
shivams

EyeD3をpython virtualenvにpip install eyeD3を付けてインストールすると、最新のリリースバージョンを入手できます。その実行後:

for i in *.mp3; do /your/venv/bin/eyeD3 --title "$i" "$i"; done
0
Anthon