Как создать плейлист Genius в iTunes 10 из скрипта?


2

Я хочу создать скрипт, который запускает новый плейлист Genius на основе текущей воспроизводимой дорожки для использования в LaunchBar. К сожалению, iTunes не предоставляет AppleScript никаких функций, связанных с Genius, что усложняет задачу.

Я искал в Интернете и нашел несколько решений, которые включают в себя поиск кнопки вручную в пользовательском интерфейсе iTunes и вызов события click ( пример ), но они не работают в iTunes 10, и мой AppleScript-fu далеко не так силен, чтобы их отлаживать.

Есть ли способ запустить плейлист Genius вне приложения iTunes? Другие методы, такие как рабочие процессы Automator или сценарии оболочки, также будут вполне приемлемыми.

Ответы:


3

После некоторых экспериментов, я думаю, что нашел ваше решение.

tell application "System Events"
-- click the genius button on the currently playing track at top
    click button 14 of window "iTunes" of application process "iTunes"
end tell

Проведя больше экспериментов, я обнаружил следующее:

  • Кнопки 1-3 являются «стоп-сигналами» сверху оставил
  • Кнопки 4-7 - это кнопки снизу слева, добавить плейлист, перемешать, повторить, закрыть произведение искусства.
  • Кнопка 8 кажется гением Кнопка в правом нижнем углу экран, (закрыть!) и будет работать для текущий выбранный трек. я Предположим, вы хотите, чтобы гений в настоящее время воспроизводится трек…
  • Кнопка 9 - это правая панель гения.
  • Кнопка 10-12 перемотка назад, воспроизведение / пауза, вперед.
  • Кнопка 13 - эквалайзер.
  • Кнопка 14 - гениальная кнопка! (Тот, который вы хотите)
  • Кнопка 15 - выбрать (и перейти к) дорожку.
  • Кнопки 16-19 - это различные «представления» кнопки
  • Кнопка 20 - нулевая громкость.
  • Кнопка 21 - максимальная громкость.
  • Кнопка 22 - ошибка!

Вот и все. Спасибо за то, что подняли этот вопрос, это понимание поможет с различными идеями сценариев. :)

Редактировать:

Хорошо, немного больше копания в словарях дало мне эту идею:

tell application "System Events"
    set button_count to count every button of window "iTunes" of application process "iTunes"
    repeat with i from 1 to button_count
        set button_description to accessibility description of button i of window "iTunes" of application process "iTunes"
        if button_description is "genius" then
            set x to i
        end if
    end repeat
    if enabled of button x of window "iTunes" of application process "iTunes" then
        click button x of window "iTunes" of application process "iTunes"
    end if
end tell

Он выполняет циклическое переключение всех кнопок окна iTunes и проверяет описание доступности кнопки. У кнопок гения есть, что неудивительно, описание «гения».

В некоторых видах есть две гениальные кнопки, одна для текущей воспроизводимой песни и одна для выбранной песни. Сценарий всегда будет использовать самую последнюю из двух кнопок, которая является текущей воспроизводимой песней. Таким образом, этот AppleScript проверит, включена ли кнопка гения, и затем щелкнет по ней.

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

Я думаю, что это та функциональность, которую вы хотите! Дайте мне знать, если это работает для вас.


Хорошая находка. Однако, похоже, что назначения кнопок меняются в зависимости от того, какой тип списка воспроизведения активен в данный момент. Кнопка Genius для меня # 16 в списках воспроизведения и в представлении Genius Mixes, № 18 в представлении iTunes DJ или Genius и № 17 в сохраненном списке воспроизведения Genius. (Также различные другие значения в представлении Store, книгах, подкастах и ​​т. Д. Я перестал копаться в особых случаях после первых нескольких.) Я не думаю, что есть какой-либо способ принять это во внимание, по крайней мере, для более распространенных случаи я перечислил?
Brant Bobby

@ Брант хм ... на самом деле есть. Я обновлю свой ответ с дополнительной информацией.
ghoppe

Второй скрипт работает отлично. Спасибо!
Brant Bobby

При попытке активировать сценарий в iTunes появляется сообщение об ошибке: «Не удается открыть окно« iTunes »из & lt; class pcap & gt;» iTunes »приложения« Системные события ». редактор скриптов работает нормально.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.