Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AndroidTV YourTube client #233

Open
dmiceman opened this issue Aug 7, 2024 · 24 comments
Open

AndroidTV YourTube client #233

dmiceman opened this issue Aug 7, 2024 · 24 comments

Comments

@dmiceman
Copy link

dmiceman commented Aug 7, 2024

Здравствуйте. Нет ли у кого-нибудь идеи о путях решения такой проблемы: поставил zapret на роутер с openwrt, за ним телевизор и другие компы. На компах и на телевизоре в альтернативном клиенте Smart Youtube Beta все работает, не идеально, но приемлемо. Но вот официальный клиент ютуба как будто бы вообще никакого эффекта не видит. В zapret-hosts-user.txt googlevideo.com прописано. Плюс, zapret-hosts-auto.txt поддомены оттуда нахватал. Но вот никак. Нет ли у кого-нибудь идей, что еще ему может быть нужно? Заранее большое спасибо!

@bol-van
Copy link
Owner

bol-van commented Aug 7, 2024

смотреть в тцпдампе какой протокол
куик или тлс
тспу может по разному реагировать на куик от разных библиотек
если для устройства куик не обходится фиксируйте ему ип и затыкайте порт

@dmiceman
Copy link
Author

dmiceman commented Aug 7, 2024

Супер! Спасибо огромное! Действительно, там ходил UDP на 443 порт. При затыкании, переключится на TCP и все, кажется, стало хорошо.

@Laimfo
Copy link

Laimfo commented Aug 7, 2024

Супер! Спасибо огромное! Действительно, там ходил UDP на 443 порту. При затыкании, переключится на TCP и все, кажется, стало хорошо.

Привет, можешь объяснить для чайников что делать? Я в этой теме 0. zapret ели поставил, на пк Youtube в 4к летает, а на теликах пишет отсутствует подключение, причем только у youtube. (Keenetic giga)

@dmiceman
Copy link
Author

dmiceman commented Aug 8, 2024

Может быть кто-то, кто знаком с Keenetic что-то сможет точнее подсказать, я вот никогда с ним не общался. Но вообще, возможно, задача в том что бы не пропускать пакеты UDP на 443 порт с телевизора наружу, как в моем случае. Я даже думаю, задачу можно упростить, не пропускать вообще UDP пакеты на порт 443 из внутренней сети, что бы не возиться с назначением статического адреса. Правда не знаю, что при этом может отвалиться из сервисов гугла. Но, предположим, это допустимое упрощение. Тогда на роутере надо найти где настраивается Firewall, найти как добавить новое правило, которое должно звучать как «Из внутренней зоны во внешнюю, UDP (это важно) пакеты на 443 порт (тоже важно) не пропускать». Причем там наверняка будет выбор, делать drop пакетов или reject. Надо именно reject, что бы ничего не тупило. На древнем openwrt это выглядит так:
Screenshot_20240808_114033

@Laimfo
Copy link

Laimfo commented Aug 8, 2024

Спасибо, сначала вроде более-менее сделал, но через 2 часа всё стало как и раньше. Выставил TCP/3389 для телевизора, по гайду на сайте Keenetic. Может кто подсказать, может другой протокол поставить? Пробовал сделать как указано выше, но телек не видит подключения к инету. Влияет ли на это какой у тебя ip белый или серый?
image

@dmiceman
Copy link
Author

dmiceman commented Aug 8, 2024

Это вообще из другой оперы. Это правило разрешает входящие соединения из сети на телевизор на порт 3389, и это точно не то что нужно что бы ютуб на телевизоре работал. Если вы сделали блокировку UDP на 443 порт и оно через два часа перестало работать, не указали ли вы, случайно, в правиле текущий ip телевизора во внутренней сети? Они меняются периодически. Что бы этого не происходило, необходимо зафиксировать за телевизором конкретный ip где-то в настройках внутреннего DHCP-сервера. В Keenetic такое точно должно быть.

@gavrilovegor519
Copy link

Что бы этого не происходило, необходимо зафиксировать за телевизором конкретный ip где-то в настройках внутреннего DHCP-сервера. В Keenetic такое точно должно быть.

В Keenetic это делается регистрацией MAC-адреса ("устройства" в терминологии Keenetic) в веб-интерфейсе роутера, там присваивается имя устройства, и дальше с ним можно делать что угодно (присваивать постоянный IP, ставить "интернет-фильтры" (прописанные в самой прошивке DNS-сервисы + SkyDNS) для разных устройств, отслеживать скорость и потраченный трафик конкретного устройства, и так далее).

@VPO205
Copy link

VPO205 commented Aug 9, 2024

Подскажите, почему может не работать ютуб ни на андроид тв, ни на смарт тв LG и Samsung. На ПК и смартфонах всё работает идеально. В теме не разбираюсь совсем, куда копать? Еле разобрался, как накататить сам zapret. По инструкции выше пытался настроить, чтобы не пропускало пакеты на 443 порт, к сожалению не помогло ни на одном из устройств. Возможно у меня проблема в чём то другом, но как проверить?

@zatrit
Copy link

zatrit commented Aug 9, 2024

Если не помогает даже с запретом QUIC, то можно попробовать SmartTube. В связке с zapret у меня он отлично справляется

@maximwarner
Copy link

maximwarner commented Aug 11, 2024

Написал комментарий про костыль, который использую. Попробуйте у себя.

У меня точно та же ситуация на Android TV. 443 порт тоже не помог. Интересно то, что ютуб не может только стартовать под zapret, а после старта, отлично с ним работает. Я делаю так: подключаюсь к Wi-Fi без запрета. Ютуб, долго, но загружается, включается без ошибок сети. Затем снова переключаюсь на Wi-Fi с активным zapret и можно спокойно смотреть видео без каких-либо зависаний. До того, как закроете ютуб. Потом придется все это повторять.
Пока что, пока не нашел как побороть проблему с запуском, приходится использовать такой костыль. Попробуйте, может хоть так сможете смотреть.

@dmshel
Copy link

dmshel commented Aug 12, 2024

Написал комментарий про костыль, который использую. Попробуйте у себя.

У меня точно та же ситуация на Android TV. 443 порт тоже не помог. Интересно то, что ютуб не может только стартовать под zapret, а после старта, отлично с ним работает. Я делаю так: подключаюсь к Wi-Fi без запрета. Ютуб, долго, но загружается, включается без ошибок сети. Затем снова переключаюсь на Wi-Fi с активным zapret и можно спокойно смотреть видео без каких-либо зависаний. До того, как закроете ютуб. Потом придется все это повторять.
Пока что, пока не нашел как побороть проблему с запуском, приходится использовать такой костыль. Попробуйте, может хоть так сможете смотреть.

Аналогично, только тв самсунг, то открывает ютуб n-го раза и работает, то по 10 раз в ошибку падает при открытии, на всех др устройствах в сети все работает прекрасно

@maximwarner
Copy link

Мне помог этот конфиг! Ютуб на ATV теперь работает! Попробуйте тоже, у кого не работал #200 (comment)

@almirus
Copy link

almirus commented Aug 18, 2024

чтобы не делал, какие бы конфиги не ставил, обход работает ВЕЗДЕ (на компе, на телефоне), кроме стандартного youtube плеера на Android TV
просто пишет что нет сети (другие приложения работают отлично)

@bol-van
Copy link
Owner

bol-van commented Aug 18, 2024

сегодня разбирал по чьей-то просьбе дамп с телика самсунг средней степени старости
оказалось, что основная причина проблем - использование tls 1.2 и недостаточность стратегии для пробива проверки TLS ServerHello. то есть ответа сервера
и блокировка/замедление некоторых технических доменов облаков и самсунга
после замены стратегии на стратегию с фейками и добавления этих доменов в лист проблема ушла

и так на каждом девайсе надо смотреть дампы и изучать что там не работает
более простые рецепты можно получить только у тех, кто может разобраться и поделиться инфой по конкретному девайсу или группе девайсов

@almirus
Copy link

almirus commented Aug 18, 2024

@bol-van это наверно на специфической ОС типа Tizen

У меня же Android TV 11 на Nvidia Shiled 2019
и Amazon Fire stick 4max - Android 9

на обоих стандартный клиент, если без zapret на openwrt запускать то интерфейс приложения Youtube появляется через несколько десятков секунд, но если интерфейс был загружен, а потом запустить nfqws --dpi-desync=split2 то видео не тормозит
если выгрузить Youtube и запустить с активным zapret то сразу нет сети и приложение не запускается

@Laimfo
Copy link

Laimfo commented Aug 18, 2024

Долго не мог вернуться к этой теме и попробовать варианты описаные выше. Но один знакомый посоветовал обратиться к провайдеру и подключить статический ip. После подключения заработал YouTube на Xbox series X. Возможно роль сыграл и dns который я ставил для Xbox, чтоб приставка работала в России. По итогу zapret + dns + ip = 4K на телике без тормозов (не могу утверждать что только это повлияло на работу YouTube на консоли).

@bol-van
Copy link
Owner

bol-van commented Aug 18, 2024

стратегия обхода может ломать какой-то технический ресурс
или же быть недостаточной для пробива механизма детекта плохих доменов на дпи
этот механизм может быть общим для блокировок и замедлений, только действие разное
это что я выяснил по самсунгу
надо дампы изучать

@almirus
Copy link

almirus commented Aug 18, 2024

@bol-van делал впервые, надеюсь правильно собрал tcpdump -i wl1-ap0 host 192.168.1.219 -U -s0 -w /tmp/dump.txt

МТС Москва
итак, openwrt который раздает wifi

  1. подключен Shield, Android Tv, стандартный youtube клиент, zapret не запущен; медленно грузится интерфейс приложения, списки видео появляются через десятки секунд, ролики жутко тормозят
    dump_without_zapret.zip

  2. подключен Shield, Android Tv, стандартный youtube клиент, zapret запущен (NFQWS_OPT_DESYNC="--dpi-desync=fake,split2 --dpi-desync-ttl=7" пробовал разные варианты), приложение Youtube сразу сообщает что нет сети, но если список роликов предварительно загружен, то ролики летают
    dump_with_zapret.zip

где то нашел такую проверку в лоб
curl https://www.youtube.com/ --tls-max 1.2 - тормозит

@almirus
Copy link

almirus commented Aug 21, 2024

@bol-van я собрал пакеты, выше

@bol-van
Copy link
Owner

bol-van commented Aug 22, 2024

В дампе без zapret hdrezka блокируется в варианте "зависание" (блок tcp tuple на dpi)
youtube теряет пакеты
В дампе с zapret (?) youtube теряет пакеты
Вывод : либо zapret не работает (неправильно настроен, не срабатывает по какой-то причине), либо стратегия не работает. Точнее сказать не могу, потому что дамп с внутреннего интерфейса, дурение не видно

@voidprox
Copy link

voidprox commented Aug 22, 2024

@bol-van

сегодня разбирал по чьей-то просьбе дамп с телика самсунг средней степени старости оказалось, что основная причина проблем - использование tls 1.2 и недостаточность стратегии для пробива проверки TLS ServerHello. то есть ответа сервера и блокировка/замедление некоторых технических доменов облаков и самсунга после замены стратегии на стратегию с фейками и добавления этих доменов в лист проблема ушла

А можно узнать весь список заблокированных доменов самсунга? И что за стратегия использовалась.

@bol-van
Copy link
Owner

bol-van commented Aug 22, 2024

там было только
lcprd1.samsungcloudsolution.net
стратегия нужна с fake, если телик пользуется tls 1.2

@almirus
Copy link

almirus commented Aug 25, 2024

лично у меня на мгтс (мтс) android tv заработал с таким конфигом

MODE=nfqws
# apply fooling to http
MODE_HTTP=0
# for nfqws only. support http keep alives. enable only if DPI checks for http request in any outgoing packet
MODE_HTTP_KEEPALIVE=0
# apply fooling to https
MODE_HTTPS=1
# apply fooling to quic
MODE_QUIC=1
# none,ipset,hostlist,autohostlist
MODE_FILTER=none

NFQWS_OPT_DESYNC="--dpi-desync=fake,split2 --dpi-desync-split-pos=1 --dpi-desync-ttl=3 --dpi-desync-fooling=md5sig"

очень смущает MODE_FILTER=none но подозреваю что раньше у меня не работало, так как в этом списке не было всех блокируемых доменов гугла для Android TV
а сейчас получается все домены проходят через мясорубку...

@Panaman123
Copy link

Взываю к помощи! Провайдер Сибирский Медведь, Краснодар. Zapret на keenetic работал относительно долгое время, пару недель назад перестало. Сегодня решил разобраться. Пробовал кучу разных комбинаций, но так не не победил. При этом, на компьютере работает в части браузеров (opera, edge), не работает в другой (яндекс, firefox). На android не работает ни в родном приложении, ни в браузере ни в smarttube.
Удалось победить на android через приложение byedpi с параметрами -s1 -o1 -Ar -o1 -At - f-1 -r1+s -As
Не могу понять, как перевести эти параметры "на язык" zapretа

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests