Applescript для оновлення тегів року для аудіофайлів


0

У мене багато треків в iTunes, де файли мають назву "music-NNNN.mp3", причому NNNN є роком запису треку. Як я можу використовувати Applescript для автоматичного встановлення тегів року для цих файлів на основі NNNN?


2
Що ви пробували? Я впевнений, що хтось допоможе тонко налаштувати сценарій, який наразі не працює.
bassplayer7

Також подивіться на Applecripts Doug для iTunes, це буде один для цього
Марк

Відповіді:


2

Я створив для вас AppleScript, який буде розбирати назви файлів будь-яких вибраних треків iTunes і відповідно встановлювати тег року.

Вставте це в редактор AppleScript і запустіть його (або збережіть його як додаток):

tell application "iTunes"
    repeat with theTrack in selection
        set theFile to location of theTrack
        tell application "Finder" to set theName to name of theFile
        set theYear to my parse_year(theName)
        if theYear is not "" then
            set the year of theTrack to theYear
        end if
    end repeat
end tell

on parse_year(filenameText)
    -- returns the year if it exists in filename with form song-1965.mp3, else returns empty string
    try
        set yearResult to do shell script "echo " & quoted form of filenameText & " | perl -ne 'print $1 if s/(?<=-)(\\d+)(?=(\\..*|$))/$1/'"
    on error
        set yearResult to ""
    end try
    return yearResult
end parse_year

Кілька приміток:

  • Він не проходить через всю бібліотеку, лише вибрані на даний момент пісні (ви, звичайно, можете вибрати всю свою бібліотеку).
  • Він відповідає лише назви файлів з цією метою з -наступним номером (і, можливо, розширенням).

    • Він буде відповідати наступним:

      songname-1946.mp3
      anothersong-1977
      songname-1965.someextention
    • Але не ці:

      songnoyear.mp3
      song123
      song-1232-someothertext
  • Він буде перезаписаний будь-який рік, вже введений у метадані.

Опцію -P (для регулярного виразів Perl) було видалено в 10.8.
Лрі

Хороший улов. Я оновив його, щоб просто використовувати Perl безпосередньо.
robmathers

0
set text item delimiters to {"-", "."}
tell application "iTunes"
    repeat with t in selection
        set year of t to text item -2 of (location of t as text)
    end repeat
end tell

На відміну від багатьох інших утиліт командного рядка для зміни тегів ID3 , mid3v2 підтримує і Unicode, і ID3v2.

sudo easy_install pip
sudo pip install mutagen
for f in */*.mp3; do y=${f%##*/}; y=${y%.mp3}; /usr/local/bin/mid3v2 -y ${y#*-} "$f"; done

Ви також можете використовувати TriTag для зміни тегів на основі імен файлів або навпаки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.