Portaller - тепер з підтримкою Pandora, Spotify, Rdio, Netflix і Amazon Video на всіх пристроях

Portaller - тепер з підтримкою Pandora, Spotify, Rdio, Netflix і Amazon Video на всіх пристроях

Привіт.

Хочу розповісти вам кілька цікавих новин про те, що відбувається з 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 - вона може виявитися корисною.

Приходьте, користуйтеся на здоров'я.

Image