macOS端末:名前を変更した後にMP3ファイルのメタデータを編集するには?

macOS端末:名前を変更した後にMP3ファイルのメタデータを編集するには?

変数を使用してファイル名を次の形式に変更するスクリプトがあります。

(track#) - (title) - (artist) - (date).mp3
#! /bin/zsh -
set -o extendedglob
pattern='(#b)*_ \((<0-999>)\)(* )—( * )(<1-12>)_(<1-31>)_(<1900-2100>)(.mp3)'
ret=0
for file {
  if [[ $file = $~pattern ]] {
    argv=( "$match[@]" )
    mv -i -- $file "${(l[3][0])1} -$2-$3- $6-${(l[2][0])5}-${(l[2][0])4}-0900$7" || ret=$?
  }
}
exit $ret

このスクリプト、このファイルを使用してください。

Public Talks_ (9) Walking With God Brings Blessings Now and Forever — Chris Ruscher 10_28_2023.mp3

名前変更:

009 - Walking With God Brings Blessings Now and Forever - Chris Ruscher - 2023-28-10-0900.mp3

フォーマットはトラック番号 - タイトル - アーティスト - 日付.mp3、表示変数:です$1 - $2 - $3 - $6-$5-$4-0900$7

上記のすべての作業は完璧に動作します。今このスクリプトに追加したいと思います。

その後、この値を以下に示すメタデータに挿入しようとします。

  1. $1>> で開催される軌道kMDItemAudioTrackNumber
  2. タイトル、保存場所$2>>kMDItemTitle     
  3. アーティスト、開催場所$3>>kMDItemAuthors
  4. 以下を連結したタイムスタンプ: $6${(l[2][0])5}${(l[2][0])4}0900>>kMDItemContentCreationDate

また、スクリプトはファイル生成日をkMDItemContentCreationDatetouch -t上記の最後のステップ(4)でループにコマンドを追加しようとしましたが、うまくいきませんでした。

#! /bin/zsh -
set -o extendedglob
pattern='(#b)*_ \((<0-999>)\)(* )—( * )(<1-12>)_(<1-31>)_(<1900-2100>)(.mp3)'
ret=0
for file {
  if [[ $file = $~pattern ]] {
    argv=( "$match[@]" )
>   fecha=( "$6${(l[2][0])5}${(l[2][0])4}0900$7" )
>   touch -t $(date -j -f "%Y%m%d%H%M" $fecha +%Y%m%d%H%M) $file
    mv -i -- $file "${(l[3][0])1} -$2-$3- $6-${(l[2][0])5}-${(l[2][0])4}-0900$7" || ret=$?
  }
}
exit $ret

これは端末でzshを使用するmacOS用です。

メタデータの編集と作成日の調整の2つの問題についてどう思いますか?私はスクリプトが初めてだったので、フォーラムで見つけたものをまとめました。あなたの洞察力に心から感謝します。

関連情報