Pull to refresh

Portaller — теперь с поддержкой Pandora, Spotify, Rdio, Netflix и Amazon Video на всех устройствах

Reading time 2 min
Views 6K
Привет.
Хочу рассказать вам несколько интересных новостей о том, что происходит с Portaller — небольшим сервисом для использования Pandora, Spotify, Netflix и еще нескольких сервисов за пределами США.

Одной строкой, если у вас нет времени идти под кат — кроме Pandora и Spotify теперь поддерживается Netflix и Amazon Video, сервис работает на всех устройствах, включая клиентов на Android (почему на нем такой акцент — читайте ниже) и к нему можно присоединиться на GitHub.



Проект на GitHub
Главное, что происходит с ним в это непростое время — он работает и остается бесплатным и открытым. Если вы хотите чем-то помочь или же просто «сделать себе такой же» — пожалуйста, присоединяйтесь.

Сколько нужно трафика
Когда сервис только запускался, я, как и многие комментаторы, был весьма скептичен по поводу мощности и запаса трафика на младших дроплетах в DigitalOcean. Сомнения оказались напрасными — все поддерживаемые сейчас сервисы умеют передавать контент напрямую клиенту, используя проксирование только для того, чтобы создать/оплатить акаунт, авторизоваться или передать управляющие команды. Суммарный объем месячного трафика при таком использовании — в районе 200ГБ.

Какие сервисы поддерживаются
На старте сервис умел работать только с Pandora и Spotify, и только в браузере или в приложениях на iOS. Сейчас поддерживаются пять сервисов — три аудио (Pandora, Spotify, Rdio) и два видео (Netflix и Amazon Video). Что гораздо важнее, все они работают на всех платформах — в браузере, десктопных клиентах, телевизорах со SmartTV, на iOS и Android.

Какие возникают сложности
Я специально сделал акцент на поддержке платформ из-за её нетривиальности, особенно на Android — вдруг вам когда-нибудь пригодится. Дело в том, что многие приложения на Android при работе с SSL используют библиотеки без поддержки SNI (Server Name Indication) и, соответственно, не передают имя домена внутри SSL сессии. Из-за этого простое проксирование запросов силами sniproxy/haproxy становится невозможным — приложение ведет себя, условно, как наивная девушка, и у них получается примерно такой диалог:

Pandora: — Я пришла. Давай (чего-то ждет)
SNIproxy: — Что дать-то? (не понимает что нужно отдать)

Pandora: — Я пришла. Давай (повторяет запрос и всё ещё чего-то ждет)
SNIproxy: — Что дать-то? (всё ещё ничего не понимает)

Pandora: — Ну и ладно, я ухожу (разрывает конекшен, показывает пользователю сообщение об ошибке)

SNIproxy разводит руками и пишет об ошибке в лог.


Ну вы поняли. Если же приложение использует SNI, то уже с первой фразы картина меняется — оно прямо сообщает, к какому домену хочет обратиться и сложностей с проксированием таких запросов не возникает. Решение я нашел только одно — для каждого домена, с которым такое приложение хочет работать по SSL, нужно поднимать отдельный IP и описывать его в виде отдельной зоны в DNS. В этом случае проксирование на этом адресе будет работать только с одним доменом и приложение это, понятное дело, устроит.

Практически конец
Напоследок хочу дать вам вот такую ссылку — http://portaller.com/setup. Там рассказывается как настроить DNS на разных устройствах (в общем-то никакого rocket science), но если вам понадобится узнать как получить доступ к US-only SmartTV приложениям на телевизорах Samsung — она может оказаться полезной.

Приходите, пользуйтесь на здоровье.
Tags:
Hubs:
+9
Comments 15
Comments Comments 15

Articles