Добавить текущую воспроизводимую песню в Apple Music с помощью редактора AppleScript

Я пытаюсь создать AppleScript, который автоматически добавляет текущую дорожку, которую я слушаю в Apple Music, в свою библиотеку.

Что я сделал до сих пор, так это установил для параметра «Добавлять песни в библиотеку при добавлении в список воспроизведения» значение true, а затем использовал следующий код AppleScript ниже:

tell application "iTunes"
    duplicate current track to playlist "New Songs"
end tell

Что происходит, так это то, что песня добавляется в список воспроизведения, а затем автоматически удаляется из списка воспроизведения и не добавляется в мою библиотеку.

Когда я добавляю песню в список воспроизведения вручную, трек остается в списке воспроизведения и добавляется в мою библиотеку.

Как заставить ScriptEditor сохранить текущий трек в моей библиотеке?

Я лично не пользуюсь Apple Music, поэтому у меня нет опыта ее использования, но я был бы рад помочь! Просто чтобы уточнить, когда вы говорите «... добавляет текущий трек, который я слушаю в Apple Music, в мою библиотеку». Вы имеете в виду, что он сохраняет песню для прослушивания в автономном режиме в вашей библиотеке или просто добавляет ее в список воспроизведения?
@Tom Я имею в виду, что хочу, чтобы песня была сохранена в моей библиотеке. Я не хочу, чтобы он сохранялся для офлайн.
Я только что опробовал вставленный вами сценарий, и он отлично работает, но только с моей локальной медиатекой iTunes. Приношу извинения за то, что больше не могу помочь, поскольку у меня лично нет Apple Music, поэтому я не могу воспроизвести проблему и попытаться найти решение в результате. С наилучшими пожеланиями! PS Просто догадка, но, возможно, проблема как-то связана с тем, что Apple не хочет, чтобы их медиа контролировались сценариями, или это может быть просто ошибка ...
Посмотрите здесь hints.macworld.com/article.php?story=20090709085206245 , возможно, вы сможете переработать этот скрипт под свои нужды.

Ответы (4)

У меня сегодня был такой же вопрос. Я не знаю AppleScript (впервые использовал его для этого), поэтому этот код, вероятно, очень неэффективен с точки зрения синтаксиса, но не хотел рисковать его поломкой путем рефакторинга.

Оказывается, единственный способ добавить песню в библиотеку в каждом сценарии с использованием AppleScript — это заставить приложение перейти в мини-плеер, а затем использовать кнопку «Добавить в библиотеку» в строке меню. Вы можете удалить часть скрипта с мини-плеером, если вам не нужен этот скрипт для работы с песнями, которых нет в плейлистах (например, радио).

tell application "System Events"
    set frontmostApplicationName to name of 1st process whose frontmost is true
end tell

tell application "System Events"
    tell process "iTunes"
        try
            tell menu bar 1
                tell menu bar item "View"
                    tell menu "View"
                        click menu item "Exit Full Screen"
                    end tell
                end tell
            end tell
        end try
    end tell
    tell process "iTunes"
        set frontmost to true
        try
            tell menu bar 1
                tell menu bar item "Window"
                    tell menu "Window"
                        click menu item "Switch to Mini Player"
                    end tell
                end tell
            end tell
        end try
    end tell
    tell process "iTunes"
        try
            tell menu bar 1
                tell menu bar item "Song"
                    tell menu "Song"
                        click menu item "Add to Library"
                    end tell
                end tell
            end tell
        end try
    end tell
    delay 0.5
    tell process "iTunes"
        set frontmost to true
        try
            tell menu bar 1
                tell menu bar item "Window"
                    tell menu "Window"
                        click menu item "Switch from Mini Player"
                    end tell
                end tell
            end tell
        end try
    end tell
end tell

tell application "iTunes"
    next track -- if you listen to another person's playlist and add the current playing track, sometimes apple music will completely stop playback (bug), so we have to skip song to avoid this
end tell

tell application frontmostApplicationName
    activate
end tell
Это не сработало для меня, к сожалению. Он перешел к следующей песне, не добавив ее в мою библиотеку.

это, кажется, работает очень хорошо:

tell application "iTunes"
    duplicate current track to source "Library"
end tell
На мой взгляд, это не всегда работает, поэтому я завернул ответ mingwei в попытку, а в случае ошибки я выполняю сценарий @jackgmarch из другого ответа... это кажется на 100% надежным с тем преимуществом, что не нужно всегда пропустить песню (чтобы обойти ошибку в ответе с наибольшим количеством голосов выше).

Это работает для меня - любит песню и добавляет в библиотеку (у меня есть смарт-список, чтобы показать любимые песни, но они появляются только в том случае, если песня находится в библиотеке).

tell application "Music"
    if current track is not loved then
        set loved of current track to not loved of current track
        duplicate current track to source "Library"
    end if
end tell

Applescript — это Windows RegEdit для OS X.

Они должны снести ему голову из дробовика и написать что-то, что не будет абсолютно ужасным в использовании.

И я абсолютно обожаю то, как Apple предлагает половинчатый доступ к своему собственному API на своем собственном языке сценариев, это в лучшем случае постыдно.

Это то, что я сделал, и это ВСЕ ЕЩЕ не работает:

tell application "Music"
    duplicate current track to source "Library"
    delay 20
    duplicate current track to playlist "Female 80s"
end tell

Музыка получила ошибку: можно дублировать только треки по подписке в источник библиотеки.

Но если вы перетащите чертову песню (которая теперь является частью библиотеки, вы действительно можете добавить ее в список воспроизведения, так что это что-то на их стороне.