我可以使用 Applescript 将歌曲从 .csv 歌曲信息列表导入 iTunes 吗?

Can I use Applescript to import songs from .csv list of song info into iTunes?

有没有一种方法可以使用 AppleScript 仅使用包含标签信息的 .tsv 列表将歌曲从我的 Mac 硬盘导入 iTunes?

(我的 iTunes 中有太多文件 collection,所以如果我将文件夹拖到导入它们,并不是所有的文件都能正确同步。)

.tsv 列表包含以下信息[其中 , = TAB]: 标题、艺术家、年份。

每个文件,无论是 mp3 还是其他格式,都已正确标记。

所有文件都保存在硬盘上一个大文件夹 General Music 中的不同文件夹中。

我希望这些信息足以解决我困惑的问题!

编辑:版本 - Mac OS Mohave 10.14.6

iTunes 版本:12.9.5.5

文件只需要添加到iTunes主库,不需要复制到任何文件夹。有些文件可能已经存在于 iTunes 资料库中,但很多不会(这是拥有 25,000 多首歌曲的可能性;当您添加新歌曲时,iTunes 似乎会踢掉一些旧歌曲)。

tsv 不包含文件名,只包含标签信息。这里有几行作为示例(您看不到标签,但在歌曲名称和艺术家之后有一个标签):

Afternoon Delight Starland Vocal Band 1976

Against All Odds Phil Collins 1984

Aged & Mellow Blues Little Esther 1952

要解决,我建议 2 个步骤:

  1. 根据 CSV 中给出的信息分配文件(及其路径)
  2. 将文件(例如 ~/pathTo/song.mp3)添加到 iTunes

从 CSV

中给出的 song-info 分配音频文件

您必须逐行处理(打开和读取)CSV 文件。

对于每一行,您现在有 2 个选项来分配和匹配文件:

  1. 或者预先准备一个 file-paths 的列表(包括文件夹和文件名),你可以匹配给定的 CSV-records
  2. 在您的驱动器上搜索与某些 CSV 字段值匹配的音频文件(例如,扩展名为 .mp3):

从CSV-line到audio-files的匹配可以使用2个条件:

  • (A) 在其 名称中
  • (B) 在其 meta-info header(例如 ID3 标签)

对于(1 和 A),您可以在终端或 Bash 脚本中使用 find 命令:

Find file(s) recursively and filter them by their path matching specific substring(s) - Unix & Linux Stack Exchange

对于(1 和 B),有实用程序可以在音频文件的标签内进行搜索:

Search MP3/Ogg files by tags/parameters from the command line - Unix & Linux Stack Exchange

Output ID3 tags from a group of MP3 files as a CSV file - Software Recommendations Stack Exchange, some of the utilities also run on MacOS, e.g. ffprobe, exifTool

将音频文件添加到 iTunes

描述如下:

Adding a song file to iTunes via the command line without playing the file - Ask Different

终端中的一个简单命令或 (Bash) 脚本可以做到:

cp ~/pathTo/song.mp3 "~/Music/iTunes/iTunes Media/Automatically Add to iTunes/"

将文件复制(cp)或移动(mv)到iTune的专用文件夹中,下次打开iTunes时将导入。