diff --git a/src/m3uParser.tool/Program.cs b/src/m3uParser.tool/Program.cs index 3879294..1299712 100644 --- a/src/m3uParser.tool/Program.cs +++ b/src/m3uParser.tool/Program.cs @@ -18,7 +18,7 @@ static void Main(string[] args) { //var customFile = Path.Combine(@"C:\Data\Desktop", "test.m3u"); //var customM3u = M3U.ParseFromFile(customFile); - var simpleVodM3u = M3U.ParseFromFile(simpleVod); + var simpleVodM3u = M3U.Parse(simpleVod); var headerParameterM3u = M3U.Parse(headerParameter); } diff --git a/src/m3uParser/M3U.cs b/src/m3uParser/M3U.cs index f37f8cf..49de0a3 100644 --- a/src/m3uParser/M3U.cs +++ b/src/m3uParser/M3U.cs @@ -18,6 +18,9 @@ namespace m3uParser /// https://developer.apple.com/library/content/technotes/tn2288/_index.html /// https://developer.apple.com/documentation/http_live_streaming/example_playlists_for_http_live_streaming/event_playlist_construction /// https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#page-12 + /// https://wiki.tvip.ru/en/m3u + /// https://pastebin.com/KNYEZNun + /// https://github.com/AlexanderSofronov/iptv.example /// public static class M3U { diff --git a/src/m3uParser/Model/Attributes.cs b/src/m3uParser/Model/Attributes.cs index 0a81269..dc1d71b 100644 --- a/src/m3uParser/Model/Attributes.cs +++ b/src/m3uParser/Model/Attributes.cs @@ -10,22 +10,70 @@ public class Attributes internal Attributes(IEnumerable> attributes) { this.AttributeList = attributes; - this.GroupTitle = this.AttributeList.FirstOrDefault(w => w.Key.ToLower().Replace("-", string.Empty) == "grouptitle").Value; - this.GuideTimeShiftingTV = this.AttributeList.FirstOrDefault(w => w.Key.ToLower().Replace("-", string.Empty) == "tvgshift").Value; - this.GuideIdentifierTV = this.AttributeList.FirstOrDefault(w => w.Key.ToLower().Replace("-", string.Empty) == "tvgname").Value; - this.Logo = this.AttributeList.FirstOrDefault(w => w.Key.ToLower().Replace("-", string.Empty) == "tvglogo").Value; - this.AudioTrack = this.AttributeList.FirstOrDefault(w => w.Key.ToLower().Replace("-", string.Empty) == "audiotrack").Value; - this.AspectRatio = this.AttributeList.FirstOrDefault(w => w.Key.ToLower().Replace("-", string.Empty) == "aspectratio").Value; - this.Id = this.AttributeList.FirstOrDefault(w => w.Key.ToLower().Replace("-", string.Empty) == "tvgid").Value; + + // Obsoletes + this.GuideTimeShiftingTV = GetOrNull("tvgshift"); + this.GuideIdentifierTV = GetOrNull("tvgname"); + this.Logo = GetOrNull("tvglogo"); + this.Id = GetOrNull("tvgid"); + + this.GroupTitle = GetOrNull(nameof(this.GroupTitle)); + this.TvgShift = GetOrNull(nameof(this.TvgShift)); + this.TvgName = GetOrNull(nameof(this.TvgName)); + this.TvgLogo = GetOrNull(nameof(this.TvgLogo)); + this.AudioTrack = GetOrNull(nameof(this.AudioTrack)); + this.AspectRatio = GetOrNull(nameof(this.AspectRatio)); + this.TvgId = GetOrNull(nameof(this.TvgId)); + this.UrlTvg = GetOrNull(nameof(this.UrlTvg)); + this.M3UAutoLoad = ConvertIntOrNull(GetOrNull(nameof(this.M3UAutoLoad))); + this.Cache = ConvertIntOrNull(GetOrNull(nameof(this.Cache))); + this.Deinterlace = ConvertIntOrNull(GetOrNull(nameof(this.Deinterlace))); + this.Refresh = ConvertIntOrNull(GetOrNull(nameof(this.Refresh))); + this.ChannelNumber = ConvertIntOrNull(GetOrNull(nameof(this.ChannelNumber))); + } + + string GetOrNull(string name) + { + return this.AttributeList? + .FirstOrDefault(w => w.Key?.ToLower()?.Replace("-", string.Empty) == name.ToLower()) + .Value; + } + + int? ConvertIntOrNull(string value) + { + int num; + if (int.TryParse(value, out num)) + return num; + + return null; } public IEnumerable> AttributeList { get; private set; } public string GroupTitle { get; private set; } + + [Obsolete("Change to: TvgShift property")] public string GuideTimeShiftingTV { get; private set; } + public string TvgShift { get; private set; } + + [Obsolete("Change to: TvgName property")] public string GuideIdentifierTV { get; private set; } + public string TvgName { get; private set; } + + [Obsolete("Change to: TvgLogo property")] public string Logo { get; private set; } + public string TvgLogo { get; private set; } + public string AudioTrack { get; private set; } public string AspectRatio { get; private set; } + [Obsolete("Change to: TvgId property")] public string Id { get; private set; } + + public string TvgId { get; private set; } + public string UrlTvg { get; private set; } + public int? M3UAutoLoad { get; private set; } + public int? Cache { get; private set; } + public int? Deinterlace { get; private set; } + public int? Refresh { get; private set; } + public int? ChannelNumber { get; private set; } } } \ No newline at end of file diff --git a/src/m3uParser/Model/Extm3u.cs b/src/m3uParser/Model/Extm3u.cs index 1f09166..af80f8a 100644 --- a/src/m3uParser/Model/Extm3u.cs +++ b/src/m3uParser/Model/Extm3u.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Text; +using System.Threading; using Sprache; namespace m3uParser.Model @@ -18,6 +20,10 @@ public class Extm3u internal Extm3u(string content) { + CultureInfo ci = new CultureInfo("en-US"); + Thread.CurrentThread.CurrentCulture = ci; + Thread.CurrentThread.CurrentUICulture = ci; + var segments = SegmentSpecification.SegmentCollection.Parse(content); if (segments == null || segments.Count() == 0) @@ -32,7 +38,7 @@ internal Extm3u(string content) else { // parse attributes - Attributes = new Attributes(PairsSpecification.Attributes.Parse(segments.First())); + Attributes = new Attributes(LinesSpecification.HeaderLine.Parse(segments.First())); } IList warnings = new List(); @@ -61,14 +67,21 @@ internal Extm3u(string content) break; case "EXTINF": - medias.Add(new Media(tag.Value)); + try + { + medias.Add(new Media(tag.Value)); + } + catch + { + warnings.Add($"Can't parse media #{tag.Key}{(string.IsNullOrEmpty(tag.Value) ? string.Empty : ":")}{tag.Value}"); + } break; case "EXT-X-ENDLIST": break; default: - warnings.Add($"The content #{tag.Key}{(string.IsNullOrEmpty(tag.Value) ? string.Empty : ":")}{tag.Value} cannot be parsed"); + warnings.Add($"Can't parse content #{tag.Key}{(string.IsNullOrEmpty(tag.Value) ? string.Empty : ":")}{tag.Value}"); break; } diff --git a/src/m3uParser/Model/Media.cs b/src/m3uParser/Model/Media.cs index accada7..1585648 100644 --- a/src/m3uParser/Model/Media.cs +++ b/src/m3uParser/Model/Media.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Text; +using System.Threading; using Sprache; namespace m3uParser diff --git a/src/m3uParser/ParseSpecification.cs b/src/m3uParser/ParseSpecification.cs index 3607fa3..fe174b9 100644 --- a/src/m3uParser/ParseSpecification.cs +++ b/src/m3uParser/ParseSpecification.cs @@ -57,7 +57,7 @@ from div in Parse.String(":").Text().Optional() from value in Parse.AnyChar.Many() //from value in Parse.Chars((Environment.NewLine).Many() //from end in Parse.Chars(Environment.NewLine).Optional() - select new KeyValuePair(key.ToUpper().Trim(), string.Concat(value)); + select new KeyValuePair(key.ToUpper().Trim(), string.Concat(value).Trim()); } internal static class LinesSpecification @@ -73,13 +73,17 @@ from endOfLine in Parse.LineEnd.Optional() //from open in Parse.String("#EXTINF:").Text() from duration in PrimitiveSpecification.DecimalSigned.Once() from param in PairsSpecification.Attributes.Token() - from space2 in Parse.Char(',').Optional() - from title in Title.Token() - select new Media(duration.First(), param, title, null); + from comma in Parse.Char(',') + from title in Title.Optional() + select new Media(duration.First(), param, title.GetOrDefault(), null); internal static readonly Parser Title = - from raw in Parse.CharExcept(Environment.NewLine).Many().Text() - select new Title(raw, raw); + from raw in Parse.CharExcept(Environment.NewLine).Many() + //from raw in Parse.AnyChar.Except(Environment.NewLine) + //from raw in Parse.AnyChar.Many().Text() + + //from raw in Parse.AnyChar().Except(Environment.NewLine) //.Many() Parse.CharExcept(Environment.NewLine).Many().Optional() //.Many().Text().Optional() + select new Title(raw.Any() ? string.Concat(raw) : null, raw.Any() ? string.Concat(raw) : null); // https://stackoverflow.com/questions/21414309/sprache-parse-signed-integer internal static readonly Parser<Media> Extinf = diff --git a/tests/m3uParser.Tests/Resources/big_list.txt b/tests/m3uParser.Tests/Resources/big_list.txt new file mode 100644 index 0000000..a24763d --- /dev/null +++ b/tests/m3uParser.Tests/Resources/big_list.txt @@ -0,0 +1,1013 @@ +#EXTM3U +#EXTINF:0,#EXTM3U +#EXTINF:-1, [COLOR yellow]***FREE SKYNET TV*** [/COLOR] +#EXTINF:0,http://95.128.90.97:1232/udp/239.1.8.2:1232 +#EXTINF:-1, [COLOR green]****Sky Sports**** [/COLOR] +#EXTINF:0,http://95.128.90.97:1234/udp/239.1.8.2:1234 +http://937.48.118.32/live/skysports1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:0, Sky Sports 1 +http://9198.27.94.105/hls/skysports1.m3u8 +#EXTINF:0,#EXTINF:0, Sky Sports 2 +http://9198.27.94.105/hls/skysports2.m3u8 +#EXTINF:0,http://937.48.118.32/live/skysports2.stream/playlist.m3u8 +#EXTINF:0, Sky Sports 3 +#EXTINF:0,http://9198.27.94.105/hls/skysports3.m3u8 +#EXTINF:0, Sky Sports 4 +#EXTINF:0,http://9198.27.94.105/hls/skysports4.m3u8 +#EXTINF:0, BT 1 +#EXTINF:0,http://9198.27.94.105/hls/bt1.m3u8 +#EXTINF:0, BT 2 +#EXTINF:0,http://9198.27.94.105/hls/bt2.m3u8 +#EXTINF:0, British eurosport 2 +#EXTINF:0,http://937.48.118.32/live/eurosport1.stream/playlist.m3u8 +#EXTINF:-1, [COLOR green]****Sports Channels **** [/COLOR] +#EXTINF:0,http://95.128.90.97:1234/udp/239.1.8.2:1235 +#EXTINF:-1,tvg-logo="ARENASPORT.png",Arenasport 1 ITA +#EXTINF:0,http://989.212.240.49:11980/live/smil:365_0.smil/playlist.m3u8?authorization_key=hNj0mnLtB9O5rfIKuCVsX7oWASQayqZg&stream_id=0 +#EXTINF:-1,tvg-logo="ARENASPORT.png",Arenasport 4 ITA +#EXTINF:0,http://989.212.240.49:11980/live/smil:368_0.smil/playlist.m3u8?authorization_key=hNj0mnLtB9O5rfIKuCVsX7oWASQayqZg&stream_id=0 +#EXTINF:-1, [COLOR green]**** Documentaries **** [/COLOR] +#EXTINF:0,http://95.128.90.97:1235/udp/239.1.8.2:1236 +#EXTINF:-1, tvg-logo="Discovery.png",DISCOVERY HD +#EXTINF:0,http://9200.76.77.237/LIVE/H01/CANAL351/PROFILE03.m3u8? +#EXTINF:-1, tvg-logo="History.png",VISAT HISTORY +#EXTINF:0,http://9193.23.58.156:8888/udp/234.1.20.17:1234 +#EXTINF:-1,HISTORY +#EXTINF:0,http://9cdn-02.sdn.si/historychannel/historychannel.m3u8 +#EXTINF:-1,NAT GEO +#EXTINF:0,http://9cdn-02.sdn.si/natgeo/natgeo.m3u8 +#EXTINF:-1,NAT GEO WILD +#EXTINF:0,http://9cdn-02.sdn.si/natgeowild/natgeowild.m3u8 +#EXTINF:-1,CRIME INVESTIGATION +#EXTINF:0,http://9cdn-02.sdn.si/crimeinvestigation/crimeinvestigation.m3u8 +#EXTINF:-1,DISCOVERY +#EXTINF:0,http://9cdn-02.sdn.si/discoverychannel/discoverychannel.m3u8#EXTINF:0, Dmax +http://937.48.118.32/live/dmax.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:0, Quest +http://937.48.118.32/live/quest.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:0, Animal planet +http://937.48.118.32/live/animal.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:0, Natgeo wild +http://937.48.118.32/live/natgeow.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, [COLOR green]**** SKY Movies **** [/COLOR] +http://95.128.90.97:1235/udp/239.1.8.2:1235 +#EXTINF:0,#EXTINF:-1,Sky 1 +http://937.48.118.32/live/sky1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,Sky 2 +http://937.48.118.32/live/sky2.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,Sky movies action +http://937.48.118.32/live/maction.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,Sky scifi +http://937.48.118.32/live/mscifi.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,Sky comedy +http://937.48.118.32/live/mcomedy.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,Film 4 +http://937.48.118.32/live/film4.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,5 usa +http://937.48.118.32/live/5usa.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,ITV 1 +http://937.48.118.32/live/itv1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,ITV 2 +http://937.48.118.32/live/itv2.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,ITV 3 +http://937.48.118.32/live/itv3.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,ITV 4 +http://937.48.118.32/live/itv4.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,Sky arts 1 & 2 +http://937.48.118.32/live/skyarts1.stream/playlist.m3u8 +#EXTINF:0,http://937.48.118.32/live/skyarts2.stream/playlist.m3u8 +#EXTINF:-1, tvg-logo="Skypremiere".png",Movies1 +#EXTINF:0,http://9sjc-uhls-vip01.ustream.tv/watch/playlist.m3u8?cid=12762028 +#EXTINF:-1, tvg-logo="Skynews.png",SkyNews* +#EXTINF:0,http://9wpc.c1a9.edgecastcdn.net/hls-live/20C1A9/skynews/ls_satlink/b_828.m3u8 +#EXTINF:-1, [COLOR green]****Sports News **** [/COLOR] +#EXTINF:0,http://95.128.90.97:1234/udp/239.1.8.2:1239 +#EXTINF:-1, [COLOR green]**** SKY Mtv **** [/COLOR] +#EXTINF:0,http://95.128.90.97:1235/udp/239.1.8.2:1252 +#EXTINF:-1, MTV ADRIA* +#EXTINF:0,http://9cdn-02.sdn.si/mtvadria/mtvadria.m3u8 +#EXTINF:-1, MTV DANCE* +#EXTINF:0,http://9cdn-02.sdn.si/mtvdance/mtvdance.m3u8 +#EXTINF:-1, MTV HITS* +#EXTINF:0,http://9cdn-02.sdn.si/mtvhits/mtvhits.m3u8 +#EXTINF:-1, MTV ROCK* +#EXTINF:0,http://9cdn-02.sdn.si/mtvrocks/mtvrocks.m3u8 +#EXTINF:-1, [COLOR green]**** SKY KIDS **** [/COLOR] +#EXTINF:0,http://95.128.90.97:1235/udp/239.1.8.2:1252 +#EXTINF:-1,JIMJAM +#EXTINF:0,http://9cdn-02.sdn.si/jimjam/jimjam.m3u8 +#EXTINF:-1, DISNEY* +#EXTINF:0,http://9cdn-02.sdn.si/disneychannel/disneychannel.m3u8 +#EXTINF:-1, DISNEY XD* +#EXTINF:0,http://9cdn-02.sdn.si/disneyxd/disneyxd.m3u8 +#EXTINF:-1, DAVINCI LEARNING* +#EXTINF:0,http://9cdn-02.sdn.si/davincilearning/davincilearning.m3u8 +#EXTINF:-1, [COLOR green]****Sky Entertainment **** [/COLOR] +#EXTINF:0,http://95.128.90.97:1234/udp/239.1.8.2:1240 +#EXTINF:-1,TLC +#EXTINF:0,http://9cdn-02.sdn.si/tlc/tlc.m3u8 +#EXTINF:-1, [COLOR green]**** FOX Channels **** [/COLOR] +#EXTINF:0,http://95.128.90.97:1235/udp/239.1.8.2:1237 +#EXTINF:-1,FOX +#EXTINF:0,http://9cdn-02.sdn.si/fox/fox.m3u8 +#EXTINF:-1,FOX MOVIES +#EXTINF:0,http://9cdn-02.sdn.si/foxmovies/foxmovies.m3u8 +#EXTINF:-1, FOX HD +#EXTINF:0,http://9live.oneplay.tv/reproducir/125.m3u8 +#EXTINF:-1, tvg-logo="Foxnews.png",FOX NEWS BOSTON +#EXTINF:0,rtmp://whdh.mpl.miisolutions.net:1935/whdh-live01 playpath=mp4:whdh_1 swfUrl=http://9www.whdh.com/ pageUrl=http://9players.edgesuite.net/flash/plugins/osmf/advanced-streaming-plugin/v2.11/osmf1.5/fp10.1/AkamaiAdvancedStreamingPlugin.swf +#EXTINF:-1 tvg-logo="Fox.png,Fox 1 (US) +#EXTINF:0,http://9200.76.77.237/LIVE/H01/CANAL415/PROFILE03.m3u8? +#EXTINF:-1 tvg-logo="FoxAction.png,Fox Action (US) +#EXTINF:0,http://9200.76.77.237/LIVE/H01/CANAL416/PROFILE03.m3u8? +#EXTINF:-1 tvg-logo="FOX CINEMA.png,FOX CINEMA (US) +#EXTINF:0,http://9200.76.77.237/LIVE/H01/CANAL472/PROFILE03.m3u8? +#EXTINF:-1 tvg-logo="FoxFamily.png,Fox Family (US) +#EXTINF:0,http://9200.76.77.237/LIVE/H01/CANAL475/PROFILE03.m3u8? +#EXTINF:-1 tvg-logo="FOXCLASSICS.png,FOX CLASSICS (US) +#EXTINF:0,http://9200.76.77.237/LIVE/H01/CANAL478/PROFILE03.m3u8? +#EXTINF:-1, Sky sports 5 +#EXTINF:0,http://937.48.118.32/live/skysports5.stream/playlist.m3u8 +#EXTINF:-1, Sky sports f1 +#EXTINF:0,http://937.48.118.32/live/skysportsf1.stream/playlist.m3u8 +#EXTINF:-1, Sky sports news +#EXTINF:0,http://937.48.118.32/live/skysportsnews.stream/playlist.m3u8 +#EXTINF:-1, Sky news +#EXTINF:0,http://937.48.118.32/live/skynews.stream/playlist.m3u8 +#EXTINF:-1, Cnn +#EXTINF:0,http://937.48.118.32/live/cnn.stream/playlist.m3u8 +#EXTINF:-1, BBC news +#EXTINF:0,http://937.48.118.32/live/bbcnews.stream/playlist.m3u8 +#EXTINF:-1, Sky atlantic +#EXTINF:0,http://937.48.118.32/live/skyatlantic.stream/playlist.m3u8 +#EXTINF:-1, Nickelodeon +#EXTINF:0,http://937.48.118.32/live/nick.stream/playlist.m3u8 +#EXTINF:-1, Sky boxnation +#EXTINF:0,http://937.48.118.32/live/boxnation.stream/playlist.m3u8 +#EXTINF:-1, Disney channel +#EXTINF:0,http://937.48.118.32/live/disney.stream/playlist.m3u8 +#EXTINF:-1, BBC1 +#EXTINF:0,http://937.48.118.32/live/bbc1.stream/playlist.m3u8 +#EXTINF:-1, BBC2 +#EXTINF:0,http://937.48.118.32/live/bbc2.stream/playlist.m3u8 +#EXTINF:-1, BBC3 +#EXTINF:0,http://937.48.118.32/live/bbc3.stream/playlist.m3u8 +#EXTINF:-1, BBC4 +#EXTINF:0,http://937.48.118.32/live/bbc4.stream/playlist.m3u8 +#EXTINF:-1, ITV1 +#EXTINF:0,#EXTINF:-1, http://937.48.118.32/live/itv1.stream/playlist.m3u8 +#EXTINF:-1, ITV2 +#EXTINF:0,http://937.48.118.32/live/itv2.stream/playlist.m3u8 +#EXTINF:-1, ITV3 +#EXTINF:0,http://937.48.118.32/live/itv3.stream/playlist.m3u8 + ITV4 +#EXTINF:0,http://937.48.118.32/live/itv4.stream/playlist.m3u8 +#EXTINF:-1, Animal planet +#EXTINF:0,http://937.48.118.32/live/animal.stream/playlist.m3u8 +#EXTINF:-1,Film 4 +#EXTINF:0,http://937.48.118.32/live/film4.stream/playlist.m3u8 +#EXTINF:-1, 5 usa +#EXTINF:0,http://937.48.118.32/live/5usa.stream/playlist.m3u8 +#EXTINF:-1, Sky arts 1 & 2 +#EXTINF:0,http://937.48.118.32/live/skyarts1.stream/playlist.m3u8 +http://937.48.118.32/live/skyarts2.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky movies action +http://937.48.118.32/live/maction.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky movie premiere +http://937.48.118.32/live/mpremiere.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky comedy +http://937.48.118.32/live/mcomedy.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky scifi +http://937.48.118.32/live/mscifi.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, British eurosports 1 +http://937.48.118.32/live/eurosport1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, British eurosport 2 +http://937.48.118.32/live/eurosport1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Cnbc +http://937.48.118.32/live/cnbc.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, E4 +http://937.48.118.32/live/e4.stream/playlist.m3u8 +#EXTINF:0,http://937.48.118.32/live/alibi.stream/playlist.m3u8 +http://937.48.118.32/live/ukgold.stream/playlist.m3u8 +#EXTINF:0,http://937.48.118.32/live/mpremiere.stream/playlist.m3u8 +http://937.48.118.32/live/mdrama.stream/playlist.m3u8 +#EXTINF:0,http://937.48.118.32/live/mfamily.stream/playlist.m3u8 +#EXTINF:-1,Comedy central +#EXTINF:0,http://937.48.118.32/live/cc.stream/playlist.m3u8 +http://937.48.118.32/live/sky2.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, FOX +http://9live.oneplay.tv/reproducir/85.m3u8 +#EXTINF:0,#EXTINF:-1, SONY +http://9live.oneplay.tv/reproducir/89.m3u8 +#EXTINF:0,#EXTINF:-1, WARNER HD +http://9live.oneplay.tv/reproducir/93.m3u8 +#EXTINF:0,#EXTINF:-1, UNIVERSAL +http://9live.oneplay.tv/reproducir/97.m3u8 +#EXTINF:0,#EXTINF:-1, FX HD +http://9live.oneplay.tv/reproducir/101.m3u8 +#EXTINF:0,#EXTINF:-1, A&E +http://9live.oneplay.tv/reproducir/105.m3u8 +#EXTINF:0,#EXTINF:-1, AXN HD +http://9live.oneplay.tv/reproducir/109.m3u8 +#EXTINF:0,#EXTINF:-1, TRUE HD +http://9live.oneplay.tv/reproducir/113.m3u8 +#EXTINF:0,#EXTINF:-1, COMEDY HD +http://9live.oneplay.tv/reproducir/117.m3u8 +#EXTINF:0,#EXTINF:-1, UNICABLE HD +http://9live.oneplay.tv/reproducir/121.m3u8 +#EXTINF:0,#EXTINF:-1, FOX HD +http://9live.oneplay.tv/reproducir/125.m3u8 +#EXTINF:0,#EXTINF:-1, UNIVERSAL +http://9live.oneplay.tv/reproducir/137.m3u8 +#EXTINF:0,#EXTINF:-1, SYFY HD +http://9live.oneplay.tv/reproducir/141.m3u8 +#EXTINF:0,#EXTINF:-1, FX HD +http://9live.oneplay.tv/reproducir/145.m3u8 +#EXTINF:0,#EXTINF:-1, Cartoon network +http://937.48.118.32/live/cn.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Discovery +http://937.48.118.32/live/discovery.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Discovery science +http://937.48.118.32/live/discoverys.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Natgeo wild +http://937.48.118.32/live/natgeow.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky living +http://937.48.118.32/live/living.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Dmax +http://937.48.118.32/live/dmax.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Quest +http://937.48.118.32/live/quest.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Comedy central +http://937.48.118.32/live/cc.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky 1 +http://937.48.118.32/live/sky1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky 2 +http://937.48.118.32/live/sky2.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1,Bt sports 1 +http://937.48.118.32/live/bt1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Bt sports 2 +http://937.48.118.32/live/bt2.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky sports 1 +http://937.48.118.32/live/skysports1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky sports 2 +http://937.48.118.32/live/skysports2.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky sports 3 +http://937.48.118.32/live/skysports3.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky sports 4 +http://937.48.118.32/live/skysports4.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky sports 5 +http://937.48.118.32/live/skysports5.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky sports f1 +http://937.48.118.32/live/skysportsf1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky sports news +http://937.48.118.32/live/skysportsnews.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky news +http://937.48.118.32/live/skynews.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Cnn +http://937.48.118.32/live/cnn.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, BBC news +http://937.48.118.32/live/bbcnews.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky atlantic +http://937.48.118.32/live/skyatlantic.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Nickelodeon +http://937.48.118.32/live/nick.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky boxnation +http://937.48.118.32/live/boxnation.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Disney channel +http://937.48.118.32/live/disney.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, BBC1 +http://937.48.118.32/live/bbc1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, BBC2 +http://937.48.118.32/live/bbc2.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, BBC3 +http://937.48.118.32/live/bbc3.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, BBC4 +http://937.48.118.32/live/bbc4.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, ITV1 +http://937.48.118.32/live/itv1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, ITV2 +http://937.48.118.32/live/itv2.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, ITV3 +http://937.48.118.32/live/itv3.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, ITV4 +http://937.48.118.32/live/itv4.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Animal planet +http://937.48.118.32/live/animal.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Film 4 +http://937.48.118.32/live/film4.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, 5 usa +http://937.48.118.32/live/5usa.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1, Sky arts 1 & 2 +http://937.48.118.32/live/skyarts1.stream/playlist.m3u8 +#EXTINF:0,http://937.48.118.32/live/skyarts2.stream/playlist.m3u8 +#EXTINF:-1, Sky movies action +#EXTINF:0,http://937.48.118.32/live/maction.stream/playlist.m3u8 +#EXTINF:-1, Sky comedy +#EXTINF:0,http://937.48.118.32/live/mcomedy.stream/playlist.m3u8 +#EXTINF:-1, Sky scifi +#EXTINF:0,http://937.48.118.32/live/mscifi.stream/playlist.m3u8 +#EXTINF:-1, British eurosports 1 +#EXTINF:0,http://937.48.118.32/live/eurosport1.stream/playlist.m3u8 +#EXTINF:-1, British eurosport 2 +#EXTINF:0,http://937.48.118.32/live/eurosport1.stream/playlist.m3u8 +#EXTINF:-1, Action Plus L1 +#EXTINF:0,http://9185.4.83.195:1935/tv10/smil:actionplus_hd_mobile.smil/playlist.m3u8 +#EXTINF:-1, Action Plus L2 +#EXTINF:0,http://9185.4.83.202:1935/tv10/smil:actionplus_hd_mobile.smil/playlist.m3u8 +#EXTINF:-1, Action Plus L3 +#EXTINF:0,http://9185.4.83.203:1935/tv10/smil:actionplus_hd_mobile.smil/playlist.m3u8 +#EXTINF:-1, Action Plus L4 +#EXTINF:0,http://946.40.73.66:1935/tv10/smil:actionplus_hd_mobile.smil/playlist.m3u8 +#EXTINF:-1, Comedy Plus L1 +#EXTINF:0,http://9185.4.83.195:1935/tv10/smil:comedyplus_hd_mobile.smil/playlist.m3u8 +#EXTINF:-1,Comedy Plus L2 +#EXTINF:0,http://9185.4.83.202:1935/tv10/smil:comedyplus_hd_mobile.smil/playlist.m3u8 +#EXTINF:-1, Comedy Plus L3 +#EXTINF:0,http://9185.4.83.203:1935/tv10/smil:comedyplus_hd_mobile.smil/playlist.m3u8 +#EXTINF:-1, Comedy Plus L4 +#EXTINF:0,http://946.40.73.66:1935/tv10/smil:comedyplus_hd_mobile.smil/playlist.m3u8 +#‎EXTINF‬:-1,HBO HD +#EXTINF:0,http://9113.160.49.34/lives/origin03/hbohd.isml/hbohd-2096k.m3u8 +#EXTINF:-1,STAR MOVIE HD +#EXTINF:0,http://9113.160.49.34/lives/origin03/moviehd.isml/moviehd-2096k.m3u8 +#EXTINF:-1,AXN HD +#EXTINF:0,http://9113.160.49.34/lives/origin03/axnhd.isml/axnhd-2096k.m3u8 +#EXTINF:-1,24kitchen +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:71338a95-df65-44bb-9893-51ff6e943802.smil/playlist.m3u8 +#EXTINF:-1,Balkanika Music TV +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:776c511d-aee0-4e33-a44e-265e464c0a28.smil/playlist.m3u8 +#EXTINF:-1,balkanika tv +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:c8ce46ba-85a2-44f3-a343-bd36b4d3e96b.smil/playlist.m3u8 +#EXTINF:-1,btv action +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:40d963cc-b4e9-44fd-ba41-8d6addb370a6.smil/playlist.m3u8 +#EXTINF:-1,bTV Cinema +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:15820461-25d9-49a6-b9d4-e14b7a114fa3.smil/playlist.m3u8 +#EXTINF:-1,btv hd +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:04aa3aec-6f7b-4a8d-aa8b-d1214dcf4a02.smil/playlist.m3u8 +#EXTINF:-1,CityTV +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:e0820ba7-2c1a-4286-ac1b-f00bb9dcbe61.smil/playlist.m3u8 +#EXTINF:-1,Diema Family +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:9aeee5c3-fc2d-4a0d-812f-d8e51195521d.smil/playlist.m3u8 +#EXTINF:-1,diema tv +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:a37e3f23-0783-4d0d-87c4-216dde88ce63.smil/playlist.m3u8 +#EXTINF:-1,Discovery Channel +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:5339e06d-3be5-4ff7-bf18-9fc670d825a8.smil/playlist.m3u8 +#EXTINF:-1,Fen TV +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:90e18283-cdb3-4c13-8c4f-b80897497858.smil/playlist.m3u8 +#EXTINF:-1,fen tv +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:0fb4c575-a628-422b-ace9-b30c94b1647e.smil/playlist.m3u8 +#EXTINF:-1,Folklor TV +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:6362bbb5-cab5-4e6c-bf7b-e826dafe7bb2.smil/playlist.m3u8 +#EXTINF:-1,FOX +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:ec8798ba-ffc1-42c4-afba-97879bb48e7d.smil/playlist.m3u8 +#EXTINF:-1,Fox Crime Bulgaria +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:e202fa94-3703-464d-8af9-f19345c088b7.smil/playlist.m3u8 +#EXTINF:-1,FOX TV +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:5d5c62ea-0554-4696-99b2-94036cc080e3.smil/playlist.m3u8 +#EXTINF:-1,Mezzo +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:ca7e0e40-81b6-4c06-8941-29e1f8dde120.smil/playlist.m3u8 +#EXTINF:-1,N +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:76fb9045-19c1-4411-8674-51a0ef28e83d.smil/playlist.m3u8 +#EXTINF:-1,Nat Geo Wild +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:14cca818-65c3-4908-a0cb-31ac7f1225a4.smil/playlist.m3u8 +#EXTINF:-1,National Geographic +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:5d08a7ac-3515-4410-a1a0-5a9a32373a02.smil/playlist.m3u8 +#EXTINF:-1,News7 +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:189c2447-bd3d-4b27-aad6-7559c9c34428.smil/playlist.m3u8 +#EXTINF:-1,NOVA +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:f35257a4-e04e-40b8-9fb8-69cbcf748fcf.smil/playlist.m3u8 +#EXTINF:-1,nova sport +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:b0525ed5-1933-4408-9248-1569491c8448.smil/playlist.m3u8 +#EXTINF:-1,Nova Sport +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:74010166-8ebf-4a14-9e8d-7a6e90072611.smil/playlist.m3u8 +#EXTINF:-1,Planeta +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:405f1996-77f1-47e9-9646-0c6bfa5e18aa.smil/playlist.m3u8 +#EXTINF:-1,planeta tv +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:405f1996-77f1-47e9-9646-0c6bfa5e18aa.smil/playlist.m3u8 +#EXTINF:-1,ring tv +#EXTINF:0,http://974.122.193.208:1935/DrundooDVR/_definst_/smil:3e8b626c-fcfc-4b2c-9a66-f649db7d488f.smil/playlist.m3u8 +#EXTINF:-1,BBC One Scot +#EXTINF:0, http://9212.250.46.35:4248/bysid/6421 + #EXTINF:-1,BBC Two Scot +#EXTINF:0, http://9212.250.46.35:4248/bysid/6422 + #EXTINF:-1,BBC ALBA +#EXTINF:0, http://9212.250.46.35:4248/bysid/6423 + #EXTINF:-1,BBC One Yorks +#EXTINF:0, http://9212.250.46.35:4248/bysid/6451 + #EXTINF:-1,BBC One S East +#EXTINF:0, http://9212.250.46.35:4248/bysid/6461 + #EXTINF:-1,BBC One NE&C +#EXTINF:0, http://9212.250.46.35:4248/bysid/6471 + #EXTINF:-1,True Movies 1 +#EXTINF:0, http://9212.250.46.35:4249/bysid/53320 + #EXTINF:-1,True Movies 2 +#EXTINF:0, http://9212.250.46.35:4249/bysid/53325 + #EXTINF:-1,PopGirl +#EXTINF:0, #EXTINF:-1,http://9212.250.46.35:4249/bysid/53360 + #EXTINF:-1,True Ent +#EXTINF:0, http://9212.250.46.35:4249/bysid/53375 + #EXTINF:-1,True Drama +#EXTINF:0, http://9212.250.46.35:4249/bysid/53380 + #EXTINF:-1,BBC One South +#EXTINF:0, http://9212.250.46.35:4250/bysid/10353 + #EXTINF:-1,BBC One S West +#EXTINF:0, http://9212.250.46.35:4250/bysid/10354 + #EXTINF:-1,BBC One Oxford +#EXTINF:0, http://9212.250.46.35:4250/bysid/10356 + #EXTINF:-1,BBC One NI +#EXTINF:0, http://9212.250.46.35:4250/bysid/10361 + #EXTINF:-1,BBC Two NI +#EXTINF:0, http://9212.250.46.35:4250/bysid/10362 + #EXTINF:-1,3e +#EXTINF:0, http://9212.250.46.35:4251/bysid/52103 + #EXTINF:-1,horror channel +#EXTINF:0, http://9212.250.46.35:4251/bysid/52105 + #EXTINF:-1,Vintage TV +#EXTINF:0, http://9212.250.46.35:4251/bysid/52180 + #EXTINF:-1,RTE One +#EXTINF:0, http://9212.250.46.35:4252/bysid/9601 + #EXTINF:-1,RTE2 +#EXTINF:0, http://9212.250.46.35:4252/bysid/9602 + #EXTINF:-1,TG4 +#EXTINF:0, http://9212.250.46.35:4252/bysid/9603 + #EXTINF:-1,TV3 +#EXTINF:0, http://9212.250.46.35:4252/bysid/9605 + #EXTINF:-1,RTEjr +#EXTINF:0, http://9212.250.46.35:4252/bysid/9606 +#EXTINF:-1, Cartoon network +#EXTINF:0,http://937.48.118.32/live/cn.stream/playlist.m3u8 +#EXTINF:-1, Discovery +#EXTINF:0,http://937.48.118.32/live/discovery.stream/playlist.m3u8 +#EXTINF:-1, Discovery science +#EXTINF:0,http://937.48.118.32/live/discoverys.stream/playlist.m3u8 +#EXTINF:-1, Natgeo wild +#EXTINF:0,http://937.48.118.32/live/natgeow.stream/playlist.m3u8 +#EXTINF:-1, Sky living +#EXTINF:0,http://937.48.118.32/live/living.stream/playlist.m3u8 +#EXTINF:-1, Dmax +#EXTINF:0,http://937.48.118.32/live/dmax.stream/playlist.m3u8 +#EXTINF:-1, Quest +#EXTINF:0,http://937.48.118.32/live/quest.stream/playlist.m3u8 +#EXTINF:-1, Comedy central +#EXTINF:0,http://937.48.118.32/live/cc.stream/playlist.m3u8 +#EXTINF:-1, Sky 1 +#EXTINF:0,http://937.48.118.32/live/sky1.stream/playlist.m3u8 +#EXTINF:-1, Sky 2 +#EXTINF:0,http://937.48.118.32/live/sky2.stream/playlist.m3u8 +#EXTINF:-1, Bt sports 1 +#EXTINF:0,http://937.48.118.32/live/bt1.stream/playlist.m3u8 +#EXTINF:-1, Bt sports 2 +#EXTINF:0,http://937.48.118.32/live/bt2.stream/playlist.m3u8 +#EXTINF:-1, Sky sports 1 +#EXTINF:0,http://937.48.118.32/live/skysports1.stream/playlist.m3u8 +#EXTINF:-1, Sky sports 2 +#EXTINF:0,http://937.48.118.32/live/skysports2.stream/playlist.m3u8 +#EXTINF:-1, Sky sports 3 +#EXTINF:0,http://937.48.118.32/live/skysports3.stream/playlist.m3u8 +#EXTINF:-1, Sky sports 4 +#EXTINF:0,http://937.48.118.32/live/skysports4.stream/playlist.m3u8 +#EXTINF:-1, Sky sports 5 +#EXTINF:0,http://937.48.118.32/live/skysports5.stream/playlist.m3u8 +#EXTINF:-1, Sky sports f1 +#EXTINF:0,http://937.48.118.32/live/skysportsf1.stream/playlist.m3u8 +#EXTINF:-1, Sky sports news +#EXTINF:0,http://937.48.118.32/live/skysportsnews.stream/playlist.m3u8 +#EXTINF:-1, Sky news +#EXTINF:0,http://937.48.118.32/live/skynews.stream/playlist.m3u8 +#EXTINF:-1, Cnn +#EXTINF:0,http://937.48.118.32/live/cnn.stream/playlist.m3u8 +#EXTINF:-1, BBC news +#EXTINF:0,http://937.48.118.32/live/bbcnews.stream/playlist.m3u8 +#EXTINF:-1, Sky atlantic +#EXTINF:0,http://937.48.118.32/live/skyatlantic.stream/playlist.m3u8 +#EXTINF:-1, Nickelodeon +#EXTINF:0,http://937.48.118.32/live/nick.stream/playlist.m3u8 +#EXTINF:-1, Sky boxnation +#EXTINF:0,http://937.48.118.32/live/boxnation.stream/playlist.m3u8 +#EXTINF:-1, Disney channel +#EXTINF:0,http://937.48.118.32/live/disney.stream/playlist.m3u8 +#EXTINF:-1, BBC1 +#EXTINF:0,http://937.48.118.32/live/bbc1.stream/playlist.m3u8 +#EXTINF:-1, BBC2 +#EXTINF:0,http://937.48.118.32/live/bbc2.stream/playlist.m3u8 +#EXTINF:-1, BBC3 +#EXTINF:0,http://937.48.118.32/live/bbc3.stream/playlist.m3u8 +#EXTINF:-1, BBC4 +#EXTINF:0,http://937.48.118.32/live/bbc4.stream/playlist.m3u8 +ITV1 +#EXTINF:0,http://937.48.118.32/live/itv1.stream/playlist.m3u8 +ITV2 +#EXTINF:0,http://937.48.118.32/live/itv2.stream/playlist.m3u8 +ITV3 +#EXTINF:0,http://937.48.118.32/live/itv3.stream/playlist.m3u8 +ITV4 +#EXTINF:0,http://937.48.118.32/live/itv4.stream/playlist.m3u8 +Animal planet +#EXTINF:0,http://937.48.118.32/live/animal.stream/playlist.m3u8 +Film 4 +#EXTINF:0,http://937.48.118.32/live/film4.stream/playlist.m3u8 +5 usa +#EXTINF:0,http://937.48.118.32/live/5usa.stream/playlist.m3u8 +Sky arts 1 & 2 +#EXTINF:0,http://937.48.118.32/live/skyarts1.stream/playlist.m3u8 +http://937.48.118.32/live/skyarts2.stream/playlist.m3u8 +#EXTINF:0,Sky movies action +http://937.48.118.32/live/maction.stream/playlist.m3u8 +#EXTINF:0,Sky comedy +http://937.48.118.32/live/mcomedy.stream/playlist.m3u8 +#EXTINF:0,Sky scifi +http://937.48.118.32/live/mscifi.stream/playlist.m3u8 +#EXTINF:0,British eurosports 1 +http://937.48.118.32/live/eurosport1.stream/playlist.m3u8 +#EXTINF:0,British eurosport 2 +http://937.48.118.32/live/eurosport1.stream/playlist.m3u8 +#EXTINF:0,#EXTINF:-1 tvg-id="War Channel" tvg-logo="3977769.png", War Channel +rtmp://mi2.gv.filmon.com:8086/live/805.high.stream +#EXTINF:0,Cartoon network +http://937.48.118.32/live/cn.stream/playlist.m3u8 +#EXTINF:0,Discovery +http://937.48.118.32/live/discovery.stream/playlist.m3u8 +#EXTINF:0,Discovery science +http://937.48.118.32/live/discoverys.stream/playlist.m3u8 +#EXTINF:0,Natgeo wild +http://937.48.118.32/live/natgeow.stream/playlist.m3u8 +#EXTINF:0,Sky living +http://937.48.118.32/live/living.stream/playlist.m3u8 +#EXTINF:0,Dmax +http://937.48.118.32/live/dmax.stream/playlist.m3u8 +#EXTINF:0,Quest +http://937.48.118.32/live/quest.stream/playlist.m3u8 +#EXTINF:0,Comedy central +http://937.48.118.32/live/cc.stream/playlist.m3u8 +#EXTINF:0,Sky 1 +http://937.48.118.32/live/sky1.stream/playlist.m3u8 +#EXTINF:0,Sky 2 +http://937.48.118.32/live/sky2.stream/playlist.m3u8 +#EXTINF:0,Bt sports 1 +http://937.48.118.32/live/bt1.stream/playlist.m3u8 +#EXTINF:0,Bt sports 2 +http://937.48.118.32/live/bt2.stream/playlist.m3u8 +#EXTINF:0,Sky sports 1 +http://937.48.118.32/live/skysports1.stream/playlist.m3u8 +#EXTINF:0,Sky sports 2 +http://937.48.118.32/live/skysports2.stream/playlist.m3u8 +#EXTINF:0,Sky sports 3 +http://937.48.118.32/live/skysports3.stream/playlist.m3u8 +#EXTINF:0,Sky sports 4 +http://937.48.118.32/live/skysports4.stream/playlist.m3u8 +#EXTINF:0,Sky sports 5 +http://937.48.118.32/live/skysports5.stream/playlist.m3u8 +#EXTINF:0,Sky sports f1 +http://937.48.118.32/live/skysportsf1.stream/playlist.m3u8 +#EXTINF:0,Sky sports news +http://937.48.118.32/live/skysportsnews.stream/playlist.m3u8 +#EXTINF:0,Sky news +http://937.48.118.32/live/skynews.stream/playlist.m3u8 +#EXTINF:0,Cnn +http://937.48.118.32/live/cnn.stream/playlist.m3u8 +#EXTINF:0,BBC news +http://937.48.118.32/live/bbcnews.stream/playlist.m3u8 +#EXTINF:0,Sky atlantic +http://937.48.118.32/live/skyatlantic.stream/playlist.m3u8 +#EXTINF:0,Nickelodeon +http://937.48.118.32/live/nick.stream/playlist.m3u8 +#EXTINF:0,Sky boxnation +http://937.48.118.32/live/boxnation.stream/playlist.m3u8 +#EXTINF:0,Disney channel +http://937.48.118.32/live/disney.stream/playlist.m3u8 +#EXTINF:0,BBC1 +http://937.48.118.32/live/bbc1.stream/playlist.m3u8 +#EXTINF:0,BBC2 +http://937.48.118.32/live/bbc2.stream/playlist.m3u8 +#EXTINF:0,BBC3 +http://937.48.118.32/live/bbc3.stream/playlist.m3u8 +#EXTINF:0,BBC4 +http://937.48.118.32/live/bbc4.stream/playlist.m3u8 +#EXTINF:0,ITV1 +http://937.48.118.32/live/itv1.stream/playlist.m3u8 +#EXTINF:0,ITV2 +http://937.48.118.32/live/itv2.stream/playlist.m3u8 +#EXTINF:0,ITV3 +http://937.48.118.32/live/itv3.stream/playlist.m3u8 +#EXTINF:0,ITV4 +http://937.48.118.32/live/itv4.stream/playlist.m3u8 +#EXTINF:0,Animal planet +http://937.48.118.32/live/animal.stream/playlist.m3u8 +#EXTINF:0,Film 4 +http://937.48.118.32/live/film4.stream/playlist.m3u8 +#EXTINF:0,5 usa +http://937.48.118.32/live/5usa.stream/playlist.m3u8 +#EXTINF:0,Sky arts 1 & 2 +http://937.48.118.32/live/skyarts1.stream/playlist.m3u8 +#EXTINF:0,http://937.48.118.32/live/skyarts2.stream/playlist.m3u8 +Sky movies action +#EXTINF:0,http://937.48.118.32/live/maction.stream/playlist.m3u8 +Sky movie premiere +#EXTINF:0,http://937.48.118.32/live/mpremiere.stream/playlist.m3u8 +Sky comedy +#EXTINF:0,http://937.48.118.32/live/mcomedy.stream/playlist.m3u8 +Sky scifi +#EXTINF:0,http://937.48.118.32/live/mscifi.stream/playlist.m3u8 +British eurosports 1 +#EXTINF:0,http://937.48.118.32/live/eurosport1.stream/playlist.m3u8 +British eurosport 2 +#EXTINF:0,http://937.48.118.32/live/eurosport1.stream/playlist.m3u8 +Cnbc +#EXTINF:0,http://937.48.118.32/live/cnbc.stream/playlist.m3u8 +E4 +#EXTINF:0,http://937.48.118.32/live/e4.stream/playlist.m3u8 +http://937.48.118.32/live/alibi.stream/playlist.m3u8 +#EXTINF:0,http://937.48.118.32/live/ukgold.stream/playlist.m3u8 +http://937.48.118.32/live/mpremiere.stream/playlist.m3u8 +#EXTINF:0,http://937.48.118.32/live/mdrama.stream/playlist.m3u8 +http://937.48.118.32/live/mfamily.stream/playlist.m3u8 +#EXTINF:0,SKY SPORt 1 +http://9198.27.94.105/hls/skysports1.m3u8 +#EXTINF:0,SKY SPORt 2 +http://9198.27.94.105/hls/skysports2.m3u8 +#EXTINF:0,SKY SPORt 3 +http://9198.27.94.105/hls/skysports3.m3u8 +#EXTINF:0,SKY SPORt 4 +http://9198.27.94.105/hls/skysports4.m3u8 +#EXTINF:0,BT SPORT 1 +http://9198.27.94.105/hls/bt1.m3u8 +#EXTINF:0,BT SPORT 2 +http://9198.27.94.105/hls/bt2.m3u8 +#EXTINF:0,#EXTINF:0,SKY DISNEY +http://981.101.176.240:8001/1:0:1:10D4:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY DISNEY HD +http://981.101.176.240:8001/1:0:19:F3C:7E8:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY MOVIES FAMILY +http://981.101.176.240:8001/1:0:1:1133:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY MOVIES FAMILY HD +http://981.101.176.240:8001/1:0:86:EEA:7E0:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:-1,SKY CHRISTMAS 24 +http://981.101.176.240:8001/1:0:1:CC29:8FF:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:-1,SKY CHRISTMAS 24+ +http://981.101.176.240:8001/1:0:1:CC2E:8FF:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY COMEDY HD +http://981.101.176.240:8001/1:0:19:EEB:7E8:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY COMEDY +http://981.101.176.240:8001/1:0:1:10CF:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY DRAMA & ROMANCE +http://981.101.176.240:8001/1:0:1:157E:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY DRAMA ROMANCE HD +http://981.101.176.240:8001/1:0:19:EE8:7E8:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY ACTION & ADVENTURE +http://981.101.176.240:8001/1:0:1:10CE:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY ACTION & ADVENTURE HD +http://981.101.176.240:8001/1:0:19:EE6:7EC:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY MODERN GREATS +http://981.101.176.240:8001/1:0:1:1612:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY MODERN GREATS HD +http://981.101.176.240:8001/1:0:19:EE7:7E8:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY PREMIERE +http://981.101.176.240:8001/1:0:1:1134:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY PREMIER +1 +http://981.101.176.240:8001/1:0:1:1135:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY PREMIER HD +http://981.101.176.240:8001/1:0:19:EED:7E0:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY MOVIES SELECT +http://981.101.176.240:8001/1:0:1:10D2:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY MOVIES HD +http://981.101.176.240:8001/1:0:19:F3D:7E0:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY CRIME & THRILLER +http://981.101.176.240:8001/1:0:1:1136:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY CRIME & THRILLER HD +http://981.101.176.240:8001/1:0:19:F16:7E0:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY SCFI & HORROR +http://981.101.176.240:8001/1:0:1:10D0:7D7:2:11A0000:0:0:0: +#EXTINF:0,#EXTINF:0,SKY SCFI & HORROR HD +http://981.101.176.240:8001/1:0:19:EE9:7E8:2:11A0000:0:0:0: +#EXTINF:0,EXTINF:-1, FOX +http://9live.oneplay.tv/reproducir/85.m3u8 +#EXTINF:0,#EXTINF:-1, SONY +http://9live.oneplay.tv/reproducir/89.m3u8 +#EXTINF:0,#EXTINF:-1, WARNER HD +http://9live.oneplay.tv/reproducir/93.m3u8 +#EXTINF:0,#EXTINF:-1, UNIVERSAL +http://9live.oneplay.tv/reproducir/97.m3u8 +#EXTINF:0,#EXTINF:-1, FX HD +http://9live.oneplay.tv/reproducir/101.m3u8 +#EXTINF:0,#EXTINF:-1, A&E +http://9live.oneplay.tv/reproducir/105.m3u8 +#EXTINF:0,#EXTINF:-1, AXN HD +http://9live.oneplay.tv/reproducir/109.m3u8 +#EXTINF:0,#EXTINF:-1, TRUE HD +http://9live.oneplay.tv/reproducir/113.m3u8 +#EXTINF:0,#EXTINF:-1, COMEDY HD +http://9live.oneplay.tv/reproducir/117.m3u8 +#EXTINF:0,#EXTINF:-1, UNICABLE HD +http://9live.oneplay.tv/reproducir/121.m3u8 +#EXTINF:0,#EXTINF:-1, FOX HD +http://9live.oneplay.tv/reproducir/125.m3u8 +#EXTINF:0,#EXTINF:-1, BBC HD +http://9live.oneplay.tv/reproducir/129.m3u8 +#EXTINF:0,#EXTINF:-1, BBC HD +http://9live.oneplay.tv/reproducir/130.m3u8 +#EXTINF:0,#EXTINF:-1, E! HD +http://9live.oneplay.tv/reproducir/134.m3u8 +#EXTINF:0,#EXTINF:-1, UNIVERSAL +http://9live.oneplay.tv/reproducir/137.m3u8 +#EXTINF:0,#EXTINF:-1, SYFY HD +http://9live.oneplay.tv/reproducir/141.m3u8 +#EXTINF:0,#EXTINF:-1, FX HD +http://9live.oneplay.tv/reproducir/145.m3u8 +#EXTINF:0,#EXTINF:-1, I+D +http://9live.oneplay.tv/reproducir/153.m3u8 +#EXTINF:0,#EXTINF:-1, INFINITO +http://9live.oneplay.tv/reproducir/157.m3u8 +#EXTINF:0,#EXTINF:-1, GOURMET +http://9live.oneplay.tv/reproducir/161.m3u8 +#EXTINF:0,#EXTINF:-1, GLITZ +http://9live.oneplay.tv/reproducir/165.m3u8 +#EXTINF:0,#EXTINF:-1, FOX LIFE +http://9live.oneplay.tv/reproducir/169.m3u8 +#EXTINF:0,#EXTINF:-1, DISTRITO +http://9live.oneplay.tv/reproducir/173.m3u8 +#EXTINF:0,#EXTINF:-1, TBS +http://9live.oneplay.tv/reproducir/177.m3u8 +#EXTINF:0,#EXTINF:-1, CASA +http://9live.oneplay.tv/reproducir/181.m3u8 +#EXTINF:0,#EXTINF:-1, TVNOVELAS +http://9live.oneplay.tv/reproducir/185.m3u8 +#EXTINF:0,#EXTINF:-1, DISCOVERY KIDS +http://9live.oneplay.tv/reproducir/193.m3u8 +#EXTINF:0,#EXTINF:-1, BABIES +http://9live.oneplay.tv/reproducir/197.m3u8 +#EXTINF:0,#EXTINF:-1, DISNEY JUNIOR +http://9live.oneplay.tv/reproducir/201.m3u8 +#EXTINF:0,#EXTINF:-1, NICK JR +http://9live.oneplay.tv/reproducir/205.m3u8 +#EXTINF:0,#EXTINF:-1, DISNEY XD +hdhttp://9live.oneplay.tv/reproducir/209.m3u8 +#EXTINF:0,#EXTINF:-1, NICK HD +http://9live.oneplay.tv/reproducir/213.m3u8 +#EXTINF:0,#EXTINF:-1, CARTOON NETWORK +http://9live.oneplay.tv/reproducir/221.m3u8 +#EXTINF:0,#EXTINF:-1, XD +http://9live.oneplay.tv/reproducir/225.m3u8 +#EXTINF:0,#EXTINF:-1, BOOMERANG +http://9live.oneplay.tv/reproducir/229.m3u8 +#EXTINF:0,#EXTINF:-1, TIIN +http://9live.oneplay.tv/reproducir/233.m3u8 +#EXTINF:0,#EXTINF:-1, TOONCAST +http://9live.oneplay.tv/reproducir/237.m3u8 +#EXTINF:0,#EXTINF:-1, NICK TOONS +http://9live.oneplay.tv/reproducir/469.m3u8 +#EXTINF:0,#EXTINF:-1, THEATER HD +http://9live.oneplay.tv/reproducir/241.m3u8f +#EXTINF:0,#EXTINF:-1, DISCOVERY +http://9live.oneplay.tv/reproducir/257.m3u8 +#EXTINF:0,#EXTINF:-1, HISTORY HD +http://9live.oneplay.tv/reproducir/245.m3u8 +#EXTINF:0,#EXTINF:-1, NAT GEO WILD +http://9live.oneplay.tv/reproducir/249.m3u8 +#EXTINF:0,#EXTINF:-1, TLC +http://9live.oneplay.tv/reproducir/253.m3u8 +#EXTINF:0,#EXTINF:-1, ANIMAL PLANET +http://9live.oneplay.tv/reproducir/261.m3u8 +#EXTINF:0,#EXTINF:-1, HOME AND HEALTH +http://9live.oneplay.tv/reproducir/265.m3u8 +#EXTINF:0,#EXTINF:-1, NAT GEO +http://9live.oneplay.tv/reproducir/269.m3u8 +#EXTINF:0,#EXTINF:-1, BIO +http://9live.oneplay.tv/reproducir/273.m3u8 +#EXTINF:0,#EXTINF:-1, SCI +http://9live.oneplay.tv/reproducir/277.m3u8 +#EXTINF:0,#EXTINF:-1, CIVILIZATION +http://9live.oneplay.tv/reproducir/281.m3u8 +#EXTINF:0,#EXTINF:-1, TURBO +http://9live.oneplay.tv/reproducir/285.m3u8 +#EXTINF:0,#EXTINF:-1, TLC +http://9live.oneplay.tv/reproducir/289.m3u8 +#EXTINF:0,#EXTINF:-1, WOBI +http://9live.oneplay.tv/reproducir/293.m3u8 +#EXTINF:0,#EXTINF:-1, FOX+1 HD +http://9live.oneplay.tv/reproducir/297.m3u8 +#EXTINF:0,#EXTINF:-1, FOX+ ACCION +http://9live.oneplay.tv/reproducir/301.m3u8 +#EXTINF:0,#EXTINF:-1, FOX+ HOLLYWOOD +http://9live.oneplay.tv/reproducir/305.m3u8 +#EXTINF:0,#EXTINF:-1, CINECANL HD +http://9live.oneplay.tv/reproducir/309.m3u8 +#EXTINF:0,#EXTINF:-1, TNT HD +http://9live.oneplay.tv/reproducir/313.m3u8 +#EXTINF:0,#EXTINF:-1, GOLDEN HD +http://9live.oneplay.tv/reproducir/317.m3u8 +#EXTINF:0,#EXTINF:-1, FILMZONE HD +http://9live.oneplay.tv/reproducir/321.m3u8 +#EXTINF:0,#EXTINF:-1, MGM HD +http://9live.oneplay.tv/reproducir/329.m3u8 +#EXTINF:0,#EXTINF:-1, SPACE HD +http://9live.oneplay.tv/reproducir/333.m3u8 +#EXTINF:0,#EXTINF:-1, FOX+ MUNDO +http://9live.oneplay.tv/reproducir/337.m3u8 +#EXTINF:0,#EXTINF:-1, FOX+ FAMILY +http://9live.oneplay.tv/reproducir/341.m3u8 +#EXTINF:0,#EXTINF:-1, CINECANAL +http://9live.oneplay.tv/reproducir/349.m3u8 +#EXTINF:0,#EXTINF:-1, CINEMAX +http://9live.oneplay.tv/reproducir/353.m3u8 +#EXTINF:0,#EXTINF:-1, TNT +http://9live.oneplay.tv/reproducir/357.m3u8 +#EXTINF:0,#EXTINF:-1, EDGE +http://9live.oneplay.tv/reproducir/361.m3u8 +#EXTINF:0,#EXTINF:-1, MGM +http://9live.oneplay.tv/reproducir/365.m3u8 +#EXTINF:0,#EXTINF:-1, AMC +http://9live.oneplay.tv/reproducir/368.m3u8 +#EXTINF:0,#EXTINF:-1, SPACE +http://9live.oneplay.tv/reproducir/369.m3u8 +#EXTINF:0,#EXTINF:-1, STUDIO UNIVERSAL +http://9live.oneplay.tv/reproducir/373.m3u8 +#EXTINF:0,#EXTINF:-1, ISAT +http://9live.oneplay.tv/reproducir/377.m3u8 +#EXTINF:0,#EXTINF:-1, TCM +http://9live.oneplay.tv/reproducir/381.m3u8 +#EXTINF:0,#EXTINF:-1, ESPN HD +http://9live.oneplay.tv/reproducir/389.m3u8 +#EXTINF:0,#EXTINF:-1, ESPN +http://9live.oneplay.tv/reproducir/405.m3u8 +#EXTINF:0,#EXTINF:-1, ESPN 2 +http://9live.oneplay.tv/reproducir/409.m3u8 +#EXTINF:0,#EXTINF:-1, ESPN 3 +http://9live.oneplay.tv/reproducir/393.m3u8 +#EXTINF:0,#EXTINF:-1, FOX SPORT +http://9live.oneplay.tv/reproducir/397.m3u8 +#EXTINF:0,#EXTINF:-1, FOX SPORT 2 +http://9live.oneplay.tv/reproducir/401.m3u8 +#EXTINF:0,#EXTINF:-1, MTV LIVE +http://9live.oneplay.tv/reproducir/429.m3u8 +#EXTINF:0,#EXTINF:-1, TELEHIT HD +http://9live.oneplay.tv/reproducir/433.m3u8 +#EXTINF:0,#EXTINF:-1, VH1 HD +http://9live.oneplay.tv/reproducir/437.m3u8 +#EXTINF:0,#EXTINF:-1, RITMOSON +http://9live.oneplay.tv/reproducir/445.m3u8 +#EXTINF:0,#EXTINF:-1, BANDAMAX +http://9live.oneplay.tv/reproducir/449.m3u8 +#EXTINF:0,#EXTINF:-1, MILENIO +http://9live.oneplay.tv/reproducir/417.m3u8 +#EXTINF:0,#EXTINF:-1, TVE +http://9live.oneplay.tv/reproducir/421.m3u8 +#EXTINF:0,#EXTINF:-1, BLOOMERG +http://9live.oneplay.tv/reproducir/461.m3u8 +#EXTINF:0,#EXTINF:-1, STV +http://9live.oneplay.tv/reproducir/77.m3u8 +#EXTINF:0,#EXTINF:-1, AZTECA NOTICIAS +http://9live.oneplay.tv/reproducir/1.m3u8 +#EXTINF:0,#EXTINF:-1, AZTECA 7 +http://9live.oneplay.tv/reproducir/5.m3u8 +#EXTINF:0,#EXTINF:-1, NOVELAS +http://9live.oneplay.tv/reproducir/9.m3u8 +#EXTINF:0,#EXTINF:-1, AZTECA 7 HD +http://9live.oneplay.tv/reproducir/13.m3u8 +#EXTINF:0,#EXTINF:-1, TRECE HD +http://9live.oneplay.tv/reproducir/17.m3u8 +#EXTINF:0,#EXTINF:-1, 40 HD +http://9live.oneplay.tv/reproducir/21.m3u8 +#EXTINF:0,#EXTINF:-1, CANAL 2 HD +http://9live.oneplay.tv/reproducir/33.m3u8 +#EXTINF:0,#EXTINF:-1, CANAL 5 HD +http://9live.oneplay.tv/reproducir/37.m3u8 +#EXTINF:0,#EXTINF:-1, CANAL 2 +http://9live.oneplay.tv/reproducir/41.m3u8 +#EXTINF:0,#EXTINF:-1, FORO TV +http://9live.oneplay.tv/reproducir/45.m3u8 +#EXTINF:0,#EXTINF:-1, ONCE TV +http://9live.oneplay.tv/reproducir/61.m3u8 +#EXTINF:0,#EXTINF:-1, CADENA 3 +http://9live.oneplay.tv/reproducir/73.m3u8 +#EXTINF:0,#EXTINF:0, BT SPORT 1 +http://9198.27.94.105/hls/bt1.m3u8 +#EXTINF:0,#EXTINF:0, BT SPORT 2 +http://9198.27.94.105/hls/bt2.m3u8 +#EXTINF:0,#EXTINF:-1,CARTOON NETWORK +http://9cdn-02.sdn.si/cartoonnetwork/cartoonnetwork.m3u8 +#EXTINF:0,#EXTINF:-1,CBS DRAMA +http://9cdn-02.sdn.si/cbsdrama/cbsdrama.m3u8 +#EXTINF:0,#EXTINF:-1,CMC +http://9cdn-02.sdn.si/cmc/cmc.m3u8 +#EXTINF:0,#EXTINF:-1,CNN +http://9cdn-02.sdn.si/cnn/cnn.m3u8 +#EXTINF:0,#EXTINF:-1,CRIME INVESTIGATION +http://9cdn-02.sdn.si/crimeinvestigation/crimeinvestigation.m3u8 +#EXTINF:0,#EXTINF:-1,DAVINCI LEARNING +http://9cdn-02.sdn.si/davincilearning/davincilearning.m3u8 +#EXTINF:0,#EXTINF:-1,DISCOVERY +http://9cdn-02.sdn.si/discoverychannel/discoverychannel.m3u8 +#EXTINF:0,#EXTINF:-1,DISNEY +http://9cdn-02.sdn.si/disneychannel/disneychannel.m3u8 +#EXTINF:0,#EXTINF:-1,DISNEY XD +http://9cdn-02.sdn.si/disneyxd/disneyxd.m3u8 +#EXTINF:0,#EXTINF:-1,EXTREME SPORTS +http://9cdn-02.sdn.si/extreme/extreme.m3u8 +#EXTINF:0,#EXTINF:-1,FASHION +http://9cdn-02.sdn.si/fashiontv/fashiontv.m3u8 +#EXTINF:0,#EXTINF:-1,FOX +http://9cdn-02.sdn.si/fox/fox.m3u8 +#EXTINF:0,#EXTINF:-1,FOX LIFE +http://9cdn-02.sdn.si/foxlife/foxlife.m3u8 +#EXTINF:0,#EXTINF:-1,FOX MOVIES +http://9cdn-02.sdn.si/foxmovies/foxmovies.m3u8 +#EXTINF:0,#EXTINF:-1,GINX +http://9cdn-02.sdn.si/ginx/ginx.m3u8 +#EXTINF:0,#EXTINF:-1,HAYAT PLUS +http://9cdn-02.sdn.si/hayat/hayat.m3u8 +#EXTINF:0,#EXTINF:-1,HISTORY +http://9cdn-02.sdn.si/historychannel/historychannel.m3u8 +#EXTINF:0,#EXTINF:-1,HRT 1 jugo +http://9cdn-02.sdn.si/hrt1/hrt1.m3u8 +#EXTINF:0,#EXTINF:-1,HRT 2 jugo +http://9cdn-02.sdn.si/hrt2/hrt2.m3u8 +#EXTINF:0,#EXTINF:-1,JIMJAM +http://9cdn-02.sdn.si/jimjam/jimjam.m3u8 +#EXTINF:0,#EXTINF:-1,MTV ADRIA +http://9cdn-02.sdn.si/mtvadria/mtvadria.m3u8 +#EXTINF:0,#EXTINF:-1,MTV DANCE +http://9cdn-02.sdn.si/mtvdance/mtvdance.m3u8 +#EXTINF:0,#EXTINF:-1,MTV HITS +http://9cdn-02.sdn.si/mtvhits/mtvhits.m3u8 +#EXTINF:0,#EXTINF:-1,MTV ROCK +http://9cdn-02.sdn.si/mtvrocks/mtvrocks.m3u8 +#EXTINF:0,#EXTINF:-1,NAT GEO +http://9cdn-02.sdn.si/natgeo/natgeo.m3u8 +#EXTINF:0,#EXTINF:-1,NAT GEO WILD +http://9cdn-02.sdn.si/natgeowild/natgeowild.m3u8 +#EXTINF:0,#EXTINF:-1,NAUTICAL +http://9cdn-02.sdn.si/nauticalchannel/nauticalchannel.m3u8 +#EXTINF:0,#EXTINF:-1,NICKELODEON +http://9cdn-02.sdn.si/nickelodeon/nickelodeon.m3u8 +#EXTINF:0,#EXTINF:-1,OUTDOOR +http://9cdn-02.sdn.si/outdoorchannel/outdoorchannel.m3u8 +#EXTINF:0,#EXTINF:-1,POP KINO +http://9cdn-02.sdn.si/popkino/popkino.m3u8 +#EXTINF:0,#EXTINF:-1,VH1 +http://9cdn-02.sdn.si/vh1/vh1.m3u8 +#EXTINF:0,#EXTINF:-1,VH1 CLASSIC +http://9cdn-02.sdn.si/vh1classic/vh1classic.m3u8 +#EXTINF:0,#EXTINF:-1,TLC +http://9cdn-02.sdn.si/tlc/tlc.m3u8 +#EXTINF:0,#EXTINF:-1,TRACE SPORTS STARS +http://9cdn-02.sdn.si/tracesports/tracesports.m3u8 +#EXTINF:0,FOX CINEMA +http://9200.76.77.237/LIVE/H01/CANAL472/PROFILE03.m3u8? +#EXTINF:0,FOX FAMILY +http://9200.76.77.237/LIVE/H01/CANAL475/PROFILE03.m3u8? +#EXTINF:0,FOX CLASSICS +http://9200.76.77.237/LIVE/H01/CANAL478/PROFILE03.m3u8? +#EXTINF:0,CINECANAL +http://9200.76.77.237/LIVE/H01/CANAL480/PROFILE03.m3u8? +#EXTINF:0,TNT +http://9200.76.77.237/LIVE/H01/CANAL482/PROFILE03.m3u8? +#EXTINF:0,GOLDEN EDGE +http://9200.76.77.237/LIVE/H01/CANAL484/PROFILE03.m3u8? +#EXTINF:0,AMC +http://9200.76.77.237/LIVE/H01/CANAL490/PROFILE03.m3u8? +#EXTINF:0,STUDIO UNIVERSAL +http://9200.76.77.237/LIVE/H01/CANAL492/PROFILE03.m3u8? +#EXTINF:0,TCM +http://9200.76.77.237/LIVE/H01/CANAL496/PROFILE03.m3u8? +#EXTINF:0,CANAL DE LAS ESTRELLAS +http://9200.76.77.237/LIVE/H01/CANAL102/PROFILE03.m3u8? +#EXTINF:0,FORO TV +http://9200.76.77.237/LIVE/H01/CANAL104/PROFILE03.m3u8? +#EXTINF:0,CANAL 5 +http://9200.76.77.237/LIVE/H01/CANAL105/PROFILE03.m3u8? +#EXTINF:0,AZTECA 7 +http://9200.76.77.237/LIVE/H01/CANAL107/PROFILE03.m3u8? +#EXTINF:0,CANAL ONCE +http://9200.76.77.237/LIVE/H01/CANAL111/PROFILE03.m3u8? +#EXTINF:0,DISCOVERY HD +http://9200.76.77.237/LIVE/H01/CANAL351/PROFILE03.m3u8? +#EXTINF:0,HISTORY +http://9200.76.77.237/LIVE/H01/CANAL353/PROFILE03.m3u8? +#EXTINF:0,NAT GEO WILD +http://9200.76.77.237/LIVE/H01/CANAL355/PROFILE03.m3u8? +#EXTINF:0,TLC HD +http://9200.76.77.237/LIVE/H01/CANAL356/PROFILE03.m3u8? +#EXTINF:0,DISCOVERY +http://9200.76.77.237/LIVE/H01/CANAL371/PROFILE03.m3u8? +#EXTINF:0,ANIMAL PLANET +http://9200.76.77.237/LIVE/H01/CANAL373/PROFILE03.m3u8? +#EXTINF:0,NAT GEO +http://9200.76.77.237/LIVE/H01/CANAL377/PROFILE03.m3u8? +#EXTINF:0,TURBO +http://9200.76.77.237/LIVE/H01/CANAL379/PROFILE03.m3u8? +#EXTINF:0,D SCI +http://9200.76.77.237/LIVE/H01/CANAL381/PROFILE03.m3u8? +#EXTINF:0,D. CIVILIZATION +http://9200.76.77.237/LIVE/H01/CANAL382/PROFILE03.m3u8? +#EXTINF:0,TLC +http://9200.76.77.237/LIVE/H01/CANAL386/PROFILE03.m3u8? +#EXTINF:0,ESPN HD +http://9200.76.77.237/LIVE/H01/CANAL516/PROFILE03.m3u8? +#EXTINF:0,FOX SPORTS +http://9200.76.77.237/LIVE/H01/CANAL522/PROFILE03.m3u8? +#EXTINF:0,FOX SPORTS 2 +http://9200.76.77.237/LIVE/H01/CANAL527/PROFILE03.m3u8? +#EXTINF:0,ESPN +http://9200.76.77.237/LIVE/H01/CANAL558/PROFILE03.m3u8? +#EXTINF:0,ESPN2 +http://9200.76.77.237/LIVE/H01/CANAL561/PROFILE03.m3u8? \ No newline at end of file diff --git a/tests/m3uParser.Tests/Resources/format_specs.txt b/tests/m3uParser.Tests/Resources/format_specs.txt new file mode 100644 index 0000000..8456c5b --- /dev/null +++ b/tests/m3uParser.Tests/Resources/format_specs.txt @@ -0,0 +1,11 @@ +#EXTM3U url-tvg="http://server/jtv.zip" refresh="3600" +#EXTINF:-1 group-title="Free channels",Channel One +udp://225.55.55.1:1234 +#EXTINF:-1 group-title="Free channels",Channel Two +udp://225.55.55.2:1234 +#EXTINF:-1 group-title="Free channels",News Channel +udp://225.55.55.3:1234 +#EXTINF:-1 group-title="Free channels",News 2 Channel +http://udpxy.domain.ru:5555/udp/225.55.55.55:1234 +#EXTINF:-1 group-title="Music channels",MTV +udp://225.55.55.4:1234 \ No newline at end of file diff --git a/tests/m3uParser.Tests/Resources/iptv_sample.txt b/tests/m3uParser.Tests/Resources/iptv_sample.txt new file mode 100644 index 0000000..787ae74 --- /dev/null +++ b/tests/m3uParser.Tests/Resources/iptv_sample.txt @@ -0,0 +1,9 @@ +#EXTM3U url-tvg="http://www.teleguide.info/download/new3/xmltv.xml.gz" +#EXTINF:-1 group-title="Science", Discovery +http://example.com/channel1 +#EXTINF:-1 group-title="Sport", Eurosport +http://example.com/channel2 +#EXTINF:-1 tvg-logo="Eurosport" tvg-name="Eurosport" tvg-shift="+1",Eurosport +1 +http://example.com/channel3 +#EXTINF:-1 group-title="Custom" tvg-logo="https://cdn1.iconfinder.com/data/icons/Primo_Icons/PNG/128x128/video.png",My Custom channel +http://example.com/channel4 \ No newline at end of file diff --git a/tests/m3uParser.Tests/Resources/sample_paste_bin.txt b/tests/m3uParser.Tests/Resources/sample_paste_bin.txt new file mode 100644 index 0000000..deeed20 --- /dev/null +++ b/tests/m3uParser.Tests/Resources/sample_paste_bin.txt @@ -0,0 +1,239 @@ +#EXTM3U url-tvg="http://raw.githubusercontent.com/Twilight0/repo-guide/master/guide-el.xml.gz" +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ1" tvg-logo="http://greektv.pbworks.com/f/1433976522/ERT1.png",ERT1 +https://www.youtube.com/watch?v=WY_Zhh9-bI8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ1" tvg-logo="http://greektv.pbworks.com/f/1433976522/ERT1.png",ERT1 WORLDWIDE +https://www.youtube.com/watch?v=Zx98moCvkpU +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ2" tvg-logo="http://greektv.pbworks.com/f/1433976520/ERT2.png",ERT2 +https://www.youtube.com/watch?v=AOVVjaLbGEk +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ2" tvg-logo="http://greektv.pbworks.com/f/1433976520/ERT2.png",ERT2 BUP +http://freeview.ashttp9.visionip.tv/live/tvnetwork-hellenictv-nrg-hsslive-25f-4x3-SDh/chunklist.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ2" tvg-logo="http://greektv.pbworks.com/f/1433976520/ERT2.png",ERT2 WORLDWIDE +https://www.youtube.com/watch?v=qBxbnSwOrxE +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ3" tvg-logo="http://greektv.pbworks.com/f/ERT3.png",ERT3 +https://www.youtube.com/watch?v=ELB7cKTx5ig +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ3" tvg-logo="http://greektv.pbworks.com/f/ERT3.png",ERT3 WORLDWIDE +https://www.youtube.com/watch?v=ECbJrjrcCUE +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-logo="https://i.imgur.com/GlXdH4E.jpg",ERT PLAY 1 +https://www.youtube.com/watch?v=bVREmAZt6i0 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-logo="https://i.imgur.com/9AmRrmF.jpg",ERT PLAY 2 +https://www.youtube.com/watch?v=-OSoL74Gi0U +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="MEGA" tvg-logo="http://greektv.pbworks.com/f/MEGA.png",MEGA +http://master.cystreams.com:25461/live/greek/zagoria/43.ts +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ANT1" tvg-logo="http://greektv.pbworks.com/f/ANT1.png",ANT1 HD +https://glmxantennatvsec-lh.akamaihd.net/i/live_1@536771/master.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="" tvg-logo="http://greektv.pbworks.com/f/ALPHA.png",ALPHA HD +https://alphalive-i.akamaihd.net/hls/live/682300/live/prog_index.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="" tvg-logo="http://greektv.pbworks.com/f/ALPHA.png",ALPHA BUP +http://5.135.92.130:36523/out/u/552_1.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="STAR" tvg-logo="http://greektv.pbworks.com/f/STAR.png",STAR HD +http://klive-a.akamaihd.net/dc-1/live/hls/p/713821/e/1_fp7fyi3j/sd/6000/t/4YED1wipGXOZMnV1TrhLhQ/index-s32.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="STAR" tvg-logo="http://greektv.pbworks.com/f/STAR.png",STAR BUP +http://5.135.92.130:36523/out/u/575_1.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="STAR" tvg-logo="http://greektv.pbworks.com/f/STAR.png",STAR BUP +http://master.cystreams.com:25461/live/greek/zagoria/40.ts +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="Epsilon TV" tvg-logo="https://i.imgur.com/TEc8hmy.jpg",EPSILON TV HD +https://epsilonlivehls.akamaized.net/hls/live/683532/stream1a/res0/playlist_res0.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="Μακεδονία TV" tvg-logo="http://greektv.pbworks.com/f/M.tv_HD.png",M.TV HD +http://anglantennalive5-lh.akamaihd.net/i/live_1@424766/master.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΣΚΑΪ" tvg-logo="http://greektv.pbworks.com/f/SKAI.png",SKAI +http://master.cystreams.com:25461/live/greek/zagoria/42.ts +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΣΚΑΪ" tvg-logo="http://greektv.pbworks.com/f/SKAI.png",SKAI BUP +http://5.135.92.130:36523/out/u/573_1.m3u8 +#EXTINF:-1 group-title="CINEMA" tvg-logo="https://i.imgur.com/0iklNh2.png",GROOVY +http://bit.ly/2p6JqSo +#EXTINF:-1 group-title="CINEMA" tvg-logo="https://i.imgur.com/VSMbX07.jpg",GALAXY TV +http://master.cystreams.com:25461/live/GalaxyTV/GalaxyTV/184.m3u8 +#EXTINF:-1 group-title="CINEMA" tvg-logo="https://i.imgur.com/x7oKYHe.jpg",LAMPSI TV +https://59252df7bc61b.streamlock.net/LampsiTV/LampsiTV/playlist.m3u8 +#EXTINF:-1 group-title="CINEMA" tvg-logo="https://i.imgur.com/I1OPF07.png",MAROUSSI TV +http://portal2.iptv4younow.com:8000/live/greektv/FZlHCCdBHL/23257.ts +#EXTINF:-1 group-title="CINEMA" tvg-logo="http://i.imgur.com/gCki3IN.png",GREEK CINEMA +http://bit.ly/2KjHEtK +#EXTINF:-1 group-title="CINEMA" tvg-logo="http://i.imgur.com/5j4BfAu.png",NETV TORONTO +http://live.netvtoronto.com:1935/NetvToronto/NetvToronto/playlist.m3u8 +#EXTINF:-1 group-title="CINEMA" tvg-logo="http://i.imgur.com/cF6mgTb.png",MPAXALO TV +http://xmpaxalotv1x.api.channel.livestream.com/3.0/playlist.m3u8 +#EXTINF:-1 group-title="CINEMA" tvg-logo="https://i.imgur.com/hpepWSg.png",ARENA +http://web.onair-radio.eu:1935/Arenachannel/Arenachannel/playlist.m3u8 +#EXTINF:-1 group-title="CINEMA" tvg-logo="https://i.imgur.com/hfia0wN.png",WIXLAR +http://web.onair-radio.eu:1935/wixlar/wixlar/playlist.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/6i8Q7U2.png",RELOAD BIZZ +http://bit.ly/2pI4k89 +#EXTINF:-1 group-title="WEB TV" tvg-logo="https://i.imgur.com/k1UqVUA.png",WEDDING TV +http://web.onair-radio.eu:1935/weddingtv/weddingtv/playlist.m3u8 +#EXTINF:-1 group-title="ΠΑΙΔΙΚΑ" tvg-logo="http://i.imgur.com/rGzK4Hz.jpg",SQUEL TV +http://portal2.iptv4younow.com:8000/live/greektv/FZlHCCdBHL/23279.ts +#EXTINF:-1 group-title="ΠΑΙΔΙΚΑ" tvg-logo="http://i.imgur.com/XNB4qGR.png",CARTOON TV +http://bit.ly/2rvaV7Q +#EXTINF:-1 group-title="ΠΑΙΔΙΚΑ" tvg-logo="http://i.imgur.com/XNB4qGR.png",CARTOON TV2 +http://176.9.126.181:1006 +#EXTINF:-1 group-title="ΠΑΙΔΙΚΑ" tvg-logo="http://i.imgur.com/XNB4qGR.png",CARTOON TV3 +http://176.9.126.181:1010 +#EXTINF:-1 group-title="ΠΑΙΔΙΚΑ" tvg-logo="https://i.imgur.com/7sUmqv2.png",KIDS TV1 +http://176.9.126.181:1024 +#EXTINF:-1 group-title="ΠΑΙΔΙΚΑ" tvg-logo="https://i.imgur.com/7sUmqv2.png",KIDS TV2 +http://176.9.126.181:1022 +#EXTINF:-1 group-title="ΠΑΙΔΙΚΑ" tvg-logo="http://i.imgur.com/fExrqlx.png",SMILE TV CY +http://master.cystreams.com:25461/live/greek/zagoria/119.ts +#EXTINF:-1 group-title="ΠΑΙΔΙΚΑ" tvg-logo="http://i.imgur.com/rGzK4Hz.jpg",SQUEL TV 3D +http://portal2.iptv4younow.com:8000/live/greektv/FZlHCCdBHL/23280.ts +#EXTINF:-1 group-title="ΔΙΕΘΝΗ ΔΙΚΤΥΑ" tvg-logo="http://i.imgur.com/w37uJo1.png",MEGA COSMOS +http://stream2.svbllc.com:1935/mega/mega.stream/playlist.m3u8 +#EXTINF:-1 group-title="ΔΙΕΘΝΗ ΔΙΚΤΥΑ" tvg-name="Euronews Greek" tvg-logo="http://greektv.pbworks.com/w/file/fetch/45020521/EURONEWS.png",EURONEWS +https://www.youtube.com/watch?v=Z5l84cZ8OcU +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΒΟΥΛΗ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/45020116/Vouli.png",VOULI +http://streamer-cache.grnet.gr/parliament/hls/webtv.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΒΟΥΛΗ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/45020116/Vouli.png",VOULI BUP +http://freeview.ashttp9.visionip.tv/live/tvnetwork-hellenictv-vouli-hsslive-25f-4x3-SDh/chunklist.m3u8 +#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΒΟΥΛΗ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/45020116/Vouli.png",VOULI BUP 2 +http://streamer-cache.grnet.gr/parliament/hls/webtv2.m3u8 +#EXTINF:-1 group-title="ΔΙΕΘΝΗ ΔΙΚΤΥΑ" tvg-name="Ertw" tvg-logo="http://greektv.pbworks.com/w/file/fetch/54768932/ERT_WORLD.png",ERT WORLD +https://www.youtube.com/watch?v=qRY56sJJ2to +#EXTINF:-1 group-title="ΔΙΕΘΝΗ ΔΙΚΤΥΑ" tvg-name="Ertw" tvg-logo="http://greektv.pbworks.com/w/file/fetch/54768932/ERT_WORLD.png",ERT WORLD BUP +http://freeview.ashttp9.visionip.tv/live/tvnetwork-hellenictv-ertworld-hsslive-25f-4x3-SDh/chunklist.m3u8 +#EXTINF:-1 group-title="ΠΑΓΚΥΠΡΙΑ" tvg-name="ΡΙΚ SAT" tvg-logo="http://greektv.pbworks.com/w/file/fetch/52186869/RikSat.png",RIK SAT CY +http://l3.cloudskep.com/cybcsat/abr/playlist.m3u8 +#EXTINF:-1 group-title="ΠΑΓΚΥΠΡΙΑ" tvg-name="ΡΙΚ SAT" tvg-logo="http://greektv.pbworks.com/w/file/fetch/52186869/RikSat.png",RIK SAT CY BUP +http://freeview.ashttp9.visionip.tv/live/tvnetwork-hellenictv-riksat-hsslive-25f-4x3-SDh/chunklist.m3u8 +#EXTINF:-1 group-title="ΠΑΓΚΥΠΡΙΑ" tvg-name="Sigma" tvg-logo="http://i.imgur.com/BMvgdlc.png",SIGMA CY +http://81.21.47.74/hls/live.m3u8 +#EXTINF:-1 group-title="ΠΑΓΚΥΠΡΙΑ" tvg-name="" tvg-logo="https://i.imgur.com/OUBsJb0.jpg",TV ONE CY +http://bit.ly/2Hi50i0 +#EXTINF:-1 group-title="ΠΑΓΚΥΠΡΙΑ" tvg-name="Capital Tv" tvg-logo="https://i.imgur.com/bWASeDm.jpg",CAPITAL CY +http://freeview.ashttp9.visionip.tv/live/tvnetwork-hellenictv-htvcapital-hsslive-25f-4x3-SDh/chunklist.m3u8 +#EXTINF:-1 group-title="ΠΑΓΚΥΠΡΙΑ" tvg-name="Plus Tv" tvg-logo="http://primetel.com.cy/tvg/logos/201.png",PLUS TV CY +http://bit.ly/2KoO5vy +#EXTINF:-1 group-title="ΠΑΓΚΥΠΡΙΑ" tvg-name="Extra" tvg-logo="https://i.imgur.com/WjKQj8F.jpg",EXTRA CY +http://master.cystreams.com:25461/live/greek/zagoria/15.ts +#EXTINF:-1 group-title="ΠΑΓΚΥΠΡΙΑ" tvg-logo="http://i.imgur.com/3Juhubo.png",CBC TV MALL CY +http://bit.ly/2kZVvWP +#EXTINF:-1 group-title="ΠΑΓΚΥΠΡΙΑ" tvg-logo="https://i.imgur.com/Vq4YBIA.png",ALFA SPORT +http://l9.cloudskep.com/alsports/al24/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="" tvg-logo="https://i.imgur.com/B7JyJso.png",NEW TV +https://neotv.streamings.gr/live/tv/index.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="ΑΡΤ" tvg-logo="http://greektv.pbworks.com/f/ART.png",ART +http://tv3.streampulse.eu:1935/tilesport/movie2/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="Action 24" tvg-logo="http://greektv.pbworks.com/f/ACTION24.png",ACTION 24 +http://stream-15.dc3.dailymotion.com/48/dm/3/x61fbhs/live-2.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="Kontra Channel" tvg-logo="http://greektv.pbworks.com/f/KONTRA.png",KONTRA +http://flashcloud.mediacdn.com/live/kontratv/.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/f/HIGH.png",HIGH TV +http://live.streams.ovh:1935/hightv/hightv/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="Extra" tvg-logo="http://greektv.pbworks.com/f/EXTRA.png",EXTRA CHANNEL +https://s4.streamings.gr/extratv/extratv.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/f/BLUE_SKY.png",BLUE SKY +https://www.youtube.com/watch?v=pRJeZUXl5d4&feature=youtu.be +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://i.imgur.com/24uaLwh.png",CHANNEL 9 +https://server.tvdj.info:8222/channel9/channel9/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-id="4E" tvg-logo="http://greektv.pbworks.com/w/file/fetch/50028172/4E.png",4E +http://82.192.84.30:554/live/myStream.sdp/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-id="4E" tvg-logo="http://greektv.pbworks.com/w/file/fetch/50028172/4E.png",4E BUP +http://freeview.ashttp9.visionip.tv/live/tvnetwork-hellenictv-hellenice4-hsslive-25f-4x3-SDh/chunklist.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="https://i.imgur.com/1Zl1OJ5.png",NRG TV +http://tv.nrg91.gr:1935/onweb/live/master.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="http://i.imgur.com/QZQhg6C.png",MAGIC TV +http://94.23.218.186:1935/magictv/magictv/playlist.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="http://i.imgur.com/100uuWA.png",PLAY TV +http://web.onair-radio.eu:1935/Alpha-Host/Alpha-Host/playlist.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="https://i.imgur.com/I1OPF07.png",MAROUSSI MUSIC +http://portal2.iptv4younow.com:8000/live/greektv/FZlHCCdBHL/23303.ts +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="http://i.imgur.com/7TFlXBi.png",CANNALI +http://live.streams.ovh:1935/cannali/cannali/playlist.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="https://i.imgur.com/fwPUazv.jpg",RELOAD RADIO +http://bit.ly/2qVSex3 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="http://i.imgur.com/dW08jNe.png",ZOUGLA TV +http://zouglacam.mdc.akamaized.net/zouglalive/main/playlist.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="http://i.imgur.com/pK2p5ey.png",NG TV +http://live.streams.ovh:1935/NGradio/NGradio_360p/playlist.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="https://img.discogs.com/ZDIN5Nh1w2TQCUxZHw0G818givU=/fit-in/300x300/filters:strip_icc():format(jpeg):mode_rgb():quality(40)/discogs-images/L-166359-1287664629.jpeg.jpg",ALPHA MUSIC +http://v6.ciclano.io:1935/alpha/alpha/playlist.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="http://i.imgur.com/LgQBtTh.jpg",XALASTRA TV +http://94.23.218.186:1935/xalastratv/xalastratv/playlist.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="http://i.imgur.com/piGhf3m.png",TILEMOUSIKI +http://wpso.com:1936/hls/music1.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="http://i.imgur.com/rff1DsY.gif",FOX TV +http://live.streams.ovh:1935/foxtv/foxtv/playlist.m3u8 +#EXTINF:-1 group-title="ΜΟΥΣΙΚΗ" tvg-logo="http://i.imgur.com/baRnZKA.png",SUPERSTAR +http://v2.ciclano.io:1935/startv/startv/playlist.m3u +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="ΙΟΝΙΑΝ TV" tvg-logo="http://greektv.pbworks.com/w/file/fetch/51254412/IONIAN.PNG",IONIAN CHANNEL +http://stream.ioniantv.gr:8081/ionian/live/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="TV100" tvg-logo="http://greektv.pbworks.com/w/file/fetch/45193860/TV_100.png",TV 100 +http://178.62.176.153/hls/tv100/index.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="Star Κεντρικής Ελλάδας" tvg-logo="http://greektv.pbworks.com/w/file/fetch/45020317/STAR_K.E.png",STAR K.E. +http://stream-15.dc3.dailymotion.com/48/dm/3/xqjey2/live-2.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="Κρήτη TV" tvg-logo="http://greektv.pbworks.com/w/file/fetch/46926558/KRHTH_TV.png",KPHTH TV +http://live.cretetv.gr:1935/cretetv/myStream/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/46893829/CRETA.png",TV CRETA +http://live.streams.ovh:1935/tvcreta/tvcreta/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/46926622/NEA_TV.png",NEA TV +https://prod-video-eu-central-1.pscp.tv/JTGWW_01bVvMAp2HcUKkYPlM2VjU0hgu7x_xeIY9Lbx9P2PfVmyev417ZS_J3aKOKXnKNa-_uKbGZ_oqwXA9_Q/live/eu-central-1/dynamic_highlatency.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://i.imgur.com/jH6tcnu.png",HLEKTRA TV +http://iptv.vlivanis.gr:25461/live/LIve_Iptv/HTLPvzOfD9/36.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/f/ENA_CHANNEL.png",ENA CHANNEL +https://server.tvdj.info:8222/1c/stream/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/51254401/BEST.PNG",BEST TV +https://best-tv.gr/HLS/hls/best/index.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/f/START_TV.png",START TV +http://94.23.218.186:1935/StartMedia/StartMedia/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://i.imgur.com/nAzfWx5.png",TRT TV +http://trt-b6f5.kxcdn.com/restream/trt2/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="https://i.imgur.com/ASNgEZI.jpg",E TV +http://176.9.30.75:1935/live/epsilon/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/f/TOP_KOZANIS.png",TOP CHANNEL +https://ssh101.com/m3u8/dyn/topkozani123/index.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-name="Δέλτα TV" tvg-logo="http://greektv.pbworks.com/w/file/fetch/50028326/DELTA_TV.png",DELTA TV +http://video.onestreaming.com:8081/deltatv/live/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/50028330/THRAKINET.png",THRAKI NET +http://video.onestreaming.com:8081/thraki/thrakinettv/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="https://i.imgur.com/OnB6n3C.jpg",MESOGEIOS TV +http://176.9.123.140:1935/mesogeiostv/stream/master.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/50028329/R_CHANNEL.png",R CHANNEL +http://tvrodopi.srfms.com:1935/tvrodopi/livestream/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/f/AXELWOS_TV.png",AXELWOS TV +http://srv.viiideo.gr:1935/axeloos/live/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/52996478/ASTRA_TV.png",ASTRA TV +http://live.astratv.gr:8090/hls/livestream.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/45020365/SUPER_B.png",SUPER B +https://59252df7bc61b.streamlock.net/Superb/Superb/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/51265944/LYCHNOS.PNG",LYCHNOS +http://erato.multiserver.gr:1935/imp/imp/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://i.imgur.com/jYdwvZB.png",AIGAIO TV +https://ssh101.com/m3u8/dyn/aigaiotvlive/index.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/67079118/SAMIAKI_TV%2C.png",SAMIAKI TV +http://94.23.218.186:1935/samiaki/samiaki/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/54759558/OMEGA_TELEVISION.png",OMEGA TV +http://stream2.omegatv.net/hls-live/livepkgr/_definst_/liveevent/omegatv.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="http://greektv.pbworks.com/w/file/fetch/54780449/TV1_SYROS.png",SYROS TV1 +http://176.9.123.140:1935/msg116s/msg116s/playlist.m3u8 +#EXTINF:-1 group-title="ΠΕΡΙΦΕΡΕΙΑΚΑ" tvg-logo="https://i.imgur.com/ZgKZ5u9.jpg",ART TV +https://server.tvdj.info:8222/art/stream/playlist.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/uet8P2n.jpg",GREEK VOICE +http://wpso.com:1936/hls/wzra.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/nwInqes.png",MESSINIA WEB TV +http://176.9.123.140:1935/messinia/messinia/master.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="https://i.imgur.com/cHkxImh.png",TELE PROPERTY +http://web.onair-radio.eu:1935/teleproperty/teleproperty/playlist.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://207.36.91.70/images/2015/ellastv-logo-2015-main.png",ELLAS TV +http://ellastv.gotdns.com:88/freetv/promo/index.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://cretatv.gr/wp-content/uploads/2016/04/CRETA-TV-%CE%A7%CE%91%CE%9D%CE%99%CE%91-logo-n.png",CRETA TV +http://94.23.218.186:1935/cretatv/cretatv/playlist.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/2hU849d.jpg",TV DIPSO +http://94.23.218.186:1935/ekpdipso/ekpdipso/playlist.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/Fs1wQbm.png",HELLAS TV +http://176.9.123.140:1935/hellastv/_definst_/mp4:stream/master.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/GdgekUL.png",TV FILOPOLI +http://live.streams.ovh:1935/tvfilopoli/tvfilopoli/playlist.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/0Ovqq2f.png",TILESPORT +rtmp://tv3.streampulse.eu:1935/tilesport/movie1 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/jdMlstR.jpg",FAROS TV +http://master.cystreams.com:25461/live/faros/farostv/154.ts +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/2tB3wqn.png",MONTREAL TV +http://138.197.136.102:8081/live/greektv/playlist.m3u8 +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/AZteACJ.jpgE",RADIO EPISTROFI +http://master.cystreams.com:25461/live/epistrofi/epistrofi123/44.ts +#EXTINF:-1 group-title="WEB TV" tvg-logo="http://i.imgur.com/8WPWCi1.png",RYTHMOS RADIO TV +rtmp://rythmoscam.dyndns.org:1935/live/myStream +#EXTINF:-1 group-title="ΔΙΕΘΝΗ ΔΙΚΤΥΑ" tvg-logo="http://i.imgur.com/M1vn8hv.png",EBS +http://ott.ec.streamcloud.be/live/disk1/EBS/hls_el/EBS-audio_AACL_ell_66400_207=66400-video=800000.m3u8 +#EXTINF:-1 group-title="ΔΙΕΘΝΗ ΔΙΚΤΥΑ" tvg-logo="http://i.imgur.com/n907AGO.png",EBS PLUS +http://ott.ec.streamcloud.be/live/disk1/EBSplus/hls_el/EBSplus-audio_AACL_ell_66400_207=66400-video=800000.m3u8 \ No newline at end of file diff --git a/tests/m3uParser.Tests/Sample.Designer.cs b/tests/m3uParser.Tests/Sample.Designer.cs index ae360e7..98a563d 100644 --- a/tests/m3uParser.Tests/Sample.Designer.cs +++ b/tests/m3uParser.Tests/Sample.Designer.cs @@ -60,6 +60,45 @@ internal Sample() { } } + /// <summary> + /// Looks up a localized string similar to #EXTM3U + ///#EXTINF:0,#EXTM3U + ///#EXTINF:-1, [COLOR yellow]***FREE SKYNET TV*** [/COLOR] + ///#EXTINF:0,http://95.128.90.97:1232/udp/239.1.8.2:1232 + ///#EXTINF:-1, [COLOR green]****Sky Sports**** [/COLOR] + ///#EXTINF:0,http://95.128.90.97:1234/udp/239.1.8.2:1234 + ///http://937.48.118.32/live/skysports1.stream/playlist.m3u8 + ///#EXTINF:0,#EXTINF:0, Sky Sports 1 + ///http://9198.27.94.105/hls/skysports1.m3u8 + ///#EXTINF:0,#EXTINF:0, Sky Sports 2 + ///http://9198.27.94.105/hls/skysports2.m3u8 + ///#EXTINF:0,http://937.48.118.32/live/skysports2. [rest of string was truncated]";. + /// </summary> + internal static string big_list { + get { + return ResourceManager.GetString("big_list", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to #EXTM3U url-tvg="http://server/jtv.zip" refresh="3600" + ///#EXTINF:-1 group-title="Free channels",Channel One + ///udp://225.55.55.1:1234 + ///#EXTINF:-1 group-title="Free channels",Channel Two + ///udp://225.55.55.2:1234 + ///#EXTINF:-1 group-title="Free channels",News Channel + ///udp://225.55.55.3:1234 + ///#EXTINF:-1 group-title="Free channels",News 2 Channel + ///http://udpxy.domain.ru:5555/udp/225.55.55.55:1234 + ///#EXTINF:-1 group-title="Music channels",MTV + ///udp://225.55.55.4:1234. + /// </summary> + internal static string format_specs { + get { + return ResourceManager.GetString("format_specs", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to #EXTM3U url-tvg="http://www.teleguide.info/download/new3/jtv.zip" m3uautoload=1 cache=500 deinterlace=1 tvg-shift=0 ///#EXTINF:-1 tvgname="Первый_канал" tvglogo="Первый канал" grouptitle="Каналы ЦЭТВ РТРС" ,Первый канал @@ -75,6 +114,37 @@ internal static string header_with_parameters { } } + /// <summary> + /// Looks up a localized string similar to #EXTM3U url-tvg="http://www.teleguide.info/download/new3/xmltv.xml.gz" + ///#EXTINF:-1 group-title="Science", Discovery + ///http://example.com/channel1 + ///#EXTINF:-1 group-title="Sport", Eurosport + ///http://example.com/channel2 + ///#EXTINF:-1 tvg-logo="Eurosport" tvg-name="Eurosport" tvg-shift="+1",Eurosport +1 + ///http://example.com/channel3 + ///#EXTINF:-1 group-title="Custom" tvg-logo="https://cdn1.iconfinder.com/data/icons/Primo_Icons/PNG/128x128/video.png",My Custom channel + ///http://example.com/channel4. + /// </summary> + internal static string iptv_sample { + get { + return ResourceManager.GetString("iptv_sample", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to #EXTM3U url-tvg="http://raw.githubusercontent.com/Twilight0/repo-guide/master/guide-el.xml.gz" + ///#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ1" tvg-logo="http://greektv.pbworks.com/f/1433976522/ERT1.png",ERT1 + ///https://www.youtube.com/watch?v=WY_Zhh9-bI8 + ///#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ1" tvg-logo="http://greektv.pbworks.com/f/1433976522/ERT1.png",ERT1 WORLDWIDE + ///https://www.youtube.com/watch?v=Zx98moCvkpU + ///#EXTINF:-1 group-title="ΠΑΝΕΛΛΑΔΙΚΑ" tvg-name="ΕΡΤ2" tvg-logo="http://greektv. [rest of string was truncated]";. + /// </summary> + internal static string sample_paste_bin { + get { + return ResourceManager.GetString("sample_paste_bin", resourceCulture); + } + } + /// <summary> /// Looks up a localized string similar to #EXTM3U ///#EXT-X-PLAYLIST-TYPE:VOD diff --git a/tests/m3uParser.Tests/Sample.resx b/tests/m3uParser.Tests/Sample.resx index 71590a2..252adff 100644 --- a/tests/m3uParser.Tests/Sample.resx +++ b/tests/m3uParser.Tests/Sample.resx @@ -118,9 +118,21 @@ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> + <data name="big_list" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>Resources\big_list.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> + </data> + <data name="format_specs" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>Resources\format_specs.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> + </data> <data name="header_with_parameters" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>Resources\header-with-parameters.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> </data> + <data name="iptv_sample" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>Resources\iptv_sample.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> + </data> + <data name="sample_paste_bin" type="System.Resources.ResXFileRef, System.Windows.Forms"> + <value>Resources\sample_paste_bin.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> + </data> <data name="simple_vod" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>Resources\simple_vod.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value> </data> diff --git a/tests/m3uParser.Tests/SimpleTests.cs b/tests/m3uParser.Tests/SimpleTests.cs index 5c6598e..6c0a9e7 100644 --- a/tests/m3uParser.Tests/SimpleTests.cs +++ b/tests/m3uParser.Tests/SimpleTests.cs @@ -19,15 +19,34 @@ public void InfoSetTest() } [TestMethod] - public void SimpleParseTest() + public void AllTests() { - var m3u = M3U.Parse(Sample.simple_vod); + var simple_vod = M3U.Parse(Sample.simple_vod); + Assert.AreEqual(simple_vod.PlayListType, "VOD"); + Assert.AreEqual(simple_vod.Medias.Last().Duration, 9); + + var format_specs = M3U.Parse(Sample.format_specs); + Assert.AreEqual(format_specs.Medias.Last().MediaFile, "udp://225.55.55.4:1234"); + Assert.AreEqual(format_specs.Medias.Last().Title.RawTitle, "MTV"); + + var sample_paste_bin = M3U.Parse(Sample.sample_paste_bin); + Assert.AreEqual(sample_paste_bin.Medias.ElementAt(10).Attributes.TvgLogo, "http://greektv.pbworks.com/f/ANT1.png"); + + var header_with_parameters = M3U.Parse(Sample.header_with_parameters); + Assert.AreEqual(header_with_parameters.Attributes.Cache, 500); + + var iptv_sample = M3U.Parse(Sample.iptv_sample); + Assert.AreEqual(iptv_sample.Medias.ElementAt(2).Attributes.TvgShift, "+1"); + + var big_list = M3U.Parse(Sample.big_list); + Assert.AreEqual(big_list.Medias.Count(), 902); } [TestMethod] public void HeaderWithParametersTest() { var m3u = M3U.Parse(Sample.header_with_parameters); + Assert.AreEqual(m3u.Attributes.Cache, 500); } [TestMethod] diff --git a/tests/m3uParser.Tests/m3uParser.Tests.csproj b/tests/m3uParser.Tests/m3uParser.Tests.csproj index 13d0159..c8f2fce 100644 --- a/tests/m3uParser.Tests/m3uParser.Tests.csproj +++ b/tests/m3uParser.Tests/m3uParser.Tests.csproj @@ -71,6 +71,10 @@ </EmbeddedResource> </ItemGroup> <ItemGroup> + <None Include="Resources\format_specs.txt" /> + <None Include="Resources\sample_paste_bin.txt" /> + <None Include="Resources\iptv_sample.txt" /> + <None Include="Resources\big_list.txt" /> <Content Include="simple-vod.txt" /> <None Include="Resources\simple_vod.txt" /> <None Include="Resources\header-with-parameters.txt" />