МГТС ТВ интернет

IPTV от МГТС: поиск каналов

Write a paper, and give a talk, about any idea, no matter how insignificant it may seem to you.
S. P. Jones, How to write a great research paper
В Москве МГТС проводит мероприятия по замене медной проводки на оптику по технологии GPON. В результате абоненты МГТС получают возможность пользоваться не только телефонной связью, но и доступом в Интернет, а также смотреть IP-телевидение. Для просмотра программ ТВ МГТС предлагает арендовать приставку, которая и обеспечит просмотр.
Ниже я расскажу, как, используя подручные средства Debian Linux, найти каналы, доступные для просмотра без приставки.
В последнее время всё чаще от знакомых и коллег по работе я стал слышать новое слово GPON — рассказ сопровождался душераздирающими подробностями: дескать, приходят к тебе в дом люди от МГТС, режут старый медный телефонный провод, прибивают около входной двери розетку 220 В и коробочку, через которую теперь и работает телефон, а при желании и Интернет, и даже телевидение.
Дошло до того, что, будучи в гостях, я узрел это самое телевидение через GPON своими глазами — около телевизора красовалась приставка с надписью МТС, а в коридоре поблёскивала лампочками белая коробочка ZTE ZXA10 F660. Приставку с ZTE F660 соединял заурядный двухпарный кабель Cat5 с разъёмами RJ45 на концах; из описания ZTE F660 стало ясно, что для передачи данных на приставку используется Ethernet. Возникла крамольная мысль: «А ну как подключить вместо приставки ноутбук — смогу посмотреть ТВ?».
Поиски привели меня на подходящий форум. Оказалось, что вопрос о просмотре ТВ без приставки мучает не только меня:
Возможно ли смотреть телеканалы непосредственно на компьютере? У большинства провайдеров скачиваешь плейлист и открываешь его в клиенте, например, VLC. В МГТС GPON все заточено на использование приставки и телевизора… техподдержка от вопроса впадает в ступор. Если у кого-то был опыт настройки, поделитесь, плс.
Из чтения форума стало ясно, что если ZTE F660 настроен «по умолчанию», то для просмотра ТВ обязательно подключаться в гнездо LAN4, а также надо обзавестись этим самым «плейлистом» (официального «плейлиста» от МГТС не существует).
Удалось найти несколько «плейлистов»: например, .
Оказалось, что только некоторые каналы из «плейлистов» работают. А некоторые работают половинчато — вместо картинки показывает мусор, но звук транслируется нормально (такие каналы зашифрованы, для их просмотра требуется отдельно заплатить).
Возникла мысль, что «плейлист» — штука изменчивая, и стоит сделать собственный при помощи перебора подходящих диапазонов IP-адресов на основе содержимого старых «плейлистов». Чтобы не проводить перебор вручную, был написан простой скрипт на bash. Скрипт перебирает адреса, с которых возможно ведётся вещание, и, в случае удачи, выдёргивает один кадр телепередачи:
#!/bin/bash for i in $(seq 1 255); do IP=239.255.2.$i URL=udp://@$IP:5500 echo «== $URL ==» mplayer -ac none -really-quiet -vo png -frames 1 $URL 2>/dev/null mv 00000001.png $IP.png done
Для каждого из IP-адресов, для которых удалось поймать ТВ-канал, будет создан файл с именем вида $IP.png.

Далее не составляет труда стереть те файлы, которые соответствуют шифрованным (или нежелательным каналам) и сгенерировать собственный M3U «плейлист»:
( echo ‘#EXTM3U’ ; \ ls -1 *png | sort -V | sed «s/^\(.*\)\.png/#EXTINF:-1,\1\nudp:\/\/@\1\:5500/» ) > playlist
У меня получился вот такой список на 28 открытых каналов:
#EXTM3U #EXTINF:-1,5 канал udp://@239.255.2.18:5500 #EXTINF:-1,Russian Musicbox udp://@239.255.2.37:5500 #EXTINF:-1,Детский udp://@239.255.2.47:5500 #EXTINF:-1,ТРО udp://@239.255.2.52:5500 #EXTINF:-1,Перец udp://@239.255.2.54:5500 #EXTINF:-1,Disney udp://@239.255.2.57:5500 #EXTINF:-1,ТВЦ udp://@239.255.2.58:5500 #EXTINF:-1,РЕН ТВ udp://@239.255.2.59:5500 #EXTINF:-1,СТС udp://@239.255.2.61:5500 #EXTINF:-1,Ю udp://@239.255.2.62:5500 #EXTINF:-1,Домашний udp://@239.255.2.63:5500 #EXTINF:-1,Россия 2 udp://@239.255.2.65:5500 #EXTINF:-1,Россия 1 udp://@239.255.2.67:5500 #EXTINF:-1,Россия К udp://@239.255.2.68:5500 #EXTINF:-1,ТВ3 udp://@239.255.2.90:5500 #EXTINF:-1,Звезда udp://@239.255.2.91:5500 #EXTINF:-1,НТВ udp://@239.255.2.95:5500 #EXTINF:-1,Первый канал udp://@239.255.2.97:5500 #EXTINF:-1,ПЯТНИЦА! udp://@239.255.2.98:5500 #EXTINF:-1,ТНТ udp://@239.255.2.100:5500 #EXTINF:-1,Россия 24 udp://@239.255.2.109:5500 #EXTINF:-1,СТС love udp://@239.255.2.112:5500 #EXTINF:-1,2×2 udp://@239.255.2.115:5500 #EXTINF:-1,PRO Бизнес udp://@239.255.2.119:5500 #EXTINF:-1,Россия HD udp://@239.255.2.120:5500 #EXTINF:-1,HD life udp://@239.255.2.156:5500 #EXTINF:-1,Первый канал HD udp://@239.255.2.185:5500 #EXTINF:-1,ОТР udp://@239.255.2.210:5500
Применение описанной выше методики как нельзя лучше подтверждает эмпирический закон Парето: небольшими усилиями (написание простейшего скрипта и несколько минут на просмотр «галереи картинок») удалось получить вполне пригодный для практического применения результат (M3U «плейлист»).
Конечно, хотелось бы получать «плейлист» с минимальным вложением ручного труда. Сделать этом можно, к примеру, просмотрев трафик сетевой приставки сразу после её включения и приложив усилия по расшифровке протокола, по которому приставка получает данные о списке каналов. Но это совсем другая история…
P.S. Перед публикацией я решил запустить скрипт, перебирающий адреса, ещё разок и обнаружил по крайней мере три новых канала:
#EXTINF:-1,ТНВ Татарстан udp://@239.255.2.86:5500 #EXTINF:-1,Ля Минор udp://@239.255.2.233:5500 #EXTINF:-1,МТС udp://@239.255.2.249:5500