Фильтруем аудиозаписи с плохим качеством.

Уровень сложности: выше среднего.


Итак, приступим.

Все мы сталкивались с проблемой поиска аудио с приличным качеством - 320 кбит/с или выше. Но при вводе названия любимой композиции ВК получали 90% шлака, ремиксов и прочей 128 кбит/с лабуды.


Есть много способов определить битрейт песни, начиная от стандартного значка "hq" в списке композиций и заканчивая разными приложениями, которые показывают битрейт песни.


Минут 10 гуглил и пытался найти что-то похожее на отсеиватель, но тщетно. (кстати, если кому-нибудь известна программа-отсеиватель-композиций-с-плохим-качеством, то ткните меня, буду только рад). В итоге залез в код скрипта SaveFrom.Net (так вообще можно было? ЭТО НЕ РЕКЛАМА!) и, немного покапавшись, нашел лазейку. Она неидеальна, но лучше, чем было.


Работает это так:

Фильтруем аудиозаписи с плохим качеством. ВКонтакте, Музыка, Фильтр, Тег, Быдлокодинг, Инструкция, Гифка, Длиннопост

Наводим курсор на любую композицию и вуа-ля! Остались только "hq" треки >320 кбит/с


Что нужно сделать?

Тестировал на Chrome, на счёт работоспособности других браузеров не в курсе.

Нужно забраться в редактор скрипта Tampermonkey и нажать "панель".

Фильтруем аудиозаписи с плохим качеством. ВКонтакте, Музыка, Фильтр, Тег, Быдлокодинг, Инструкция, Гифка, Длиннопост

Затем выбрать SaveFrom.Кхм, чтобы открыт редактор кода. Выполнить 5 простых шагов.


1. Найти переменную vkShowBitrate и выставить значение 1


vkShowBitrate: 1,


2. Найти строчку if (preference.vkShowBitrate === 1) - это начало некой функции


Некая функция:

1. if (preference.vkShowBitrate === 1) {

2.  if (!dlBtn.dataset.preloadBitrate) {

3.  dlBtn.dataset.preloadBitrate = 1;

4.

5.  _this._preloadNewTrackUrl(dlBtn).then(function(url) {

6.  dlBtn.dataset.preloadBitrate = 2;

7.  dlBtn.href = url;

8.

9.  return _this._onOverInsertBitrate(dlBtn);

10.  }).catch(function(e) {

11.

12.  });

13.  }

14.  }

15.  },

строчки пронумерованы для удобства


3. В пустую строчку №8 вставить код:


var k = document.getElementsByClassName('audio_row audio_row');

for (var i = 0; i < k.length; i ++)

if (!k[i].classList.contains('hq')) k[i].style.display = 'none';


4. Должно выглядеть так


1.  if (preference.vkShowBitrate === 1) {

2.  if (!dlBtn.dataset.preloadBitrate) {

3.  dlBtn.dataset.preloadBitrate = 1;

4.

5.  _this._preloadNewTrackUrl(dlBtn).then(function(url) {

6.  dlBtn.dataset.preloadBitrate = 2;

7.  dlBtn.href = url;

8.  var k = document.getElementsByClassName('audio_row audio_row');

9.  for (var i = 0; i < k.length; i ++)

10.  if (!k[i].classList.contains('hq')) k[i].style.display = 'none';

11.  return _this._onOverInsertBitrate(dlBtn);

12.  }).catch(function(e) {

13.

14.  });

15.  }

16.  }

17.  },


5. Сохраняем.


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


И ещё одно. В плейлист всё равно добавляются ВСЕ песни, даже которые исчезли, т.к. быдлокод.

Спасибо за внимание и понимание. Может кому пригодится.