Есть такое замечательное интернет-радио — Digitally Imported, по адресу https://di.fm
Всё в нём прекрасно, за исключением того, что, при использовании бесплатного аккаунта, время от времени дают послушать рекламу.
Я понимаю, что реклама нужна, как минимум для двух вещей:
1) Склонение пользователей купить платную подписку, где рекламы не будет.
2) Заработок денег на рекламодателях
Поскольку в России, откуда я слушаю радио, видимо нет желающих подавать рекламу, то в рекламных паузах можно услышать только сообщения двух видов:
а) «Пропустите эти рекламные сообщения, и наслаждайтесь музыкой с более высоким качеством, перейдя на премиум»
б) «Digitally imported ищет крутых веб-разработчиков на полный рабочий день»
Чтобы не слышать этого, я написал браузерный скрипт для GreaseMonkey/TamperMonkey
Совсем выключить рекламу нельзя, но можно сделать так, чтобы во время рекламы громкость становилась нулевой.
Установка сприпта:
1. Установить в браузере плагин для подключения пользовательских скриптов:
Для FireFox это GreaseMonkey
Для Google Chrome и основаных на нём браузерах, не имеющих своего магазина расширений (Chromium, Vivaldi) это TamperMonkey
Для Opera это собственная версия TamperMonkey
2. Скопировать код скрипта здесь: https://github.com/MihanEntalpo/DiFmAdvMute/blob/master/script.js
Или прямо здесь:
// ==UserScript== // @name Digitaly imported adv muter // @namespace https://mihanentalpo.me/ // @version 0.1 // @description Mute sound, then adverstment is played on di.fm // @author Mihanentalpo // @match http://www.di.fm/* // @grant none // ==/UserScript== //Counter of checks var advMuteCheckCount = 0; //Is debug box need to be showed? var displayDebugBox = true; /** * Check is volume muted */ function isVolumeMuted() { return jQuery('a[aria-label=volume]').hasClass('icon-mute'); } /** * Emulate click on "mute" button */ function volumeClick() { jQuery('a[aria-label=volume]').trigger('click'); } /** * Check, if adverstment playing */ function isAdverstmentPlaying() { return $('.close-spinner').css('display') != 'none'; } /** * Display debug box */ function addDebugBlock() { jQuery("body").append("<div id='debugBlock' style='position:fixed;" + " left:10px; top:10px; font-size:8px; opacity: 0.5;" + " background:white; border-radius:5px; z-index:9999;" + " color:black; padding:4px;" + " box-shadow: 3px 3px 20px 3px rgba(0,0,0,0.75);'></div>"); } /** * Show debug html message * @param string html - code to display * @param boolean append - is need to be appended to old messages (or replace it) */ function debug(html, append) { if (!displayDebugBox) return; if (!jQuery('#debugBlock').length) addDebugBlock(); append = append || false; if (append) html = jQuery('#debugBlock').html() + "<br>" + html; jQuery('#debugBlock').html(html); } /** * Check for adverstment, and mute (or unmute) if needed */ function checkAdv() { var append = true; var msg = "checkAdv #" + advMuteCheckCount + ", display:" + $('.close-spinner').css('display') + "(" + (isAdverstmentPlaying() ? "TRUE" : "FALSE") + ")"; advMuteCheckCount +=1; if (advMuteCheckCount % 10 == 0) append = false; debug(msg, append); //Если реклама играет if (isAdverstmentPlaying()) { //Если звук не выключен if (!isVolumeMuted()) { //Выключаем volumeClick(); debug("SWITCHING OFF ADV!!!", true); } } else { if (isVolumeMuted()) { //Включаем volumeClick(); debug("SWITCHING ON MUSIC!!!", true); } } } /** * Run everysecond check */ $(function() { debug("AdvMute Init!"); setInterval(checkAdv, 1000); }); |
3. Создать в установленном расширении новый скрипт, и вставить туда код, скопированный из предоставленного выше скрипта.
Проверка:
1. Открываем сайт di.fm
2. Авторизуемся. Если нет аккаунта, придётся зарегистрироваться, так как без регистрации дадут слушать музыку только 30 минут.
3. В левом верхнем углу должно отображаться отладочное окошко (чтобы оно не отображалось, установите в начале скрипта displayDebugBox = false)
4. Включаем любой радио-канал, и ждём пока среди музыки будет реклама. Во время рекламы музыка должна затихнуть.
Принцип действия
Скрипт действует просто: детектирует на сайте di.fm элементы, в которых отображается информация о рекламном ролике, и при их наличии «нажимает» на кнопку отключения звука. И наоборот. Проверка производится раз в секунду.
Платный аккаунт
Данный скрипт я написал только потому, что в России всё равно никакой коммерческой рекламы на радио di.fm не транслируется, и моё игнорирование рекламы не наносит Di.fm ущерб в монетизации. Если же у вас по этому радио есть какая-то платная реклама, и вам не жалко 4$ в месяц (а при оплате за 2 года всего 2.92$ в месяц), то советую всё-же приобрести платный аккаунт для избавления от рекламы, а там, говорят, ещё и качество звука лучше (на моей дешёвой звуковой карте этого не заметно).
Поддержать создателей радио: https://www.di.fm/premium
Оставить комментарий