PDA

Показать полную графическую версию : [решено] Удаление дубликатов строк из текстового файла со сравнением по две строки


Страниц : 1 2 [3]

YuS_2
11-08-2020, 09:10
Я, честно говоря, даже не знаю что это такое) »
Ну, в принципе, жесткого стандарта, наверное и не существует. Изначально это были плейлисты для музыкальных проигрывателей, а со временем их приспособили и для видеоплееров... и в этом, как раз, содержится вся проблема.
m3u (https://en.wikipedia.org/wiki/M3U)

У всех интернет-провайдеров же цифровое тв практически бесплатно, так что не довелось столкнуться с iptv. »
Провайдеры - они все разные. Разное количество каналов предлагают, т.е. могут присутствовать не все которые хотелось бы видеть, к тому же, не все предлагают их бесплатно... в общем, это тема отдельного разговора...

Тут тоже самое, только еще какой-то #EXTGRP появился. »
Проблема в том, что там может и не такое появиться. Каждый плеер может что-то свое добавить и в этом беда... более-менее стандартно, поддерживаются всеми плеерами только две строки #EXTINF плюс ссылка (формат которых тоже может быть разным), именно поэтому листы пытаются привести к такому виду и обрабатывать пары строк.
Вот, валидный и дополненный пример из поста выше:
#EXTM3U url-tvg="http://server/jtv.zip" cache=500 deinterlace=1 aspect-ratio=4:3 croppadd=10x10 tvg-shift=0
#EXTINF:-1 ,0 - FREE-IPTV
/$USB_DIR/sda1/free_ip.m3u
#EXTINF:-1 ,Первый канал
#EXTGRP:Российские
http://gorod.tv/s/live/1/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Россия 1
http://gorod.tv/s/live/2/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Матч ТВ
http://gorod.tv/s/live/3/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,НТВ
http://gorod.tv/s/live/4/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Пятый канал
http://gorod.tv/s/live/5/46.252.219.59/1561632042766/0.m3u8
Здесь какая-то информация
http://gorod.tv/s/live/1/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Пятый канал
#EXTINF:-1 ,Россия К
#EXTGRP:Российские
http://gorod.tv/s/live/6/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Москва 24
#EXTVLCOPT:http-user-agent=smartlabs
http://91.231.219.145:80/tv_moscow_24/video.m3u8
#EXTINF:-1 ,Санкт-Петербург
http://91.231.219.145:80/tv_sankt_peterburg/video.m3u8
https://smarttvnews.ru/wp-content/uploads/2018/11/BT-2016-logo_color7890.png
https://smarttvnews.ru/wp-content/uploads/2018/11/BT-2016-logo_color7890.png
#EXTINF:-1 ,Discovery
http://hls-v3-spbtv.msk.spbtv.com/for_spb/msk/ipv3/154.m3u8
#EXTINF:-1 ,NASA TV
http://hls-v3-spbtv.msk.spbtv.com/for_spb/msk/ipv3/17.m3u8
#EXTINF:-1 ,Россия 24
http://gorod.tv/s/live/7/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Карусель
http://gorod.tv/s/live/8/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Первый канал
#EXTGRP:Российские
http://gorod.tv/s/live/1/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Россия 1
http://gorod.tv/s/live/2/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Матч ТВ
http://gorod.tv/s/live/3/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,НТВ
http://gorod.tv/s/live/4/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Пятый канал
http://gorod.tv/s/live/5/46.252.219.59/1561632042766/0.m3u8
Здесь какая-то информация
http://gorod.tv/s/live/1/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Пятый канал
#EXTINF:-1 ,Россия К
#EXTGRP:Российские
#EXTVLCOPT:http-user-agent=smartlabs
http://gorod.tv/s/live/6/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Москва 24
http://91.231.219.145:80/tv_moscow_24/video.m3u8
#EXTINF:-1 ,Санкт-Петербург
http://91.231.219.145:80/tv_sankt_peterburg/video.m3u8
https://smarttvnews.ru/wp-content/uploads/2018/11/BT-2016-logo_color7890.png
https://smarttvnews.ru/wp-content/uploads/2018/11/BT-2016-logo_color7890.png
#EXTINF:-1 ,Discovery
http://hls-v3-spbtv.msk.spbtv.com/for_spb/msk/ipv3/154.m3u8
#EXTINF:-1 ,NASA TV
http://hls-v3-spbtv.msk.spbtv.com/for_spb/msk/ipv3/17.m3u8
#EXTINF:-1 ,Россия 24
http://gorod.tv/s/live/7/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Карусель
http://gorod.tv/s/live/8/46.252.219.59/1561632042766/0.m3u8

Теперь работает для всех трех примеров. »
Увы и ах... не совсем верно работает...
И кстати, сортировку лучше не по ссылкам делать, ибо часто меняются, а по наименованиям каналов.

Fors1k
11-08-2020, 18:00
Провайдеры - они все разные. »
Да их же всего-то три штуки: Билайн, МТС, Мегафон. ТВ дают бесплатно.
может и не такое появиться. Пример... »
param(
$pathIN = "C:\files\list.txt",
$pathOUT = "C:\files\list_new.txt"
)cls

$List=((Get-Content $pathIN -Raw) -replace "#EXT[^I].+?`r`n",''|
sls "#E[^#]+?(\.m3u.?|:\d{4})(?=`r|$)"-All).Matches.Value|
sort{($_-split"`r`n")[1]} -u| sort{($_-split"`r`n")[0]} -u
$List|out-file $pathOUT
#EXTINF:-1 ,0 - FREE-IPTV
/$USB_DIR/sda1/free_ip.m3u
#EXTINF:-1 ,Discovery
http://hls-v3-spbtv.msk.spbtv.com/for_spb/msk/ipv3/154.m3u8
#EXTINF:-1 ,NASA TV
http://hls-v3-spbtv.msk.spbtv.com/for_spb/msk/ipv3/17.m3u8
#EXTINF:-1 ,Карусель
http://gorod.tv/s/live/8/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Матч ТВ
http://gorod.tv/s/live/3/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Москва 24
http://91.231.219.145:80/tv_moscow_24/video.m3u8
#EXTINF:-1 ,НТВ
http://gorod.tv/s/live/4/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Первый канал
http://gorod.tv/s/live/1/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Пятый канал
http://gorod.tv/s/live/5/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Россия 1
http://gorod.tv/s/live/2/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Россия 24
http://gorod.tv/s/live/7/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Россия К
http://gorod.tv/s/live/6/46.252.219.59/1561632042766/0.m3u8
#EXTINF:-1 ,Санкт-Петербург
http://91.231.219.145:80/tv_sankt_peterburg/video.m3u8
И кстати, сортировку лучше не по ссылкам делать, ибо часто меняются, а по наименованиям каналов. »
Если делать сортировку по именам каналов, то в List1 получим 2 канала "Киев". Если по ссылкам, то получим 2 канала "Украина".
Так что, видимо, надо сортировать по обоим параметрам. Теперь, по идее, будет работать для любых примеров.

Uragan66
11-08-2020, 20:23
Да их же всего-то три штуки: Билайн, МТС, Мегафон. ТВ дают бесплатно »
Fors1k, провайдеров IPTV ну очень много... Есть официальные, есть просто рестримеры. Платные и бесплатные.
Многие провайдеры интернета предоставляют своим пользователям и бесплатное ТВ по мультикасту.
Нюансов там очень много, но тема не об этом...
Sorry за оффтоп

Uragan66
16-08-2020, 09:17
И кстати, сортировку лучше не по ссылкам делать, ибо часто меняются, а по наименованиям каналов »
Сортировка по наименованию канала конечно лучше выглядит, как по визуальному восприятию, так и при поиске определённого канала в плеере.
Но как сделать сортировку по имени канала, если в строке перед названием канала есть дополнительные директивы, к примеру:
#EXTINF:0 group-title="Русские" tvg-id="rossia1" tvg-logo="https://pbs.twimg.com/media/DxnvslfWsAE6Sys.png",Россия 1 HD
https://meta.vcdn.biz/30560520b9dacb6e03aae2bc57bd8d78_megogo/vod/fs/o/41139221/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="5kanal-ru" tvg-logo="https://pbs.twimg.com/media/DxnwycUX4AAaKJp.png",Пятый канал
https://meta.vcdn.biz/bd7779421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="mir-premium" tvg-logo="https://pbs.twimg.com/media/DxnzHGTWsAMs6Cd.png",Мир Premium HD
https://meta.vcdn.biz/7cb30d763564c992476e35512340ec89_megogo/vod/fs/o/28401691/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="otr" tvg-logo="https://pbs.twimg.com/media/DxnzY6kWsAESz3i.png",ОТР
https://meta.vcdn.biz/6702b90d26a9893506c499d0af1d6a58_megogo/vod/fs/o/41139191/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="piatnica" tvg-logo="https://pbs.twimg.com/media/Dxnx_cSWsAETWIm.png",Пятница!
https://meta.vcdn.biz/5b39f9d7689deb889ec1ee82c2c05328_megogo/vod/fs/o/16283521/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="match-tv" tvg-logo="https://pbs.twimg.com/media/Dxnv4yWW0AArM1C.png",Матч ТВ
https://meta.vcdn.biz/fb2879b1db7b9774b142918ea4521488_megogo/vod/fs/o/36426601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="tnt" tvg-logo="https://pbs.twimg.com/media/DxnwsTmWoAA5iYu.png",ТНТ
https://meta.vcdn.biz/1ff4118dc0fefcbd3ce5ae5fdf2fc482_megogo/vod/fs/o/40500701/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
как отсортировать, чтобы получить:
#EXTINF:0 group-title="Русские" tvg-id="match-tv" tvg-logo="https://pbs.twimg.com/media/Dxnv4yWW0AArM1C.png",Матч ТВ
https://meta.vcdn.biz/fb2879b1db7b9774b142918ea4521488_megogo/vod/fs/o/36426601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="mir-premium" tvg-logo="https://pbs.twimg.com/media/DxnzHGTWsAMs6Cd.png",Мир Premium HD
https://meta.vcdn.biz/7cb30d763564c992476e35512340ec89_megogo/vod/fs/o/28401691/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="otr" tvg-logo="https://pbs.twimg.com/media/DxnzY6kWsAESz3i.png",ОТР
https://meta.vcdn.biz/6702b90d26a9893506c499d0af1d6a58_megogo/vod/fs/o/41139191/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="piatnica" tvg-logo="https://pbs.twimg.com/media/Dxnx_cSWsAETWIm.png",Пятница!
https://meta.vcdn.biz/5b39f9d7689deb889ec1ee82c2c05328_megogo/vod/fs/o/16283521/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="5kanal-ru" tvg-logo="https://pbs.twimg.com/media/DxnwycUX4AAaKJp.png",Пятый канал
https://meta.vcdn.biz/bd7779421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="rossia1" tvg-logo="https://pbs.twimg.com/media/DxnvslfWsAE6Sys.png",Россия 1 HD
https://meta.vcdn.biz/30560520b9dacb6e03aae2bc57bd8d78_megogo/vod/fs/o/41139221/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="tnt" tvg-logo="https://pbs.twimg.com/media/DxnwsTmWoAA5iYu.png",ТНТ
https://meta.vcdn.biz/1ff4118dc0fefcbd3ce5ae5fdf2fc482_megogo/vod/fs/o/40500701/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8

Пытался когда-то сделать такую сортировку, но не получилось...

Fors1k
16-08-2020, 11:32
param(
$path = "C:\files\list.txt"
)cls

gc $path -re 2|sort{($_|sls ',.+').Matches.Value}

Foreigner
16-08-2020, 11:43
Get-Content 1.m3u -ReadCount 2 | Sort-Object { $_[0].Split(',')[1] }

Uragan66
16-08-2020, 14:16
Fors1k, к сожалению, Ваш код не подходит для плейлистов, где в обязательном порядке должны считываться по две строки (строка с именем канала и ссылка). Код, предложенный Вами, их перекручивает.
Foreigner, Ваш код строки не перекручивает, но и алфавитной сортировки, именно по имени канала, не возвращает.

Fors1k
16-08-2020, 14:26
Только что запустил код. И мой, и от Foreigner выдает результат, который вы предоставили, как ожидаемый.

Uragan66
16-08-2020, 14:39
Fors1k, да, действительно... мои извинения. Пример просто немного неудачный представил.
Но и первый и второй код будет работать только с "чистыми" строками. Если будет, к примеру, директива объявления плейлиста #EXTM3U (самой первой строкой), то скрипты сработают как я выше написал.
Попробую после удаления дубликатов запустить.
Спасибо!

Fors1k
16-08-2020, 14:53
будет работать только с "чистыми" строками. »
param(
$pathIN = "C:\files\list.txt",
$pathOUT = "C:\files\list_new.txt"
)cls

$List=((Get-Content $pathIN -Raw) -replace "#EXT[^I].+?`r`n",''|
sls "#E[^#]+?(\.m3u.?|:\d{4})(?=`r|$)"-All).Matches.Value|
sort{($_-split"`r`n")[1]} -u|sort{($_-split"`r`n")[0]} -u|
sort{($_-split"`r`n").split(',')[1]}
$List|out-file $pathOUT

Uragan66
16-08-2020, 15:17
Fors1k, этот код я пробовал раньше... К сожалению, он работает неправильно.
К примеру, возьмите плейлист:
#EXTM3U
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/04.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/04.m3u8
#EXTINF:-1,Fine Living
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s51/04.m3u8
#EXTINF:-1,Bridge TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s34/04.m3u8
#EXTINF:-1,Bridge TV Русский хит
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s78/04.m3u8
#EXTINF:-1,Fine Living
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s51/04.m3u8
#EXTINF:-1,Food Network
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s18/04.m3u8
#EXTINF:-1,MCM TOP
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s49/04.m3u8
#EXTINF:-1,Ocean TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s84/04.m3u8
#EXTINF:-1,RTG TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s80/04.m3u8
#EXTINF:-1,TV 1000
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s90/04.m3u8
#EXTINF:-1,TV 1000 Action
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s91/04.m3u8
#EXTINF:-1,Ocean TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s84/04.m3u8
#EXTINF:-1,TV 1000 Русское кино
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s95/04.m3u8
#EXTINF:-1,TV5 Monde Europe
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s75/04.m3u8
#EXTINF:-1,Tiji
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s59/04.m3u8
#EXTINF:-1,Viasat Explore
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s72/04.m3u8
#EXTINF:-1,Viasat History
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s70/04.m3u8
#EXTINF:-1,Viasat Nature
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s67/04.m3u8
#EXTINF:-1,Доктор
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s76/04.m3u8
#EXTINF:-1,Загородный
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s31/04.m3u8
#EXTINF:-1,Звезда
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s85/04.m3u8
#EXTINF:-1,Канал Disney
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s60/04.m3u8
#EXTINF:-1,Мама
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s77/04.m3u8
#EXTINF:-1,Мир http://zona-iptv.ru/
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s39/04.m3u8
#EXTINF:-1,Муз ТВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s28/04.m3u8
#EXTINF:-1,Мульт
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s58/04.m3u8
#EXTINF:-1,НСТ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s87/04.m3u8
#EXTINF:-1,Premium1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s83/04.m3u8
#EXTINF:-1,shanson
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s43/04.m3u8
#EXTINF:-1,ЭВРИКА
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s44/04.m3u8
#EXTINF:-1,АРМЕНИЯ ТВ5
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s46/04.m3u8
#EXTINF:-1,RTD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s93/04.m3u8
#EXTINF:-1,ЗОО ТВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s92/04.m3u8
#EXTINF:-1,ЕВРОНОВОСТИ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s89/04.m3u8
#EXTINF:-1,ДОМАШНИЙ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s88/04.m3u8
#EXTINF:-1,SENTANA SPORT+
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s82/04.m3u8
#EXTINF:-1,SENTANA SPORT
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s81/04.m3u8
#EXTINF:-1,Euronews
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s79/04.m3u8
#EXTINF:-1,Atv
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s74/04.m3u8
#EXTINF:-1,73
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s73/04.m3u8
#EXTINF:-1,Телепутишествия
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s71/04.m3u8
#EXTINF:-1,69
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s69/04.m3u8
#EXTINF:-1,А HBO
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s64/04.m3u8
#EXTINF:-1,RTG HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s63/04.m3u8
#EXTINF:-1,ОХОТНИК И РЫБОЛОВ HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s62/04.m3u8
#EXTINF:-1,ОХОТНИК И РЫБОЛОВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s55/04.m3u8
#EXTINF:-1,ТВЦ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s54/04.m3u8
#EXTINF:-1,53
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s53/04.m3u8
#EXTINF:-1,ПЯТНИЦА
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s50/04.m3u8
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/03.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/03.m3u8
#EXTINF:-1,Bridge TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s34/03.m3u8
#EXTINF:-1,Bridge TV Русский хит
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s78/03.m3u8
#EXTINF:-1,Fine Living
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s51/03.m3u8
#EXTINF:-1,Food Network
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s18/03.m3u8
#EXTINF:-1,MCM TOP
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s49/03.m3u8
#EXTINF:-1,Ocean TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s84/03.m3u8
#EXTINF:-1,RTG TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s80/03.m3u8
#EXTINF:-1,TV 1000
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s90/03.m3u8
#EXTINF:-1,TV 1000 Action
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s91/03.m3u8
#EXTINF:-1,TV 1000 Русское кино
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s95/03.m3u8
#EXTINF:-1,TV5 Monde Europe
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s75/03.m3u8
#EXTINF:-1,Tiji
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s59/03.m3u8
#EXTINF:-1,Viasat Explore
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s72/03.m3u8
#EXTINF:-1,Viasat History
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s70/03.m3u8
#EXTINF:-1,Viasat Nature
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s67/03.m3u8
#EXTINF:-1,Доктор
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s76/03.m3u8
#EXTINF:-1,Загородный
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s31/03.m3u8
#EXTINF:-1,Звезда
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s85/03.m3u8
#EXTINF:-1,Канал Disney
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s60/03.m3u8
#EXTINF:-1,Мама
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s77/03.m3u8
#EXTINF:-1,Мир
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s39/03.m3u8
#EXTINF:-1,Муз ТВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s28/03.m3u8
#EXTINF:-1,Мульт
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s58/03.m3u8
#EXTINF:-1,НСТ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s87/03.m3u8
#EXTINF:-1,Наука
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s98/03.m3u8
#EXTINF:-1,Россия 24
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s21/03.m3u8
#EXTINF:-1,Русский Бестселлер
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s52/03.m3u8
#EXTINF:-1,Русский Экстрим
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s47/03.m3u8
#EXTINF:-1,Рыжий
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s57/03.m3u8
#EXTINF:-1,Сарафан
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s38/03.m3u8
#EXTINF:-1,ТНТ4 http://zona-iptv.ru/
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s100/03.m3u8
#EXTINF:-1,Телекафе
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s56/03.m3u8
#EXTINF:-1,Техно 24
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s68/03.m3u8
#EXTINF:-1,VIP COMEDY
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s97/03.m3u8
#EXTINF:-1,ПРИКЛЮЧЕНИЯ HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s99/03.m3u8
#EXTINF:-1,Cineman
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s66/03.m3u8
#EXTINF:-1,Filmzone ATV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s48/03.m3u8
#EXTINF:-1,Kinoman ATV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s94/03.m3u8
#EXTINF:-1,Premium1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s83/03.m3u8
#EXTINF:-1,shanson
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s43/03.m3u8
#EXTINF:-1,ЭВРИКА
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s44/03.m3u8
#EXTINF:-1,АРМЕНИЯ ТВ5
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s46/03.m3u8
#EXTINF:-1,RTD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s93/03.m3u8
#EXTINF:-1,ЗОО ТВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s92/03.m3u8
#EXTINF:-1,ЕВРОНОВОСТИ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s89/03.m3u8
#EXTINF:-1,ДОМАШНИЙ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s88/03.m3u8
#EXTINF:-1,SENTANA SPORT
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s82/03.m3u8
#EXTINF:-1,SENTANA SPORT
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s81/03.m3u8
#EXTINF:-1,Euronews
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s79/03.m3u8
#EXTINF:-1,Atv
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s74/03.m3u8
#EXTINF:-1,73
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s73/03.m3u8
#EXTINF:-1,Телепутишествия
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s71/03.m3u8
#EXTINF:-1,69
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s69/03.m3u8
#EXTINF:-1,А HBO
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s64/03.m3u8
#EXTINF:-1,RTG HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s63/03.m3u8
#EXTINF:-1,ОХОТНИК И РЫБОЛОВ HD
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s62/03.m3u8
#EXTINF:-1,ОХОТНИК И РЫБОЛОВ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s55/03.m3u8
#EXTINF:-1,ТВЦ
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s54/03.m3u8
#EXTINF:-1,53
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s53/03.m3u8
#EXTINF:-1,ПЯТНИЦА
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s50/03.m3u8
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/01.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/01.m3u8
#EXTINF:-1,Bridge TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s34/01.m3u8
#EXTINF:-1,Bridge TV Русский хит
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s78/01.m3u8
#EXTINF:-1,Fine Living
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s51/01.m3u8
#EXTINF:-1,Food Network
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s18/01.m3u8
#EXTINF:-1,MCM TOP
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s49/01.m3u8
#EXTINF:-1,Ocean TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s84/01.m3u8
#EXTINF:-1,RTG TV
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s80/01.m3u8
#EXTINF:-1,TV 1000
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s90/01.m3u8
#EXTINF:-1,TV 1000 Action
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s91/01.m3u8
#EXTINF:-1,Звезда
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s85/01.m3u8

В нём несколько вхождений каналов с одинаковыми именами, но с разными ссылками (к примеру - #EXTINF:-1,A1). Они должны все остаться в листе, но Ваш код оставляет только одно вхождение.
К тому же удаляются нужные строки с директивой #EXTVLCOPT.

Fors1k
16-08-2020, 15:37
В нём несколько вхождений каналов с одинаковыми именами, но с разными ссылками »
Yus_2 говорил, что нужно проверять уникальность только имен. Теперь выясняется, что нужно проверять уникальность ссылок(как я изначально и делал).
К тому же удаляются нужные строки с директивой #EXTVLCOPT. »
Ранее говорилось, что нужно сделать так, что бы в плейлисте остались только пары вида
#EXTINF:-1,Bridge TV
http://ott-cdn.ucom.am/s33/04.m3u8
Покажите как должен в итоге выглядеть этот пример.

Похоже, все-таки нужо оставить мне эту затею, так как каждый раз условия конечного результата разные :)

Foreigner
16-08-2020, 16:08
Попробуйте так, особо не тестировал, но вроде сортирует

[hashtable[]] $channels =
Get-Content list.txt | Select-String '#EXTINF:.+' -Context 2 |
ForEach-Object { @{ Channel = $_.Matches.Value; Context = $_.Context.PostContext }}

$(
'#EXTM3U'
$channels | Sort-Object { $_.Channel } | ForEach-Object { $_.Channel; $_.Context }

) | Set-Content sorted_list.txt

Uragan66
16-08-2020, 16:45
Покажите как должен в итоге выглядеть этот пример »
Fors1k, листов в сети множество и все по-разному составлены. Если плейлист от провайдера или толкового рестримера, то в нём практически и не нужно удалять дубликаты. А если это плейлист от юзеров, среди которых попадаются и совсем "криворукие", то в нём может быть всё что угодно (в разумных пределах конечно).
К примеру может быть такой плейлист:
#EXTM3U
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/04.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/04.m3u8
#EXTINF:-1,Новий канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch6/video.m3u8?secret=co9yg1i4
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/01.m3u8
#EXTINF:0,Первый канал
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:0,Россия 1 HD
https://meta.vcdn.biz/30560520b9dacb6e03aae2bc57bd8d78_megogo/vod/fs/o/41139221/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0,5-тый канал
https://meta.vcdn.biz/bd7779421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0,Первый
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:0 group-title="Русские" tvg-id="zvezda" tvg-logo="https://pbs.twimg.com/media/DxnzMctXcAEPuMv.png",Звезда
https://meta.vcdn.biz/a90e6e1d617148ec8b087bae57dd3338_megogo/vod/fs/o/36429631/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:2.97077,Кинозал 2
http://cooltv.dyndns.tv:8200/udp/239.255.4.30:1234
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch8/video.m3u8?secret=co9yg1i4
#EXTINF:1.87832,Кинозал 3
http://cooltv.dyndns.tv:8200/udp/239.255.4.31:1234
#EXTINF:0 group-title="Русские" tvg-id="rossia1" tvg-logo="https://pbs.twimg.com/media/DxnvslfWsAE6Sys.png",Россия 1 HD
https://meta.vcdn.biz/ret9421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch5/video.m3u8?secret=co9yg1i4
#EXTINF:-1,Новий канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch6/video.m3u8?secret=co9yg1i4
#EXTINF:0,Первый канал
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:-1, 5 канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch7/video.m3u8?secret=co9yg1i4
В идеале на выходе должны получить:
#EXTM3U
#EXTINF:0,5-тый канал
https://meta.vcdn.biz/bd7779421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:-1, 5 канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch7/video.m3u8?secret=co9yg1i4
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/01.m3u8
#EXTINF:-1,A1
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s45/04.m3u8
#EXTINF:-1,A2
#EXTVLCOPT:http-user-agent=Restream/5.20408.171030 mag250, mag250 SmartSDK/1.5.63-rt-25 Qt/4.7.3 API/0.30.0 Mozilla/5.0
http://ott-cdn.ucom.am/s33/04.m3u8
#EXTINF:0 group-title="Русские" tvg-id="zvezda" tvg-logo="https://pbs.twimg.com/media/DxnzMctXcAEPuMv.png",Звезда
https://meta.vcdn.biz/a90e6e1d617148ec8b087bae57dd3338_megogo/vod/fs/o/36429631/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:2.97077,Кинозал 2
http://cooltv.dyndns.tv:8200/udp/239.255.4.30:1234
#EXTINF:1.87832,Кинозал 3
http://cooltv.dyndns.tv:8200/udp/239.255.4.31:1234
#EXTINF:-1,Новий канал
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch6/video.m3u8?secret=co9yg1i4
#EXTINF:0,Первый канал
http://gorod.tv/s/live/1/46.173.58.40/1544264103816/0.m3u8
#EXTINF:0,Россия 1 HD
https://meta.vcdn.biz/30560520b9dacb6e03aae2bc57bd8d78_megogo/vod/fs/o/41139221/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:0 group-title="Русские" tvg-id="rossia1" tvg-logo="https://pbs.twimg.com/media/DxnvslfWsAE6Sys.png",Россия 1 HD
https://meta.vcdn.biz/ret9421f9ce7a23453cb0fb05987a9_megogo/vod/fs/o/36429601/u_sid/0/u_uid/0/u_vod/0/u_device/cms_html5/u_srvc/28561/type.live/playlist.m3u8
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch5/video.m3u8?secret=co9yg1i4
#EXTINF:-1,СТБ
#EXTGRP:Украина
http://iptv.prosto.tv:7000/ch8/video.m3u8?secret=co9yg1i4
то есть должны удалиться дубликаты и по именам каналов и по ссылкам на потоки, но при этом структура плейлиста не должна быть нарушена и должны сохраниться директивы #EXTGRP и #EXTVLCOPT

Foreigner, к сожалению Ваш код тоже путает строки.
Ну да ладно... Пока дорабатываю старый рабочий код, просто почитал новые посты в теме и пришла мысль добавить ещё и алфавитную сортировку по имени канала...

YuS_2
18-08-2020, 22:33
Yus_2 говорил, что нужно проверять уникальность только имен. »
Эмм, где это я такое говорил? :unsure: ;)

Теперь выясняется, что нужно проверять уникальность ссылок(как я изначально и делал). »
Ранее говорилось, что нужно сделать так, что бы в плейлисте остались только пары вида »
Ранее я говорил это:
Создание скрипта, правильно решающего задачу, зависит от правильного составления условий той задачи... »
и это немаловажно... кстати, там ещё была речь не только об ошибках составителей плейлистов...
А поскольку пока были условия в задаче проверять таки только ПАРЫ строк, то и уникальность проверяться должна именно ПАР строк, а сортировка пар по имени канала, либо по ссылке - здесь вторично.

Похоже, все-таки нужо оставить мне эту затею, так как каждый раз условия конечного результата разные »
А я ведь говорил, что для решения задачи необходимо получить полные условия... ну, или самому окунуться в тему, чтобы понять нюансы. Но если в теме нет надобности, то окунаться в неё - вопрос только желания и свободного времени. :)

Но как сделать сортировку по имени канала, если в строке перед названием канала есть дополнительные директивы »
Это не проблема, вопрос совсем в другом...
Как и писал выше, необходимы ПОЛНЫЕ условия задачи... а вот это:
К тому же удаляются нужные строки с директивой #EXTVLCOPT. »
и должны сохраниться директивы #EXTGRP и #EXTVLCOPT »
- противоречит изначальным условиям задачи, что проверяться должны пары строк... это уже будут не пары, а переменная величина количества проверяемых строк, с неопределенным (пока) массивом строк на выходе, т.е. нет в условиях того, какие строки необходимо сохранять, какие перемещать в строку с тегом #EXTINF, а какие удалять...
Например тег:
#EXTVLCOPT »
понимает, если не ошибаюсь, только VLC плеер... нужен ли он в плейлистах?
а это:
#EXTGRP »
- всего лишь группы, по которым компонуются каналы... опять же, такой тег не все плееры понимают, а некоторые и на дух не переносят, т.е. надо не сохранять, а удалять...
Кроме того, этот тег в более универсальном виде, лучше переместить таки в строку #EXTINF...
В общем:
это уже другая задача, под которую необходимо составить перечень условий, т.е. вычленить все возможные "лишние" теги, которые надо либо удалить, либо просто добавить в строку, например (#EXTINF:-1 group-title="Общие",Евроновости)»
и чтобы получить в итоге то, что хотелось бы, придется немного потрудиться и составить таки условия... »
а здесь Вам могут помочь решить задачу с определенными условиями, но не заниматься экстрасенсорикой в плане того, какие там ещё могут быть подводные течения в тех плейлистах... так что сорри, если что не так. »
:)




© OSzone.net 2001-2012