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,2x2 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 

ссылка на оригинал статьи http://habrahabr.ru/post/230471/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *