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 — она может оказаться полезной.

    Приходите, пользуйтесь на здоровье.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 15

      0
      SNI поддерживается с андроида 3+ — en.wikipedia.org/wiki/Server_Name_Indication
      Сам с этим столкнулся, когда использовал SSL от CloudFlare.
        0
        а как можно оплатить, может кто подскажет? К примеру Netflix
          0
          С любой кредитки. Ни Netflix, ни Pandora не проверяют страну, в которой выдана карта.
            0
            Зависит от сервиса.
            Если нет привязки к стране, то платить можно любой картой.
            Например, Spotify дает оплатить только картой страны, к которой привязан акаунт. Тогда или искать родню/знакомых в той стране, или покупать в инете redeem/gift-карты.
            0
            У меня вопрос — я правильно понимаю, что сервис используется только при создании сессии, т.е. не будет увеличивать пинг? Т.е. прописав ваш ДНС в системе, я по-прежнему спокойно могу скажем играть онлайн, без негативного эффекта на пинг?
              0
              При первом запросе к DNS серверу, когда происходит определение IP адреса для домена, время ответа, конечно, будет выше — все же сервер находится в Нью-Йорке, а сервер вашего провайдера — в Риге. В моём случае, напрямую от провайдера я получаю ответ за 0.086 секунды, а через сервер в Нью-Йорке — за 0.265. Правда, не могу сказать что эта разница как-то заметна (при браузинге, во всяком случае). При втором и последующих запросах разницы уже может и не быть, так как ваш клиент может закешировать полученный ответ.

              Если же говорить именно про скорость работы с сервисами, то Pandora, Spotify, Rdio, Netflix и Amazon Video в момент авторизации и установки соединения могут работать медленнее. На скорость работы с остальными сервисами (и с играми в том числе) повлиять никак не должно.
              0
              Можно ещё немного сэкономить трафика если сайт захостить на github pages. Он у вас всё равно полностью на статике.
                0
                Спасибо за то, что не бросаете.
                  0
                  А как можно настроить на iPhone, что бы не через wifi сеть было. Искал как указать ДНС при работе через 3g/LTE и не нашел
                    0
                    Единственный известный мне способ (без рутования телефона), это подключаться к VPN, который выдаст правильные настройки для DNS.
                    0
                    внезапно сегодня Spotify начал говорить, что «ваша страна отличается от указанной в профиле». В профиле стоит США, днс прописаны. До того работало отлично. Что это может быть?
                      +1
                      Вводная часть. У Spotify все устроено так, что подмена страны нужна только для создания акаунта. Весь остальной трафик между клиентом и Spotify ходит напрямую, без какого-либо проксирования — Spotify допускает, что люди могут путешествовать и поэтому (это моя гипотеза) обычно не запрещает использование своих сервисов из других стран — главное, чтобы человек в момент создания акаунта был на территории США.

                      По каким-то причинам для некоторых акаунтов иногда начинают показывать вот такое сообщение об ошибке. Я для тестирования использую 3 разных акаунта, заведенных в разное время, и сейчас 2 из них работают отлично, а для третьего пишут, что «страна отличается от указанной».

                      Исправить ситуацию можно двумя способами — переключиться на Premium акаунт, о котором он пишет в сообщении или просто завести новый. Если найдете еще какой-либо способ — расскажите, пожалуйста.
                        0
                        Проблема с Premium в том, что оплата российской карточкой ему не нравится (хотя я был готов платить десятку в месяц за хороший сервис). И пока я полез делать себе Entropay, внезапно Spotify сменил гнев на милость и заработал за так.
                          0
                          Entropay не проходит, если сервис пробует проверить страну в которой была выдана карта — так происходит при попытке оплатить кино в Амазоне, например. Более надежный способ — подарочные карты, для того же Spotify они есть.
                          0

                      Only users with full accounts can post comments. Log in, please.