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

980
Brant Bobby

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

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

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

2

1 ответ на вопрос

3
ghoppe

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

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 14 лет назад 0
@ Брант хм ... на самом деле есть. Я обновлю свой ответ с дополнительной информацией. ghoppe 14 лет назад 0
Второй скрипт работает отлично. Спасибо! Brant Bobby 14 лет назад 0
Когда я пытаюсь активировать скрипт в iTunes, появляется сообщение об ошибке: «Не удается открыть окно« iTunes »из <> «iTunes» приложения «Системные события». Когда я запускаю скрипт из редактора скриптов, он работает нормально. Что происходит? 13 лет назад 0