Как создать плейлист Genius в iTunes 10 из скрипта?
Я хочу создать скрипт, который запускает новый плейлист Genius на основе текущей воспроизводимой дорожки для использования в LaunchBar. К сожалению, iTunes не предоставляет AppleScript никаких функций, связанных с Genius, что усложняет задачу.
Я искал в Интернете и нашел несколько решений, которые включают ручной поиск кнопки в пользовательском интерфейсе iTunes и вызов события click ( пример), но они не работают в iTunes 10, и мой AppleScript-fu далеко не настолько мощный, чтобы отлаживать их.
Есть ли способ запустить плейлист Genius вне приложения iTunes? Другие методы, такие как рабочие процессы Automator или сценарии оболочки, также будут вполне приемлемыми.
1 ответ
После некоторых экспериментов, я думаю, что нашел ваше решение.
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 проверит, включена ли кнопка гения, и затем щелкнет по ней.
Если в данный момент нет воспроизводимой песни, но выбрана песня, тогда будет одна кнопка гения, и она будет включена и будет нажата. Если песни не воспроизводятся или не выбраны, кнопка гения не будет нажата.
Я думаю, что это та функциональность, которую вы хотите! Дайте мне знать, если это работает для вас.