Comments 15
Как насчет идеи запустить я.музыку в webview (flutter, например) и вызывать js на странице при событиях (нажатиях хоткеев)? Не обладатель мака и маршалов не имею, если сказал глупость, извините. Даже если окно должно быть в фокусе, должен же быть глобальный отлавливатель хоткеев в оси, чтобы запустить ym --like и там уже взять pid главного окна и выполнить js… Как-то так…
Вот это точно работает, проверил: const lb = document.querySelector('button[aria-label="Нравится"]'); lb.click();. Как и то, что flutter без проблем может вызывать скрипты для страницы на webview. Так что, если дело в хоткеях, то вы легко можете превратить (тут начинается путь в тысячу страданий, как обычно, после слова легко) веб-версию в приложение со своими хоткеями.
Пошла проверять...) Спасибо за подгон
Отпишитесь, если что-то получится. Интересно :)
Да, такой подход действительно работает для macos мой кейс закрывает полностью, я даже пошла дальше извращаться, но всё-таки есть ряд недостатков у такого решения:
1) все-таки это не десктопное приложение, а обертка над вебом и, конечно, взаимодействие менее отзывчивое (особенно если сравнивать запуск webview и мобильного приложения на мобиле) - там вообще капец, однако этот подход работает в целом и на мобиле (тоже протестировано)
2) приходится брать aria label и эт хреново, если они что-то обновят все нахрен сломается
забавно, что claude сам до этого не допер, и что я сама до этого не доперла, мне хотелось ничего не менять в своей привычной жизни и продолжать включать то, что я включаю (то есть мобильное приложение и десктоп приложение)
Спасибо за вариант решения, возможно на маке на нем и останусь:)
Сейчас хочу реализовать все штуки которых мне не хватает в яндекс музыке... Например текст песен в виде оверлея с возможностью сразу чекнуть перевод

(зачем вы мне это показали)
Рад, что у вас получилось. Спасибо, что отписались.
По пункту 1: можно попробовать кешировать, но скорее это все поломает завтра, чем поможет, а можно попробовать отлавливать события (network, в частности) и повторять их, тогда в headless у вас будет плеер, а через вызовы сможете накрутить свой интерфейс. Но я бы не стал – шанс, что все завтра перестанет работать как-то велик достаточно.
Насчет пункта 2 (aria-label) можно поковыряться в коде, возможно наружу есть (я быстро глянул, не нашел) объект для управления плеером. Но, могу сказать, что фронт, что API, ни у того, ни у другого никогда нет гарантии, что очередное обновление не поломает обратную совместимость. Так что, условно, window.player.like (такого нет, но если бы был) тоже не дает гарантии, что завтра он не поменяется. Как, собственно, и то, что ваш проект через год-два-пять соберется и найдет все пакетные зависимости, которые вы сегодня используете :) Все равно придется ковыряться рано или поздно.
Оверлей с переводом – отличная идея, тоже временами не хватает (иногда хочется понять какой-то новый иностранный оборот речи, например, который звучит как-то глупо или совсем непонятно).
если вы слушаете музыку из браузера — вы не умеете слушать музыку
Очень интересное утверждение.
Моя яндекс-музыка имеет нормальную полосу прогресса (утрачено в официальной версии), показывает в заголовке окна название трека и исполнителя (утрачено в официальной версии), и при некотором стечении обстоятельств, как на скриншоте, это всё видно в панели задач. Хотя технически это окно Firefox + Tampermonkey. Добавляем Autohotkey, и теперь окно музыки имеет собственную иконку, вызывается по Win+W из любого места и состояния, далее в нем делается всё что нужно, в т.ч. лайк. Естественно, для паузы / next / громкости окно вообще незачем вызывать.

Десктопное приложение вообще непонятно зачем нужно. Во всяком случае, продвинутым пользователям.
Но это все равно приводит к тому, что вы теряете фокус рабочего окна, чего я и хотела избежать, я же занятой человек😂,
я хочу пока я вбиваю команды в терминал или в окно своего агента нажать сочетание клавиш и получить лайк, а десктопное приложение на мой взгляд гораздо приятнее на вид и на отзывчивость. И на macos допустим при воспроизведении музыки у тебя в шторке тоже есть информация, что трек играет, но возможности поставить лайк, как например в мобильном приложении нет🥲
И переучивать себя слушать музыку из браузера мне не очень то хотелось, отсюда и все эти мучения:)
К. Костыли. Точнее костыли рождают костыли. Bluetooth насколько костылен, настолько много оберток, нестандартных стандартов, и стандартных стандартов которые никто не использует.
В порядке бреда предлагаю отключить кнопку от платы наушников и и засунуть в наушники свой отдельный контроллер с bt со своей отдельной прошивкой :) И делай с ней что хошь :)
Однако все таки думаю что проектировщикам masrashal и идеи то такой в голову не приходило. Однако стоит только начать развивать такую фишку то сразу подхватят. еще и запатентуют.
В моих мечтах такой функционал для мобильного приложения и подключенного к нему головного устройства автомобиля. Чтобы мультимедиа кнопками на руле (или на магнитоле) можно было бы быстро лайкнуть или дизлайкнуть трек. Морды полноценного плеера там нет, это не полноценная трансляция - просто воспроизведение по BT.
То же самое хочется и для обычных наушников, когда телефон далеко под одеждой. Но автомобиль приоритетнее по желаниям.
Посмотрите, что получилось у автора поста. Как я понял, и мобильное приложение есть в рабочем состоянии, а в машине или android или ios, раз мультимедиа руль есть.
В машине нечто проприетарное, куда лезть не хочется и не можется (без вскрытия доступа кроме кнопок нет). И хочется такое иметь на стороне своего телефона, чтобы работало безотносительно того, к какому автомобилю подключено. Поэтому задача в общем случае сложная - нет обратной связи на телефон в каком режиме сейчас аудиосистема находится, транслирует ли звук с телефона или играет свой.
Битва: Яндекс.Музыка vs Marshall или как лайкать треки с помощью кнопок наушников