Api Для Управления Игроками На Сайтах



Фон В 2012-2013 году я нашел одно интернет-радио, которое меня зацепило большим выбором хорошей музыки и тем, что на ней (почти) не было рекламы.

По своей должности я веб-разработчик, а также интересуюсь различными технологиями и тем, что происходит в науке, в связи с чем у меня довольно часто открыто большое количество вкладок в браузере, а зачастую и несколько профилей в браузере.

А если к этому добавить среду разработки, графический редактор, открытые папки, то хотя бы навигатор запустите для всех открытых окон и вкладок.

Большую часть времени у меня на вкладке браузера играла музыка.

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

Такое случалось часто, и я все чаще стал задумываться о поиске решения этой проблемы.

Недолго думая, я решил написать расширение для браузера, которое позволило бы мне управлять воспроизведением с помощью горячих клавиш (в терминологии некоторых браузеров — сочетаний клавиш).

Еще мне часто было интересно узнать художника и название работы, поэтому было решено добавить всплывающие уведомления с этой информацией.



Готовое расширение

Сегодня мое расширение позволяет управлять воспроизведением на нескольких сайтах (SoundCloud, Digitally Imported, ВКонтакте, Одноклассники, Онлайн Радио 101.ру, Радио VGM), а также совершать некоторые другие действия (добавлять текущий трек в плейлист, отмечать трек как понравилось, измените громкость звука).

Это делается как с помощью сочетаний клавиш, так и с помощью кнопок в уведомлении (в Opera кнопки не отображаются).

Также есть (отключаемые) уведомления с информацией о треке при изменении статуса плеера или при нажатии клавиш быстрого доступа.

Также есть список из десяти последних треков с возможностью поиска их во ВКонтакте, Google и Amazon.

API

Расширение имеет API для добавления поддержки других сайтов.

Каждый сайт (плеер) добавляется как модуль.

Доступны встроенные и внешние модули.



Встроенные модули
Встроенные модули являются частью моего расширения и их настройки доступны на странице настроек расширения.

Для того, чтобы подключить модуль, пользователь должен дать расширению разрешение на доступ к вкладкам и содержимому страниц соответствующих доменов.



Внешние модули
Внешние модули — это отдельные расширения, которые подключаются к моему расширению через API и имеют доступ ко всем возможностям моего расширения (управление плеером с помощью сочетаний клавиш и кнопок уведомлений, а также список последних треков).

Их настройки также доступны на странице настроек моего расширения.

Для чего нужны внешние модули?

  • Некоторые модули могут требовать доступ ко всем доменам (например, модуль виджета SoundCloud на каких-либо сайтах), чтобы не запугивать пользователя моего расширения запросом такого разрешения (для сохранения доверия пользователя).

    Такие модули могут получить это разрешение сразу при установке или в любой другой момент (на усмотрение разработчика).

  • Плагины позволяют сторонним разработчикам публиковать расширения под своим именем.

    Разработчики, желающие расширить свое портфолио, вместо участия в чужом проекте создают свой проект.



Где найти API и как с ним работать
API доступен по лицензии MIT на GitHub (см.

ссылки ниже).

Он написан на ES5, чтобы снизить входной барьер для сторонних разработчиков, но это не должно останавливать тех, кто хочет написать свой модуль, используя более современные спецификации и технологии.



Примеры использования API
Имеется: два внешних модуля (доступны как отдельные расширения), а также один встроенный модуль, использующий API.

Встроенный или внешний модуль
Встроенный или внешний модуль? «…вот в чем вопрос», как сказал классик.

Если вы хотите использовать API и добавить поддержку нового проигрывателя, воспользуйтесь следующими советами:

  • встроенный модуль: — ваш модуль поддерживает плеер только на одном или небольшом количестве доменов (например, модуль для youtube.com, модуль для play.google.com/music/listen); — вы будете рады, если ваш вклад будет упомянут на странице readme моего расширения и в социальных сетях;
  • внешний модуль: — вы хотите опубликовать свой модуль под своим именем; — вашему модулю требуется доступ к содержимому страниц на большом количестве или всех доменах.



Ссылки



Обратная связь

Вопросы, жалобы и предложения приветствуются.

Оставьте их в комментариях или воспользуйтесь одним из другие способы .

Теги: #расширение для браузера #расширение для Chrome #Google Chrome #opera #Яндекс.

браузер #api #JavaScript #es5 #soundcloud #вконтакте #цифровой импорт #одноклассники #JavaScript #api #Расширения для браузера

Вместе с данным постом часто просматривают: