Используем Apple Script для управления плеером
У AppleScript есть возможность «общаться» с приложениями которые его поддерживают, для этого в нем предусмотрена конструкция tell. В числе таких приложений браузер Google Chrome. Ниже показан пример того, как попросить Google Chrome отрыть URL в новой вкладке:
tell application "Google Chrome" open location "https://music.yandex.ru" end tell
Теперь рассмотрим пример посложнее, попросим Google Chrome выполнить JavaScript в активной вкладке:
tell application "Google Chrome" execute front window's active tab javascript "alert('example');" end tell
В результате увидим следующую картину:
Теперь напишем JavaScript вызывающий событие click на необходимом элементе, к примеру, на кнопке next плеера Yanded.Music. Для этого используем querySelector:
document.querySelector('.player-controls__btn_next').click();
Осталось попросить Google Chrome выполнить этот скрипт на вкладке с открытым Yandex.Music. Для этого, сначала находим необходимую вкладку:
tell application "Google Chrome" -- пробегаем по каждому открытому окну repeat with _w in (every window) -- по каждой вкладке название которой содержит music.yandex.ru repeat with _t in (every tab whose URL contains "music.yandex.ru") of _w -- здесь далее будет наш код нажатия на кнопку end repeat end repeat end tell
Затем просим выполнить на найденной вкладке наш скрипт:
tell application "Google Chrome" -- пробегаем по каждому открытому окну repeat with _w in (every window) -- по каждой вкладке название которой содержит music.yandex.ru repeat with _t in (every tab whose URL contains "music.yandex.ru") of _w. set s to "document.querySelector('.player-controls__btn_next').click();" tell _t to execute javascript s end repeat end repeat end tell
В этом примере мы ищем div, класс которого ‘.player-controls__btn_next’. Чтобы выполнить другие действия, например приостановить воспроизведение, необходимо создать такой же AppleScript, но с селектором ‘.player-controls__btn_pause’. Необходимо понимать, что если Yandex изменит название класса, то в applescript его тоже необходимо будет поменять.
Вот и все, для того чтобы выполнить AppleScript по нажатию горячих клавиш, создаем сервис в Automator. Про то, как это сделать существует множество статей в интернете.
Готовые workflow для Automator вы можете скачать здесь:
P. S. Для того, чтобы описанное выше заработало в Safari, необходимо в скрипте заменить слово “execute” на слово “do”.
P. P. S. В плеерах вроде iTunes все проще. Они понимают команды типа play/pause
tell application "iTunes" to playpause
Источник