Реанимируем SmartTV на телевизоре SONY Bravia под OperaTV своими клешнями
В 2014 году стал я (не)счастливым обладателем телевизора Sony Bravia kdl-24w605a. Поселился сей агрегат на кухне и стал мне постоянно трепать нервы своим кривым блоком Smart TV. Под конец стал использоваться в основном для просмотра YouTube и фильмов через приложение медиасервера PLEX (сам сервер plex установлен на моем домашнем компе). Жили не тужили. В 2018 году мне достался прекрасный мини комп Asus EeeBox PC EB1501, который был подключен как ТВ приставка и поселился под телевизором.
Комп жил и продолжает жить на кухне под телевизором. Но вот незадача... Место он на столе занимает, вместе с ним его занимают клава и мышь. Да и сидя за столом и залипая на сериальчики, хочется управлять просмотром с пульта. В комплекте с компом идёт пуль, но он работает только в определенных приложениях... Да и не хочется держать на кухне два пульта, имея на стене телек со Smart TV.
Летом компания Sony подкинула очередную свинью. Было разорвано соглашение с поставщиком приложений сервисом VEWD TV Store. Разом с телевизора пропали все приложения, кроме нескольких, используемых без данного сервиса. С негодованием обладателей телевизоров на данной прошивке можно ознакомиться на тематических форумах и пабликах.
Продолжая смотреть с телека Ютуб (который остался) я стал думать, что делать. Покупать приставку? А зачем я покупал телек со SmartTV?! Использовать комп - не удобно...
Решение в итоге нашлось! На это решение меня натолкнуло приложение Fork Player, а точнее то, как народ им пользуется без магазина приложений. Если в кратце, то просто прописывается определенный DNS сервер в настройках телевизора, после чего, телевизор при запуске приложения IVI перенаправляется на сервер Fork Player. Отсюда мне стало понятно две вещи:
1) Приложения для данной линейки телевизоров это просто HTML5 сайты
2) Можно отловить запрос на какое нибудь из этих сайтов и перенаправить на локальный сервер.
Сам по себе Fork Player мне не очень нравится, да и PLEXa не хватает. Да и хочется иметь более одного дополнительного приложения. Значит надо ваять своё приложение, которое будет выполнять роль меню. Ну что же... займемся делом...
Сначала нужно разобраться с перенаправлением приложения. В качестве жертвенного приложения я выбрал MEGOGO. Перенаправлять же будем при помощи настроек DNS сервера на домашнем роутере. У меня это Mikrotik rb951, на его примере и буду показывае. Но можно использовать любой другой роутер, который позволяет прописать статические DNS записи. А можно и поднять DNS сервер на домашнем компе и прописать его в настройках ТВ.
Подключаемся через WInBox и проходим по пути IP -> DNS. В открывшемся окне жмём кнопку Static. Откроется список записей. Жмем плюсик для создания новой записи и прописываем как на скриншоте ниже. Естественно, ip адрес пишем для того компа, на котором будет располагаться приложение.
Данным действием мы перенаправили все запросы на сервера megogo на комп в локальной сети. В моём случае это всё тот же многострадальный Asus EeeBox.
Следующим шагом нам нужно развернуть вебсервер на компе. Я не стал заморачиваться и поднял самый обычный апач. Проверяем... И да - при попытке запустить приложение Megogo, нас перенаправляет на стартовую страницу Апача.
Отлично. Теперь нужно писать само приложение, по сути - веб траницу. Но как же быть с пультом? Обычные веб сайты не рассчитаны под навигацию при помощи стрелок. Порывшись в кладезе всех мировых знаний, именуемом Гугл, обнаружил Java Script библиотеку для разработки кроссплатформенных приложений для SmartTV. Называется сиё чудо Smartbox.
О том, что оно умеет и для чего нужно, можно почитать в статейке на Хабре: https://habr.com/ru/post/211236/
А скачать можно с гитхаба: https://github.com/immosmart/smartbox
Процесс работы с HTML, JS, и CSS приводить в подробностях не буду. Просто взял, идущее в комплекте демо приложение и подкрутил его по своему вкусу и требованиям.
Отмечу только важный момент. При работе на ТВ стандартные теги ссылок "<a href="..."> не срабатывают. Нужно вешать событие onclick. Например так: onclick="return location.href = 'http://plex.tv/web/tv/opera'
И кстати о ссылках. В коде достаточно задать просто ссылку на нужное приложение, чтобы запустить его. Вот те, которые использовал я:
1) PLEX - http://plex.tv/web/tv/opera
2) Fork Player - http://obovse.ru/ForkPlayer2.5/index.html
3) OTT player - http://widget.ottplayer.es/test/index.html
В итоге, покопался часок с версткой и скриптами и получил готовое приложение. На волне хайпа, связанного с тизером ремейка моей любимой игры Готика (да да да, товарищи Готоманы, вы правильно поняли, откуда мой никнейм), я решил стилизовать его именно под Готику 1.
Получилось вполне симпатично, как по мне!
Замечу, что не обязательно так заморачиваться с приложением. В принципе, достаточно сделать пустую страничку с редиректом на нужное приложение, но тогда, оно будет только одно, а в виде приложения можно сделать сколько угодно.
Ну что? Проверим на телевизоре?
Работает!
Что могу заметить... Надо допиливать, так как, сделано на коленке на скорую руку и есть простор для творчества. А так - вполне работоспособно и функционально.
Если кому нужно, прилагаю архивчик со своим приложением. Спецов веб разработки прошу не плакать кровавыми слезами. Писалось исключительно теста ради и на скорую руку.
Всем добра и нормальных телевизоров!
































