7.3.15

Как убрать рекламу из AceStream Magic Player

Этот способ помогает быстро пропустить (отключить) рекламу в Ace Stream Magic Player (расширение для браузера).

Для блокировки рекламы нужно изменить кое-какие данные в некоторых файлах. Для упрощения задачи всё нужное уже собрано в архиве.



Так же, можно скачать и сам Ace Stream Media 3.0.11 на котором это тестировалось и работает.
Скачать (66 МБ).
Вот официальный сайт: http://acestream.org

Для тех, кому интересно самому всё сделать более подробное описание во второй части.

1. Переходим в папку:

Для Windows XP: C:\Documents and Settings\(имя пользователя)\Application Data\ACEStream\player\skins

Для Windows 7, 8:
C:\Users\(имя пользователя)\AppData\Roaming\ACEStream\player\skins

Если папку AppData не видно:

Для Windows XP, 7: открываем любую папку - выбираем вверху Сервис - Свойства папки... - вверху окна выбираем Вид - ставим кружок (или птичку) напротив Показывать скрытые файлы и папки.

Windows 8: открываем любую папку - выбираем Вид (вверху, где Файл, Главная, Поделиться) - и ставим птичку напротив Скрытые элементы.

2. Из скачанного архива копируем с заменой папки fs и nofs в папку skins
 (предварительно сделайте резервную копию файлов в папке skins).

3. Теперь нужно убрать из файла hosts блокировки адресов рекламы от Ace Stream (только если раньше изменяли hosts).

4. Всё.

II

Для тех, кому интересно "Как это работает?":

Ace Stream Magic Player 1.0.3  расширение для браузеров довольно неплохое, но постоянная реклама при каждом переключении и даже паузе – это слишком.
Если не вдаваться в подробности, то принцип работы движка Ace Stream такой: запуская через браузер со встроенным расширением какой-нибудь торрент, запускается и движок AceStream:
C:\Users\User\AppData\Roaming\ACEStream\engine\ace_engine.exe. Он собирает информацию о запущеной программе, о поиске рекламы или попытках её поиска и т.д. Эту информацию можно найти в логах программы:
C:\Users\User\AppData\Roaming\ACEStream\engine\ acestream.log
C:\Users\ User\AppData\Roaming\.ACEStream\ npace_plugin.log
C:\Users\ User\AppData\Roaming\.ACEStream\ player.log

Если вы пробовали блокировать рекламу через hosts, то потом, наверняка, стали получать ошибку (найден блокировщик рекламы…). Это связано с тем, что программа "помнит" количество НЕУДАЧНЫХ попыток отыскать рекламу. Причём, помнит ровно до момента выключения программы. При включение снова движок "вспоминает" попытки обращаясь к файлам C:\Users\ User\AppData\Roaming\.ACEStream\*.pickle (в частности, sessconfig.pickle). Если закрыть программу, удалить эти файлы и снова запустить, то даже с блокировками hosts AceStream запустится.

Но каждый раз закрывать программу и снова её открывать (каждые 2-3 открытых торрента) очень утомительно.

Вариант пропатчить программу как-то "не зашёл". Поэтому велись поиски других путей. Одним из них стал вариант не блокировать рекламу (пускай скачивается, главное, что не мешает *и не вирусы), а просто не показывать её (как AdBlock). В результате был найден способ измененять файлы связанные с этими самыми отображениями.

Папка skins содержит ещё две подпапки fs и nofs (то есть, код для Full Screen mode и Not Full Screen mode). Начинаем редактировать с nofs  (так как программа запускается, обычно, именно в этом режиме). Файл panel.qml содержит функции вызова "картинок и подписей".
* Его можно открыть обычным Блокнотом (Notepad).
Теперь нам нужно найти что-то, что связано с рекламой. Просматривая файл можно встретить player.isAd
Нам нужно найти строку /* skip ad button */ и всё что под ней (хорошо, когда ставят такие метки).
ВНИМАНИЕ! ЭТО ИСХОДНЫЙ КОД! ФАЙЛЫ В АРХИВЕ ОТЛИЧАЮТСЯ ОТ ЭТОГО!
/* skip ad button */
                    Item {
                       id: btnAd
                       width: state == "wait" ? lblAd.width + 10 + parent.height : lblSkip.width + 10
                       height: parent.height
                       visible: player.isAd

                       states: [
                            State {
                                name: "wait"
                                when: player.isAd && player.waitForAd >= 0
                                PropertyChanges {
                                    target: skip_layout
                                    visible: false
                                  }
                              
                                PropertyChanges {
                                    target: wait_layout
                                    visible: true
                                }
                            },
                            State {
                                name: "skip"
                                when: player.isAd && player.waitForAd < 0
                                PropertyChanges {
                                    target: skip_layout
                                    visible: true
                                }
                                PropertyChanges {
                                    target: wait_layout
                                    visible: false
                                }
                            }
                        ]                                                                                                                                        

Видно, что отображение кнопки Пропустить и Таймер устанавливается при условии
when: player.isAd && player.waitForAd >= 0 (то есть, пока таймер идёт):

target: skip_layout
visible: false

target: wait_layout
visible: true

Теперь всё просто: делаем значения такими как при "время вышло":
when: player.isAd && player.waitForAd < 0

target: skip_layout
visible: true

target: wait_layout
visible: false

Должно получиться так, что оба skip_layout visible: true, а оба wait_layout, соответственно, visible: false.
Да, можно просто удалить первую функцию и изменить проверку на ">=0".

Теперь мы можем пропускать рекламу сразу (кнопка пропустить появляется моментально). Для полного отключения нужно будет ещё немного модифицировать этот файл а потом ещё и файлы main.qmlPanel.qml и PanelMinimal.qml в папке fs
Для удобства можете скачать архив с готовыми файлами.

Если "поиграться" с кодом, то можно легко блокировать рекламу без ошибки "Найден блокировщик рекламы…". Например, сделать так, чтобы функция skip_layout выполнялась как только, так сразу.
Это всё. Спасибо.

Скачать архив

Скачать архив

Вопросы и советы пишите в комментариях!


-----------------
F.A.Q.
-----------------

1. Всё равно показывает "Ошибка: Просмотр заблокирован, так как обнаружен блокировщик рекламы Ace Stream"?


Значит что-то блокирует загрузку рекламы. Проверьте файл hosts на наличие блокировки определённых адресов.
Возможно, Ваш антивирус и/или файервол блокирует соединение. Проверьте это.

Попробуйте для проверки его отключить ненадолго.
-----------------

2. Реклама всё равно запускается!


Да, такое может быть. Через несколько "пропусков" такой рекламы она выключается.
-----------------


3. Другие вопросы и ответы в комментариях.

III


Как открывать Content ID через Ace Stream Magic Player.

Сначала всё прочитать, а потом нажимать на ссылки и копировать файлы!

Если что-то не работает смотри F.A.Q.

Для тех, кого смущает адрес 127.0.0.1 разъяснение из Википедии: https://ru.wikipedia.org/wiki/Localhost

Для воспроизведения Content ID нужно в браузере в строку адреса ввести: http://127.0.0.1:6878/webui/player/
Теперь копируем нужный Content ID и вставляем его после "/". Должно получится так: http://127.0.0.1:6878/webui/player/00f4db11962e5144938234689ed934432dfd7f05

Да, файл открывается, но автоматически не воспроизводится. Увы, в настройках, по умолчанию, стоит отключение автовоспроизведения. Поэтому, программа вставляет свои ?autoplay=false.  Для включения автовоспроизведения нужно изменить часть кода в player.html. Можно, конечно, создать закладку типа: http://127.0.0.1:6878/webui/player/?autoplay=true и вставлять Content ID перед "?" (http://127.0.0.1:6878/webui/player/00f4db11962e5144938234689ed934432dfd7f05?autoplay=true ), но это хлопотно.


Лучше сразу заменить в файле player.html одну строку и всегда просто получать http://127.0.0.1:6878/webui/player/00f4db11962e5144938234689ed934432dfd7f05

Вот часть кода из файла player.html, отвечающая за автовоспроизведение:
try {
        var player = new TorrentStream.Player(controls.getPluginContainer(), {
                debug: true,
                useInternalControls: useInternalControls,
                bgColor: "#000000",
                fontColor: "#ffffff",
                onLoad: function() {
                    this.registerEventHandler(controls);
                    controls.attachPlayer(this);
                    try {
                        var p = this;
                        this.loadPlayer("{player_id}", {autoplay: {autoplay}});
                    }
                    catch(e) {
                        console.log("init: " + e);
                    }
                }
        });
    }


Если исправить {autoplay: {autoplay}}); на {autoplay: true}); то воспроизведение будет начинается сразу.

Можно просто скачать файл ( 2KB )и заменить исходный файл. 





1. Переходим в папку:

Для Windows XP: C:\Documents and Settings\(имя пользователя)\Application Data\ACEStream\engine\webui\html

Для Windows 7, 8: C:\Users\(имя пользователя)\AppData\Roaming\ACEStream\engine\webui\html

2. Из скачанного архива копируем с заменой player.html в папку html

3. Всё.

Теперь можно воспроизводить Content ID без рекламы в браузере.


В закладки можно добавить ссылку http://127.0.0.1:6878/webui/player/, а потом просто вставлять нужный Content ID после "/".


-----------------
F.A.Q.

-----------------


1. Пишет "Веб-страница недоступна" (Google Chrome) и "Попытка соединения не удалась" (Mozilla Firefox).




Попробуйте запустить Ace Stream. Перейдите в C:\Users\(имя пользователя)\AppData\Roaming\ACEStream\engine и запустите ace_engine.exe

Должен появиться значок Ace Stream справа внизу, в трее.


2. Пишет "Для продолжения работы плеера Вам необходимо включить Ace Stream P2P Multimedia Plug-in"


Если используете Google Chrome, тогда нажимаем справа вверху на значок пазла:

И выбираем разрешить плагины на сайте 127.0.0.1 и перезагружаем страницу.


3. Появляется надпись Cannot load transport file.


Значит проигрывателю нечего открывать. Введите в адресную строку Content ID
Например, http://127.0.0.1:6878/webui/player/00f4db11962e5144938234689ed934432dfd7f05


4. Как получить Content ID торрента.

Запускаем необходимый торрент. Нажимаем правой кнопкой мыши на область экрана Ace Stream, выбираем Поделиться и нажимаем Скопировать Content ID (он же написан чуть выше).

5. Нет кнопки Смотреть, Воспроизвести и т.д.

Переходим на страницу с торреном и нажимаем правой кнопкой мыши на ссылку загрузки торрента. В выбираем в меню Просмотреть через Ace Stream

6. Пишет bad bencoded data


Значит торрент имеет magnet-ссылку или этот файл нельзя открыть в Ace Stream. В этих случаях Ace Stream работать не будет.


IV

Установка Ace Stream на Linux.
Добовляем репозиторий Ace Stream в sources.list

 Открываем терминал и вводим:
sudo gedit /etc/apt/sources.list

Откроется текстовый редактор и нужно будет добавить:
#AceStream
deb http://repo.acestream.org/ubuntu/ raring main

потом сохранить файл и закрыть редактор.

Вводим в терминал:
sudo wget -O - http://repo.acestream.org/keys/acestream.public.key | sudo apt-key add -

Устанавливаем Ace Stream.

Обновляемся:
sudo apt-get update

Для установки Ace Stream вводим в терминал:
sudo apt-get install acestream-full

Если появляется ошибка:
The following packages have unmet dependencies:
acestream-player-data : Depends: libdvbpsi7 (>= 0.2.0) but it is not installable
                        E: Unable to correct problems, you have held broken packages.

значит не установлен необходимый для Ace Stream пакет и нужно будет установить libdvbpsi7
После установки libdvbpsi7 снова вводим
sudo apt-get install acestream-full

для установки Ace Stream.
Всё.

Для отключения рекламы в Ace Stream под Linux переходим в файловую систему и нажимаем на Поиск.
В поиск вводим acestream
Система должна найти папку acestreamplayer и acestream в /usr/share/acestreamplayer и /usr/share/acestream соответсвенно.
Переходим в папку acestreamplayer и заменяем папку skins на папку из архива.







Переходим в папку /usr/acestream/data/webui/html и заменяем файл player.html на скачанный.





Для копирования нужно обладать правами root.

Другие вопросы и ответы в комментариях.