diff --git a/Channel.json b/Channel.json index 566c401..a69ee81 100644 --- a/Channel.json +++ b/Channel.json @@ -1,346 +1,347 @@ [ -{ "Id": 1, "Name": "9colors", "KT Name": "9colors", "KTCh": 163, "LG Name": "나인컬러스", "LGCh": 178, "SK Name": "9colors", "SKCh": 220, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tRhzBgK.png", "Source": "SK", "ServiceId": "285", "Enabled": 0 }, -{ "Id": 2, "Name": "애니박스", "KT Name": "애니박스", "KTCh": 135, "LG Name": "애니박스", "LGCh": 148, "SK Name": "애니박스", "SKCh": 179, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ipM9AXe.png", "Source": "SKY", "ServiceId": "84", "Enabled": 0 }, -{ "Id": 3, "Name": "Animal Planet", "KT Name": "Animal Planet", "KTCh": 179, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ae70Di1.png", "Source": "SKY", "ServiceId": "182", "Enabled": 0 }, -{ "Id": 4, "Name": "ANIMAX", "KT Name": "ANIMAX", "KTCh": 133, "LG Name": "애니맥스", "LGCh": 167, "SK Name": "Animax", "SKCh": 173, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2Gfqhuj.png", "Source": "SKY", "ServiceId": "725", "Enabled": 0 }, -{ "Id": 5, "Name": "애니원", "KT Name": "애니원", "KTCh": 134, "LG Name": "애니원", "LGCh": 153, "SK Name": "애니원", "SKCh": 174, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/sIp2MZ3.png", "Source": "SKY", "ServiceId": "56", "Enabled": 0 }, -{ "Id": 6, "Name": "예술 TV아르떼", "KT Name": "예술 TV아르떼", "KTCh": 91, "LG Name": "예술TV 아르떼", "LGCh": 139, "SK Name": "Arte TV", "SKCh": 234, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/zReu7df.png", "Source": "SK", "ServiceId": "421", "Enabled": 0 }, -{ "Id": 7, "Name": "Asia UHD", "KT Name": "Asia UHD", "KTCh": 109, "LG Name": "", "LGCh": null, "SK Name": "Asia UHD", "SKCh": 72, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1u80OGN.png", "Source": "SKY", "ServiceId": "655", "Enabled": 0 }, -{ "Id": 8, "Name": "AsiaN", "KT Name": "AsiaN", "KTCh": 111, "LG Name": "아시아N", "LGCh": 88, "SK Name": "Asia N", "SKCh": 106, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/gleMSFq.png", "Source": "SK", "ServiceId": "177", "Enabled": 0 }, -{ "Id": 9, "Name": "Australia Plus", "KT Name": "Australia Plus", "KTCh": 258, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6k9j2Hj.png", "Source": "NAVER", "ServiceId": "815391", "Enabled": 0 }, -{ "Id": 10, "Name": "AXN", "KT Name": "AXN", "KTCh": 113, "LG Name": "AXN", "LGCh": 45, "SK Name": "AXN", "SKCh": 102, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/QrAXBEm.png", "Source": "LG", "ServiceId": "744", "Enabled": 0 }, -{ "Id": 11, "Name": "B Shopping", "KT Name": "B Shopping", "KTCh": 30, "LG Name": "B쇼핑", "LGCh": 28, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/HiCKxpt.png", "Source": "LG", "ServiceId": "738", "Enabled": 0 }, -{ "Id": 14, "Name": "Baby TV", "KT Name": "Baby TV", "KTCh": 146, "LG Name": "", "LGCh": null, "SK Name": "Baby TV", "SKCh": 195, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mU7QuTz.png", "Source": "KT", "ServiceId": "146", "Enabled": 0 }, -{ "Id": 15, "Name": "BBC Earth", "KT Name": "BBC Earth", "KTCh": 172, "LG Name": "BBC Earth", "LGCh": 130, "SK Name": "BBC earth", "SKCh": 265, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/SJZjuqO.png", "Source": "EPG", "ServiceId": "904", "Enabled": 0 }, -{ "Id": 18, "Name": "BBC WN", "KT Name": "BBC WN", "KTCh": 192, "LG Name": "BBC World News", "LGCh": 126, "SK Name": "BBC World News", "SKCh": 160, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/IwJBNd4.png", "Source": "EPG", "ServiceId": "260", "Enabled": 0 }, -{ "Id": 19, "Name": "BBS불교방송", "KT Name": "BBS불교방송", "KTCh": 232, "LG Name": "BBS", "LGCh": 186, "SK Name": "BBS 불교방송", "SKCh": 306, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/B34jpmo.png", "Source": "HCN", "ServiceId": "903", "Enabled": 0 }, -{ "Id": 20, "Name": "빌리어즈티비", "KT Name": "빌리어즈티비", "KTCh": 116, "LG Name": "빌리어즈TV", "LGCh": 63, "SK Name": "Billiards TV", "SKCh": 130, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/f0OW8wX.png", "Source": "EPG", "ServiceId": "615", "Enabled": 0 }, -{ "Id": 21, "Name": "Bloomberg", "KT Name": "Bloomberg", "KTCh": 196, "LG Name": "", "LGCh": null, "SK Name": "Bloomberg TV", "SKCh": 162, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WWNLhh3.png", "Source": "SK", "ServiceId": "775", "Enabled": 0 }, -{ "Id": 23, "Name": "BTN불교TV", "KT Name": "BTN불교TV", "KTCh": 233, "LG Name": "BTN", "LGCh": 185, "SK Name": "BTN 불교TV", "SKCh": 305, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/XU4pwpC.png", "Source": "HCN", "ServiceId": "52", "Enabled": 0 }, -{ "Id": 24, "Name": "C channel", "KT Name": "C Channel", "KTCh": 235, "LG Name": "C채널", "LGCh": 182, "SK Name": "C채널", "SKCh": 304, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/SFouN1c.png", "Source": "HCN", "ServiceId": "907", "Enabled": 0 }, -{ "Id": 26, "Name": "C TIME", "KT Name": "C TIME", "KTCh": 69, "LG Name": "C타임", "LGCh": 86, "SK Name": "C TIME", "SKCh": 86, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2FwWidb.png", "Source": "LG", "ServiceId": "775", "Enabled": 0 }, -{ "Id": 27, "Name": "Cbeebies", "KT Name": "Cbeebies", "KTCh": 152, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4bIQeie.png", "Source": "NAVER", "ServiceId": "814991", "Enabled": 0 }, -{ "Id": 28, "Name": "CBS", "KT Name": "CBS", "KTCh": 238, "LG Name": "CBS", "LGCh": 181, "SK Name": "CBS", "SKCh": 300, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yBNo2mS.png", "Source": "HCN", "ServiceId": "156", "Enabled": 0 }, -{ "Id": 31, "Name": "CCTV4", "KT Name": "CCTV4", "KTCh": 280, "LG Name": "CCTV4", "LGCh": 120, "SK Name": "CCTV4", "SKCh": 277, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ACwvhcc.png", "Source": "ISCS", "ServiceId": "1467", "Enabled": 0 }, -{ "Id": 32, "Name": "CGNTV", "KT Name": "CGNTV", "KTCh": 237, "LG Name": "CGNTV", "LGCh": 183, "SK Name": "CGNTV", "SKCh": 302, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/9fNvKEX.png", "Source": "NAVER", "ServiceId": "815106", "Enabled": 0 }, -{ "Id": 34, "Name": "Channel [V]", "KT Name": "Channel [V]", "KTCh": 89, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/t1PNA6v.png", "Source": "KT", "ServiceId": "89", "Enabled": 0 }, -{ "Id": 35, "Name": "채널 J", "KT Name": "채널 J", "KTCh": 108, "LG Name": "채널J", "LGCh": 145, "SK Name": "채널J", "SKCh": 103, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/V9jGCZm.png", "Source": "LG", "ServiceId": "656", "Enabled": 0 }, -{ "Id": 36, "Name": "Channel News Asia", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Channel News Asia", "SKCh": 163, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/hahdOp1.png", "Source": "SKB", "ServiceId": "777", "Enabled": 0 }, -{ "Id": 38, "Name": "cineF", "KT Name": "", "KTCh": null, "LG Name": "시네프", "LGCh": 42, "SK Name": "Cinef", "SKCh": 58, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/TfhQXIv.png", "Source": "SKB", "ServiceId": "193", "Enabled": 0 }, -{ "Id": 39, "Name": "UXN", "KT Name": "UXN", "KTCh": 101, "LG Name": "UXN", "LGCh": 2, "SK Name": "UXN", "SKCh": 70, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/5rRW0R3.png", "Source": "SKY", "ServiceId": "624", "Enabled": 0 }, -{ "Id": 40, "Name": "CJ오쇼핑", "KT Name": "CJ오쇼핑", "KTCh": 4, "LG Name": "CJ오쇼핑", "LGCh": 8, "SK Name": "CJ오쇼핑", "SKCh": 6, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/uBClUx6.png", "Source": "EPG", "ServiceId": "250", "Enabled": 0 }, -{ "Id": 41, "Name": "CJ오쇼핑 플러스", "KT Name": "CJ오쇼핑플러스", "KTCh": 28, "LG Name": "CJ오쇼핑+", "LGCh": 32, "SK Name": "CJ오쇼핑 플러스", "SKCh": 33, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WlK2YDk.png", "Source": "KT", "ServiceId": "28", "Enabled": 0 }, -{ "Id": 42, "Name": "CLASSICA", "KT Name": "CLASSICA", "KTCh": 90, "LG Name": "클래시카", "LGCh": 146, "SK Name": "Classica HD", "SKCh": 235, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/FEfMS0W.png", "Source": "EPG", "ServiceId": "365", "Enabled": 0 }, -{ "Id": 43, "Name": "CMC가족오락TV", "KT Name": "CMC가족오락TV", "KTCh": 126, "LG Name": "", "LGCh": null, "SK Name": "CMC 가족오락TV", "SKCh": 93, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/fNuqGzR.png", "Source": "NAVER", "ServiceId": "814797", "Enabled": 0 }, -{ "Id": 44, "Name": "CMTV", "KT Name": "CMTV", "KTCh": 262, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ITweLdv.png", "Source": "KT", "ServiceId": "44", "Enabled": 0 }, -{ "Id": 45, "Name": "CNBC", "KT Name": "CNBC", "KTCh": 197, "LG Name": "CNBC", "LGCh": 118, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Mx8ZXqk.png", "Source": "NAVER", "ServiceId": "815128", "Enabled": 0 }, -{ "Id": 46, "Name": "CNN International", "KT Name": "CNN International", "KTCh": 191, "LG Name": "CNN International", "LGCh": 117, "SK Name": "CNN International", "SKCh": 158, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RxsYny9.png", "Source": "EPG", "ServiceId": "117", "Enabled": 0 }, -{ "Id": 47, "Name": "CNN US", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "CNN US", "SKCh": 159, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EL6i9mA.png", "Source": "SK", "ServiceId": "782", "Enabled": 0 }, -{ "Id": 48, "Name": "CNTV", "KT Name": "CNTV", "KTCh": 68, "LG Name": "CNTV", "LGCh": 85, "SK Name": "CNTV", "SKCh": 43, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lCGq3v1.png", "Source": "NAVER", "ServiceId": "814709", "Enabled": 0 }, -{ "Id": 49, "Name": "CTS기독교TV", "KT Name": "CTS기독교TV", "KTCh": 236, "LG Name": "CTS", "LGCh": 180, "SK Name": "CTS", "SKCh": 301, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lW9nvaB.png", "Source": "HCN", "ServiceId": "42", "Enabled": 0 }, -{ "Id": 50, "Name": "CUBE TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "CUBE TV", "SKCh": 89, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xvEjFJa.png", "Source": "NAVER", "ServiceId": "1725243", "Enabled": 0 }, -{ "Id": 51, "Name": "디스커버리채널", "KT Name": "디스커버리채널", "KTCh": 177, "LG Name": "", "LGCh": null, "SK Name": "Discovery Channel", "SKCh": 261, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1SgSI0P.png", "Source": "SKB", "ServiceId": "437", "Enabled": 0 }, -{ "Id": 52, "Name": "Dog TV", "KT Name": "Dog TV", "KTCh": 201, "LG Name": "DOG TV", "LGCh": 89, "SK Name": "DOG TV", "SKCh": 79, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4Xqehq9.png", "Source": "SKB", "ServiceId": "255", "Enabled": 0 }, -{ "Id": 53, "Name": "Dream Works Channel", "KT Name": "Dream Works Channel", "KTCh": 131, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ETfF49T.png", "Source": "KT", "ServiceId": "131", "Enabled": 0 }, -{ "Id": 54, "Name": "DW-TV Asia+", "KT Name": "DW-TV Asia+", "KTCh": 257, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/b0yhwNu.png", "Source": "NAVER", "ServiceId": "815529", "Enabled": 0 }, -{ "Id": 55, "Name": "E채널", "KT Name": "E채널", "KTCh": 48, "LG Name": "E 채널", "LGCh": 104, "SK Name": "E채널", "SKCh": 83, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0WmEGB4.png", "Source": "EPG", "ServiceId": "108", "Enabled": 0 }, -{ "Id": 56, "Name": "EBS English", "KT Name": "EBS English", "KTCh": 156, "LG Name": "EBS English", "LGCh": 162, "SK Name": "EBS English", "SKCh": 202, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Rx4mgpm.png", "Source": "LG", "ServiceId": "801", "Enabled": 0 }, -{ "Id": 57, "Name": "EBS u", "KT Name": "EBS u", "KTCh": 145, "LG Name": "EBS u", "LGCh": 168, "SK Name": "EBSu", "SKCh": 194, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RIgVjvP.png", "Source": "NAVER", "ServiceId": "815547", "Enabled": 0 }, -{ "Id": 58, "Name": "EBS PLUS1", "KT Name": "EBS PLUS1", "KTCh": 157, "LG Name": "EBS+1", "LGCh": 163, "SK Name": "EBS +1", "SKCh": 203, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WGlWiWy.png", "Source": "LG", "ServiceId": "714", "Enabled": 0 }, -{ "Id": 59, "Name": "EBS PLUS2", "KT Name": "EBS PLUS2", "KTCh": 158, "LG Name": "EBS+2", "LGCh": 164, "SK Name": "EBS +2", "SKCh": 204, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/QPq2wcg.png", "Source": "LG", "ServiceId": "715", "Enabled": 0 }, -{ "Id": 60, "Name": "EBS", "KT Name": "EBS", "KTCh": 13, "LG Name": "EBS1", "LGCh": 14, "SK Name": "EBS", "SKCh": 13, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WViFruZ.png", "Source": "SKY", "ServiceId": "798", "Enabled": 0 }, -{ "Id": 61, "Name": "EBS2", "KT Name": "EBS2", "KTCh": 95, "LG Name": "EBS2", "LGCh": 95, "SK Name": "EBS2", "SKCh": 95, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RIrBF4D.png", "Source": "POOQ", "ServiceId": "E02", "Enabled": 0 }, -{ "Id": 62, "Name": "Edge TV", "KT Name": "Edge TV", "KTCh": 79, "LG Name": "엣지TV", "LGCh": 68, "SK Name": "EDGE TV", "SKCh": 44, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/gsnjG4A.png", "Source": "HCN", "ServiceId": "104", "Enabled": 0 }, -{ "Id": 63, "Name": "edu TV", "KT Name": "edu TV", "KTCh": 159, "LG Name": "에듀TV", "LGCh": 165, "SK Name": "edu TV", "SKCh": 205, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZsMKNGe.png", "Source": "LG", "ServiceId": "810", "Enabled": 0 }, -{ "Id": 67, "Name": "Euro News", "KT Name": "Euro News", "KTCh": 193, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6jswCZM.png", "Source": "NAVER", "ServiceId": "814935", "Enabled": 0 }, -{ "Id": 68, "Name": "Euro sport", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Eurosport", "SKCh": 134, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/7hVKz6n.png", "Source": "SKB", "ServiceId": "120", "Enabled": 0 }, -{ "Id": 70, "Name": "Extreme Fun", "KT Name": "Extreme Fun", "KTCh": 173, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yDg1RC6.png", "Source": "KT", "ServiceId": "173", "Enabled": 0 }, -{ "Id": 71, "Name": "Fashion N", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Fashion N", "SKCh": 211, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qPBnZpV.png", "Source": "SKB", "ServiceId": "274", "Enabled": 0 }, -{ "Id": 72, "Name": "FISHING TV", "KT Name": "FISHING TV", "KTCh": 119, "LG Name": "피싱TV", "LGCh": 65, "SK Name": "FISHING TV", "SKCh": 244, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Go4FdK1.png", "Source": "SK", "ServiceId": "273", "Enabled": 0 }, -{ "Id": 73, "Name": "푸드TV", "KT Name": "푸드TV", "KTCh": 78, "LG Name": "푸드TV", "LGCh": 83, "SK Name": "Food TV", "SKCh": 213, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/F9Rb9SA.png", "Source": "HCN", "ServiceId": "753", "Enabled": 0 }, -{ "Id": 74, "Name": "FOX", "KT Name": "FOX", "KTCh": 107, "LG Name": "FOX채널", "LGCh": 44, "SK Name": "FOX", "SKCh": 101, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/8usDWOC.png", "Source": "LG", "ServiceId": "654", "Enabled": 0 }, -{ "Id": 75, "Name": "Fox life", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Fox life", "SKCh": 216, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/CqVujLk.png", "Source": "SKB", "ServiceId": "280", "Enabled": 0 }, -{ "Id": 76, "Name": "Fox News", "KT Name": "Fox News", "KTCh": 195, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/9rGThzD.png", "Source": "NAVER", "ServiceId": "815413", "Enabled": 0 }, -{ "Id": 78, "Name": "FTV", "KT Name": "FTV", "KTCh": 118, "LG Name": "FTV", "LGCh": 64, "SK Name": "FTV", "SKCh": 243, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/eI9wGgS.png", "Source": "HCN", "ServiceId": "262", "Enabled": 0 }, -{ "Id": 79, "Name": "FUN TV", "KT Name": "FUN TV", "KTCh": 71, "LG Name": "", "LGCh": null, "SK Name": "FUN TV", "SKCh": 91, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6V8X43L.png", "Source": "KT", "ServiceId": "71", "Enabled": 0 }, -{ "Id": 80, "Name": "FX", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "FX", "SKCh": 90, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/DAnUsTS.png", "Source": "SKY", "ServiceId": "818", "Enabled": 0 }, -{ "Id": 82, "Name": "GMTV", "KT Name": "GMTV", "KTCh": 88, "LG Name": "GMTV", "LGCh": 101, "SK Name": "GMTV", "SKCh": 232, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WPF3G5V.png", "Source": "NAVER", "ServiceId": "814815", "Enabled": 0 }, -{ "Id": 83, "Name": "Good TV", "KT Name": "Good TV", "KTCh": 234, "LG Name": "", "LGCh": null, "SK Name": "Good TV", "SKCh": 303, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/fFN1YJb.png", "Source": "HCN", "ServiceId": "293", "Enabled": 0 }, -{ "Id": 84, "Name": "GS MY SHOP", "KT Name": "GS MY SHOP", "KTCh": 38, "LG Name": "GS마이샵", "LGCh": 30, "SK Name": "GS MY SHOP", "SKCh": 29, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0Y0pRW4.png", "Source": "SK", "ServiceId": "343", "Enabled": 0 }, -{ "Id": 85, "Name": "GS SHOP", "KT Name": "GS SHOP", "KTCh": 8, "LG Name": "GS샵", "LGCh": 6, "SK Name": "GS SHOP", "SKCh": 12, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tz88mYd.png", "Source": "HCN", "ServiceId": "45", "Enabled": 0 }, -{ "Id": 86, "Name": "GTV", "KT Name": "GTV", "KTCh": 73, "LG Name": "GTV", "LGCh": 136, "SK Name": "Gtv", "SKCh": 217, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1qXSXRa.png", "Source": "HCN", "ServiceId": "35", "Enabled": 0 }, -{ "Id": 87, "Name": "히어로액션", "KT Name": "히어로액션", "KTCh": 112, "LG Name": "히어로액션", "LGCh": 110, "SK Name": "히어로액션", "SKCh": 107, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yBChQVh.png", "Source": "NAVER", "ServiceId": "814760", "Enabled": 0 }, -{ "Id": 89, "Name": "하이라이트TV", "KT Name": "하이라이트TV", "KTCh": 74, "LG Name": "하이라이트TV", "LGCh": 91, "SK Name": "Highlight TV", "SKCh": 42, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/V9CQ4A6.png", "Source": "LG", "ServiceId": "701", "Enabled": 0 }, -{ "Id": 90, "Name": "History HD", "KT Name": "History HD", "KTCh": 169, "LG Name": "히스토리 HD", "LGCh": 132, "SK Name": "History HD", "SKCh": 264, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/SSkop4X.png", "Source": "NAVER", "ServiceId": "815148", "Enabled": 0 }, -{ "Id": 91, "Name": "HQ+", "KT Name": "HQ+", "KTCh": 253, "LG Name": "", "LGCh": null, "SK Name": "HQ+", "SKCh": 47, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GTANuZS.png", "Source": "NAVER", "ServiceId": "3566359", "Enabled": 0 }, -{ "Id": 92, "Name": "아이넷TV", "KT Name": "아이넷TV", "KTCh": 92, "LG Name": "아이넷TV", "LGCh": 106, "SK Name": "아이넷 TV", "SKCh": 233, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/JYQpemw.png", "Source": "SKB", "ServiceId": "261", "Enabled": 0 }, -{ "Id": 93, "Name": "IB SPORTS", "KT Name": "IB SPORTS", "KTCh": 53, "LG Name": "IB스포츠", "LGCh": 62, "SK Name": "IB Sports", "SKCh": 129, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/wOOQEC1.png", "Source": "SKY", "ServiceId": "515", "Enabled": 0 }, -{ "Id": 94, "Name": "i-Concerts", "KT Name": "", "KTCh": null, "LG Name": "아이콘서트", "LGCh": 108, "SK Name": "i-Concerts", "SKCh": 236, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/oUUZQdi.png", "Source": "LG", "ServiceId": "661", "Enabled": 0 }, -{ "Id": 95, "Name": "JEI EnglishTV", "KT Name": "JEI EnglishTV", "KTCh": 154, "LG Name": "JEI EnglishTV", "LGCh": 160, "SK Name": "JEI 재능 English", "SKCh": 200, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/R1oJmLo.png", "Source": "SKY", "ServiceId": "289", "Enabled": 0 }, -{ "Id": 96, "Name": "JEI 재능TV", "KT Name": "JEI 재능TV", "KTCh": 142, "LG Name": "JEI재능TV", "LGCh": 159, "SK Name": "JEI 재능TV", "SKCh": 192, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/NoNRdSt.png", "Source": "SKY", "ServiceId": "23", "Enabled": 0 }, -{ "Id": 97, "Name": "JTBC", "KT Name": "JTBC", "KTCh": 15, "LG Name": "JTBC", "LGCh": 15, "SK Name": "JTBC", "SKCh": 15, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/YOYosLG.png", "Source": "POOQ", "ServiceId": "C2301", "Enabled": 0 }, -{ "Id": 98, "Name": "JTBC Golf", "KT Name": "JTBC Golf", "KTCh": 56, "LG Name": "JTBC골프", "LGCh": 54, "SK Name": "JTBC GOLF", "SKCh": 132, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Bnw7O5U.png", "Source": "SKY", "ServiceId": "974", "Enabled": 0 }, -{ "Id": 99, "Name": "JTBC2", "KT Name": "JTBC2", "KTCh": 39, "LG Name": "JTBC2", "LGCh": 94, "SK Name": "jtbc2", "SKCh": 82, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WtXDuFU.png", "Source": "POOQ", "ServiceId": "C2303", "Enabled": 0 }, -{ "Id": 100, "Name": "JTBC3", "KT Name": "JTBC3", "KTCh": 62, "LG Name": "JTBC3 FOX스포츠", "LGCh": 50, "SK Name": "JTBC3 FOXSPORTS", "SKCh": 126, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/KvGwEc1.png", "Source": "POOQ", "ServiceId": "C2304", "Enabled": 0 }, -{ "Id": 101, "Name": "K STAR", "KT Name": "K STAR", "KTCh": 87, "LG Name": "K스타", "LGCh": 105, "SK Name": "K star", "SKCh": 88, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/MYtePna.png", "Source": "LG", "ServiceId": "662", "Enabled": 0 }, -{ "Id": 103, "Name": "KBS DRAMA", "KT Name": "KBS Drama", "KTCh": 35, "LG Name": "KBS드라마", "LGCh": 31, "SK Name": "KBS 드라마", "SKCh": 30, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/CrLMIEQ.png", "Source": "SKY", "ServiceId": "910", "Enabled": 0 }, -{ "Id": 104, "Name": "KBS JOY", "KT Name": "KBS Joy", "KTCh": 41, "LG Name": "KBS조이", "LGCh": 3, "SK Name": "KBS joy", "SKCh": 80, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/D1o9by9.png", "Source": "POOQ", "ServiceId": "K04", "Enabled": 0 }, -{ "Id": 105, "Name": "KBS kids", "KT Name": "KBS Kids", "KTCh": 144, "LG Name": "KBS키즈", "LGCh": 169, "SK Name": "KBS KIDS", "SKCh": 190, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Jcfjs9E.png", "Source": "SKY", "ServiceId": "596", "Enabled": 0 }, -{ "Id": 106, "Name": "KBSN Life", "KT Name": "KBSN Life", "KTCh": 281, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/5Ni1YIT.png", "Source": "POOQ", "ServiceId": "K05", "Enabled": 0 }, -{ "Id": 107, "Name": "KBS N Sports", "KT Name": "KBS N Sports", "KTCh": 59, "LG Name": "KBSN스포츠", "LGCh": 59, "SK Name": "KBSN 스포츠", "SKCh": 121, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xspD7UE.png", "Source": "LG", "ServiceId": "618", "Enabled": 0 }, -{ "Id": 108, "Name": "KBS W", "KT Name": "KBS W", "KTCh": 83, "LG Name": "KBS W", "LGCh": 77, "SK Name": "KBS W", "SKCh": 214, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/sVqBczs.png", "Source": "POOQ", "ServiceId": "K09", "Enabled": 0 }, -{ "Id": 110, "Name": "KBS1", "KT Name": "KBS1", "KTCh": 9, "LG Name": "KBS1", "LGCh": 9, "SK Name": "KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "SKY", "ServiceId": "796", "Enabled": 0 }, -{ "Id": 111, "Name": "KBS2", "KT Name": "KBS2", "KTCh": 7, "LG Name": "KBS2", "LGCh": 7, "SK Name": "KBS2", "SKCh": 7, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/XgibZbD.png", "Source": "SKY", "ServiceId": "795", "Enabled": 0 }, -{ "Id": 112, "Name": "키즈톡톡", "KT Name": "", "KTCh": null, "LG Name": "키즈톡톡", "LGCh": 158, "SK Name": "키즈톡톡 플러스", "SKCh": 189, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0loInJO.png", "Source": "LG", "ServiceId": "805", "Enabled": 0 }, -{ "Id": 115, "Name": "KIDS-TV", "KT Name": "KIDS-TV", "KTCh": 149, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/AVCSEdn.png", "Source": "NAVER", "ServiceId": "814999", "Enabled": 0 }, -{ "Id": 116, "Name": "K-NET TV", "KT Name": "K-NET TV", "KTCh": 230, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GelnqjB.png", "Source": "KT", "ServiceId": "230", "Enabled": 0 }, -{ "Id": 117, "Name": "KTV", "KT Name": "KTV", "KTCh": 64, "LG Name": "KTV", "LGCh": 171, "SK Name": "KTV", "SKCh": 290, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yUk2RhO.png", "Source": "ISCS", "ServiceId": "1327", "Enabled": 0 }, -{ "Id": 118, "Name": "K-바둑", "KT Name": "K-바둑", "KTCh": 121, "LG Name": "K-바둑", "LGCh": 107, "SK Name": "K-바둑", "SKCh": 241, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EAk5ySy.png", "Source": "HCN", "ServiceId": "162", "Enabled": 0 }, -{ "Id": 119, "Name": "K쇼핑", "KT Name": "K쇼핑", "KTCh": 20, "LG Name": "", "LGCh": null, "SK Name": "K쇼핑", "SKCh": 25, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6ORm0Rz.png", "Source": "SK", "ServiceId": "333", "Enabled": 0 }, -{ "Id": 121, "Name": "Mnet", "KT Name": "Mnet", "KTCh": 27, "LG Name": "엠넷", "LGCh": 22, "SK Name": "M.net", "SKCh": 27, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/putHm2b.png", "Source": "SKY", "ServiceId": "273", "Enabled": 0 }, -{ "Id": 122, "Name": "MBC", "KT Name": "MBC", "KTCh": 11, "LG Name": "MBC", "LGCh": 11, "SK Name": "MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "SKY", "ServiceId": "797", "Enabled": 0 }, -{ "Id": 123, "Name": "MBC Every1", "KT Name": "MBC Every1", "KTCh": 3, "LG Name": "MBC에브리원", "LGCh": 29, "SK Name": "MBC Every1", "SKCh": 28, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/oOnpFes.png", "Source": "POOQ", "ServiceId": "M03", "Enabled": 0 }, -{ "Id": 124, "Name": "MBC MUSIC", "KT Name": "MBC MUSIC", "KTCh": 97, "LG Name": "MBC뮤직", "LGCh": 99, "SK Name": "MBC Music", "SKCh": 231, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6g56RDx.png", "Source": "POOQ", "ServiceId": "M06", "Enabled": 0 }, -{ "Id": 125, "Name": "MBC NET", "KT Name": "MBC NET", "KTCh": 164, "LG Name": "MBCNET", "LGCh": 140, "SK Name": "MBC NET", "SKCh": 274, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lxDOgY8.png", "Source": "SKY", "ServiceId": "537", "Enabled": 0 }, -{ "Id": 126, "Name": "MBC SPORTS+", "KT Name": "MBC SPORT+", "KTCh": 60, "LG Name": "MBC스포츠+", "LGCh": 60, "SK Name": "MBC Sports+", "SKCh": 123, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Su21uj3.png", "Source": "SKY", "ServiceId": "911", "Enabled": 0 }, -{ "Id": 127, "Name": "MBC SPORTS+2", "KT Name": "MBC SPORTS+2", "KTCh": 61, "LG Name": "MBC스포츠+2", "LGCh": 61, "SK Name": "MBC SPORTS+2", "SKCh": 124, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/frAuUS3.png", "Source": "SKY", "ServiceId": "96", "Enabled": 0 }, -{ "Id": 128, "Name": "MBC Dramanet", "KT Name": "MBC Dramanet", "KTCh": 75, "LG Name": "MBC드라마넷", "LGCh": 35, "SK Name": "MBC 드라마", "SKCh": 32, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VBMFcZ3.png", "Source": "POOQ", "ServiceId": "M02", "Enabled": 0 }, -{ "Id": 129, "Name": "MBN", "KT Name": "MBN", "KTCh": 16, "LG Name": "MBN", "LGCh": 16, "SK Name": "MBN", "SKCh": 16, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/p0mvIJN.png", "Source": "POOQ", "ServiceId": "C2401", "Enabled": 0 }, -{ "Id": 130, "Name": "MBN Plus", "KT Name": "MBN Plus", "KTCh": 99, "LG Name": "MBN+", "LGCh": 116, "SK Name": "MBN 플러스", "SKCh": 98, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yMZiUUp.png", "Source": "NAVER", "ServiceId": "5286722", "Enabled": 0 }, -{ "Id": 133, "Name": "마운틴TV", "KT Name": "마운틴TV", "KTCh": 117, "LG Name": "마운틴TV", "LGCh": 69, "SK Name": "Mountain TV", "SKCh": 247, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4nLYnVC.png", "Source": "ISCS", "ServiceId": "713", "Enabled": 0 }, -{ "Id": 134, "Name": "mplex", "KT Name": "mplex", "KTCh": 103, "LG Name": "엠플렉스", "LGCh": 46, "SK Name": "Mplex", "SKCh": 57, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/dOOBYJm.png", "Source": "ISCS", "ServiceId": "1487", "Enabled": 0 }, -{ "Id": 135, "Name": "머니투데이방송", "KT Name": "머니투데이방송", "KTCh": 181, "LG Name": "MTN", "LGCh": 122, "SK Name": "MTN", "SKCh": 152, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/joWd14j.png", "Source": "EPG", "ServiceId": "132", "Enabled": 0 }, -{ "Id": 136, "Name": "NatGeo People", "KT Name": "NatGeo People", "KTCh": 171, "LG Name": "", "LGCh": null, "SK Name": "Natgeo People", "SKCh": 263, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2ghKPUg.png", "Source": "NAVER", "ServiceId": "814946", "Enabled": 0 }, -{ "Id": 137, "Name": "NatGeo Wild", "KT Name": "NatGeo Wild", "KTCh": 170, "LG Name": "냇지오 와일드", "LGCh": 134, "SK Name": "Natgeo Wild HD", "SKCh": 266, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/M4nh0Rk.png", "Source": "SKY", "ServiceId": "63", "Enabled": 0 }, -{ "Id": 138, "Name": "NGC", "KT Name": "NGC", "KTCh": 168, "LG Name": "내셔널지오그래픽", "LGCh": 131, "SK Name": "NGC", "SKCh": 260, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mqTSPMN.png", "Source": "SKY", "ServiceId": "972", "Enabled": 0 }, -{ "Id": 139, "Name": "NHK WP", "KT Name": "NHK WP", "KTCh": 199, "LG Name": "NHK World Premium", "LGCh": 143, "SK Name": "NHK World Premium", "SKCh": 278, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZSHeMzp.png", "Source": "NAVER", "ServiceId": "815432", "Enabled": 0 }, -{ "Id": 141, "Name": "니켈로디언", "KT Name": "니켈로디언", "KTCh": 136, "LG Name": "니켈로디언", "LGCh": 154, "SK Name": "Nickelodeon", "SKCh": 176, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6pWpFCX.png", "Source": "SKY", "ServiceId": "685", "Enabled": 0 }, -{ "Id": 142, "Name": "놀티비", "KT Name": "놀티비", "KTCh": 128, "LG Name": "놀TV", "LGCh": 92, "SK Name": "Noll TV", "SKCh": 248, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/IK9h4rw.png", "Source": "HCN", "ServiceId": "923", "Enabled": 0 }, -{ "Id": 143, "Name": "NS Shop+", "KT Name": "NS Shop+", "KTCh": 42, "LG Name": "", "LGCh": null, "SK Name": "NS Shop+", "SKCh": 41, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ipGXgEK.png", "Source": "SK", "ServiceId": "341", "Enabled": 0 }, -{ "Id": 144, "Name": "NS홈쇼핑", "KT Name": "NS홈쇼핑", "KTCh": 12, "LG Name": "NS홈쇼핑", "LGCh": 13, "SK Name": "NS홈쇼핑", "SKCh": 14, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/UD1yoj1.png", "Source": "ISCS", "ServiceId": "12", "Enabled": 0 }, -{ "Id": 147, "Name": "O tvN", "KT Name": "O tvn", "KTCh": 45, "LG Name": "O tvN", "LGCh": 71, "SK Name": "O tvN", "SKCh": 34, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0SMl3O5.png", "Source": "SKY", "ServiceId": "555", "Enabled": 0 }, -{ "Id": 148, "Name": "올리브", "KT Name": "올리브", "KTCh": 34, "LG Name": "올리브", "LGCh": 82, "SK Name": "올리브", "SKCh": 84, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/5kF0Ypt.png", "Source": "EPG", "ServiceId": "15", "Enabled": 0 }, -{ "Id": 149, "Name": "OBS", "KT Name": "OBS", "KTCh": 26, "LG Name": "OBS", "LGCh": 26, "SK Name": "OBS", "SKCh": 20, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/DJHN8M6.png", "Source": "SKY", "ServiceId": "935", "Enabled": 0 }, -{ "Id": 150, "Name": "HD OBS W", "KT Name": "HD OBS W", "KTCh": 81, "LG Name": "OBS W", "LGCh": 137, "SK Name": "OBSW", "SKCh": 219, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/uZkbU7b.png", "Source": "LG", "ServiceId": "648", "Enabled": 0 }, -{ "Id": 151, "Name": "OCN", "KT Name": "OCN", "KTCh": 21, "LG Name": "OCN", "LGCh": 38, "SK Name": "OCN", "SKCh": 54, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/IXh6dwo.png", "Source": "SKY", "ServiceId": "847", "Enabled": 0 }, -{ "Id": 153, "Name": "OGN", "KT Name": "OGN", "KTCh": 123, "LG Name": "OGN", "LGCh": 96, "SK Name": "OGN", "SKCh": 136, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tLtSTaq.png", "Source": "SKY", "ServiceId": "55", "Enabled": 0 }, -{ "Id": 154, "Name": "온스타일", "KT Name": "온스타일", "KTCh": 77, "LG Name": "온스타일", "LGCh": 73, "SK Name": "On style", "SKCh": 210, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/9brMDfR.png", "Source": "HCN", "ServiceId": "414", "Enabled": 0 }, -{ "Id": 156, "Name": "ONT", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "ONT", "SKCh": 245, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2lu0ZBu.png", "Source": "SK", "ServiceId": "256", "Enabled": 0 }, -{ "Id": 157, "Name": "OUN", "KT Name": "OUN", "KTCh": 160, "LG Name": "OUN", "LGCh": 170, "SK Name": "OUN", "SKCh": 292, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VimbcIH.png", "Source": "EPG", "ServiceId": "47", "Enabled": 0 }, -{ "Id": 158, "Name": "Outdoor", "KT Name": "", "KTCh": null, "LG Name": "아웃도어 채널", "LGCh": 135, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4M65Rrv.png", "Source": "LG", "ServiceId": "710", "Enabled": 0 }, -{ "Id": 159, "Name": "Playboy TV", "KT Name": "Playboy TV", "KTCh": 206, "LG Name": "플레이보이", "LGCh": 190, "SK Name": "플레이보이TV", "SKCh": 320, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/NglRqcV.png", "Source": "EPG", "ServiceId": "146", "Enabled": 0 }, -{ "Id": 160, "Name": "리얼TV", "KT Name": "리얼TV", "KTCh": 127, "LG Name": "", "LGCh": null, "SK Name": "리얼TV", "SKCh": 267, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/PYnXtlb.png", "Source": "SK", "ServiceId": "440", "Enabled": 0 }, -{ "Id": 164, "Name": "SBS", "KT Name": "SBS", "KTCh": 5, "LG Name": "SBS", "LGCh": 5, "SK Name": "SBS", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/K2ztoDT.png", "Source": "SKY", "ServiceId": "794", "Enabled": 0 }, -{ "Id": 165, "Name": "SBS CNBC", "KT Name": "SBS CNBC", "KTCh": 25, "LG Name": "SBS CNBC", "LGCh": 27, "SK Name": "SBS CNBC", "SKCh": 26, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/SfDs4qN.png", "Source": "POOQ", "ServiceId": "S06", "Enabled": 0 }, -{ "Id": 166, "Name": "SBS funE", "KT Name": "SBS funE", "KTCh": 43, "LG Name": "SBS퍼니", "LGCh": 75, "SK Name": "SBS fun E", "SKCh": 81, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/D1EYJmr.png", "Source": "POOQ", "ServiceId": "S04", "Enabled": 0 }, -{ "Id": 167, "Name": "SBSGOLF", "KT Name": "SBSGOLF", "KTCh": 57, "LG Name": "SBS골프", "LGCh": 53, "SK Name": "SBS GOLF", "SKCh": 131, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/HdS0GNV.png", "Source": "SKY", "ServiceId": "769", "Enabled": 0 }, -{ "Id": 168, "Name": "SBS MTV", "KT Name": "SBS MTV", "KTCh": 96, "LG Name": "SBS MTV", "LGCh": 100, "SK Name": "SBS MTV", "SKCh": 230, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/OeSJ9Ik.png", "Source": "POOQ", "ServiceId": "S09", "Enabled": 0 }, -{ "Id": 169, "Name": "SBS Sports", "KT Name": "SBS Sports", "KTCh": 58, "LG Name": "SBS스포츠", "LGCh": 58, "SK Name": "SBS Sports", "SKCh": 122, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/j1vHAu6.png", "Source": "POOQ", "ServiceId": "S02", "Enabled": 0 }, -{ "Id": 170, "Name": "SBS Plus", "KT Name": "SBS Plus", "KTCh": 37, "LG Name": "SBS플러스", "LGCh": 33, "SK Name": "SBS 플러스", "SKCh": 2, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/asfyrTm.png", "Source": "POOQ", "ServiceId": "S03", "Enabled": 0 }, -{ "Id": 171, "Name": "스크린", "KT Name": "스크린", "KTCh": 106, "LG Name": "스크린", "LGCh": 41, "SK Name": "Screen", "SKCh": 56, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lTK9VD4.png", "Source": "SKB", "ServiceId": "192", "Enabled": 0 }, -{ "Id": 172, "Name": "SkyA&C", "KT Name": "SkyA&C", "KTCh": 80, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cljag6U.png", "Source": "SKY", "ServiceId": "514", "Enabled": 0 }, -{ "Id": 173, "Name": "SkyDrama", "KT Name": "SkyDrama", "KTCh": 31, "LG Name": "스카이드라마", "LGCh": 79, "SK Name": "sky Drama", "SKCh": 40, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e9BTUAb.png", "Source": "SKY", "ServiceId": "783", "Enabled": 0 }, -{ "Id": 174, "Name": "SkyENT", "KT Name": "SkyENT", "KTCh": 50, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ALqDHH6.png", "Source": "SKY", "ServiceId": "970", "Enabled": 0 }, -{ "Id": 175, "Name": "Sky힐링", "KT Name": "Sky힐링", "KTCh": 167, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/64SK0o9.png", "Source": "SKY", "ServiceId": "40", "Enabled": 0 }, -{ "Id": 176, "Name": "SkyICT", "KT Name": "SkyICT", "KTCh": 165, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/luZjU1e.png", "Source": "SKY", "ServiceId": "568", "Enabled": 0 }, -{ "Id": 177, "Name": "SkyPetPark", "KT Name": "SkyPetPark", "KTCh": 49, "LG Name": "", "LGCh": null, "SK Name": "Sky Petpark", "SKCh": 94, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RDUfvRG.png", "Source": "SKY", "ServiceId": "513", "Enabled": 0 }, -{ "Id": 178, "Name": "SkySports", "KT Name": "SkySports", "KTCh": 54, "LG Name": "스카이스포츠", "LGCh": 57, "SK Name": "sky Sports", "SKCh": 125, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/QHV9bdA.png", "Source": "SKY", "ServiceId": "447", "Enabled": 0 }, -{ "Id": 179, "Name": "SkyTravel", "KT Name": "SkyTravel", "KTCh": 100, "LG Name": "스카이트래블", "LGCh": 66, "SK Name": "sky Travel", "SKCh": 246, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/fAJgmna.png", "Source": "SKY", "ServiceId": "934", "Enabled": 0 }, -{ "Id": 181, "Name": "Sky UHD", "KT Name": "Sky UHD", "KTCh": 174, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/BNxE2zT.png", "Source": "SKY", "ServiceId": "500", "Enabled": 0 }, -{ "Id": 182, "Name": "Smile TV", "KT Name": "Smile TV", "KTCh": 84, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/alk8plD.png", "Source": "KT", "ServiceId": "84", "Enabled": 0 }, -{ "Id": 183, "Name": "SPOTV", "KT Name": "SPOTV", "KTCh": 51, "LG Name": "스포티비", "LGCh": 56, "SK Name": "SPOTV", "SKCh": 120, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cIpIf6b.png", "Source": "SKY", "ServiceId": "109", "Enabled": 0 }, -{ "Id": 184, "Name": "SPOTV Games", "KT Name": "SPOTV Games", "KTCh": 124, "LG Name": "스포티비 게임즈", "LGCh": 109, "SK Name": "SPOTV GAMES", "SKCh": 137, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/5IMfa6N.png", "Source": "NAVER", "ServiceId": "1876333", "Enabled": 0 }, -{ "Id": 185, "Name": "SPOTV+", "KT Name": "SPOTV+", "KTCh": 125, "LG Name": "스포티비+", "LGCh": 51, "SK Name": "SPOTV+", "SKCh": 127, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/81Fshnn.png", "Source": "SKY", "ServiceId": "713", "Enabled": 0 }, -{ "Id": 186, "Name": "SPOTV2", "KT Name": "SPOTV2", "KTCh": 52, "LG Name": "스포티비2", "LGCh": 52, "SK Name": "SPOTV2", "SKCh": 128, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GNicmGY.png", "Source": "NAVER", "ServiceId": "5286701", "Enabled": 0 }, -{ "Id": 192, "Name": "Star Sports", "KT Name": "Star Sports", "KTCh": 63, "LG Name": "", "LGCh": null, "SK Name": "Star Sports", "SKCh": 135, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/8ndGr4n.png", "Source": "EPG", "ServiceId": "122", "Enabled": 0 }, -{ "Id": 193, "Name": "STB상생방송", "KT Name": "STB상생방송", "KTCh": 261, "LG Name": "상생방송", "LGCh": 187, "SK Name": "STB 상생방송", "SKCh": 308, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Z3Xknso.png", "Source": "HCN", "ServiceId": "779", "Enabled": 0 }, -{ "Id": 194, "Name": "STN", "KT Name": "STN", "KTCh": 267, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZJi3NQy.png", "Source": "KT", "ServiceId": "267", "Enabled": 0 }, -{ "Id": 196, "Name": "슈퍼액션", "KT Name": "슈퍼액션", "KTCh": 32, "LG Name": "수퍼액션", "LGCh": 40, "SK Name": "SUPER ACTION", "SKCh": 55, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/D9PzDBr.png", "Source": "SKY", "ServiceId": "129", "Enabled": 0 }, -{ "Id": 197, "Name": "tag TV", "KT Name": "tag TV", "KTCh": 94, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Mmc89FS.png", "Source": "KT", "ServiceId": "94", "Enabled": 0 }, -{ "Id": 198, "Name": "tbsTV", "KT Name": "tbsTV", "KTCh": 214, "LG Name": "tbsTV", "LGCh": 176, "SK Name": "tbsTV", "SKCh": 272, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/o3MWHfb.png", "Source": "SK", "ServiceId": "420", "Enabled": 0 }, -{ "Id": 199, "Name": "텔레노벨라", "KT Name": "텔레노벨라", "KTCh": 114, "LG Name": "텔레노벨라", "LGCh": 81, "SK Name": "텔레노벨라", "SKCh": 109, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Ea3Vu8Z.png", "Source": "LG", "ServiceId": "700", "Enabled": 0 }, -{ "Id": 200, "Name": "The Golf Channel", "KT Name": "The Golf Channel", "KTCh": 55, "LG Name": "더 골프채널 코리아", "LGCh": 55, "SK Name": "Golf Channel Korea", "SKCh": 133, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/3VlCrJ7.png", "Source": "SK", "ServiceId": "135", "Enabled": 0 }, -{ "Id": 201, "Name": "THE MOVIE", "KT Name": "THE MOVIE", "KTCh": 104, "LG Name": "더 무비", "LGCh": 47, "SK Name": "The Movie", "SKCh": 59, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6vzmEfd.png", "Source": "HCN", "ServiceId": "165", "Enabled": 0 }, -{ "Id": 202, "Name": "Tooniverse", "KT Name": "Tooniverse", "KTCh": 132, "LG Name": "투니버스", "LGCh": 152, "SK Name": "Tooniverse", "SKCh": 170, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VUqSOjx.png", "Source": "SKY", "ServiceId": "526", "Enabled": 0 }, -{ "Id": 203, "Name": "TRENDY", "KT Name": "TRENDY", "KTCh": 251, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/NP2KTGN.png", "Source": "KT", "ServiceId": "251", "Enabled": 0 }, -{ "Id": 205, "Name": "TV5MONDE", "KT Name": "TV5MONDE", "KTCh": 198, "LG Name": "", "LGCh": null, "SK Name": "TV5Monde", "SKCh": 279, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/NogUKpP.png", "Source": "HCN", "ServiceId": "612", "Enabled": 0 }, -{ "Id": 207, "Name": "tvN", "KT Name": "tvN", "KTCh": 17, "LG Name": "tvN", "LGCh": 17, "SK Name": "tvN", "SKCh": 17, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/OJ9A8fZ.png", "Source": "SKY", "ServiceId": "60", "Enabled": 0 }, -{ "Id": 208, "Name": "TV조선", "KT Name": "TV조선", "KTCh": 19, "LG Name": "TV조선", "LGCh": 19, "SK Name": "TV조선", "SKCh": 19, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ShJ5joR.png", "Source": "POOQ", "ServiceId": "C2601", "Enabled": 0 }, -{ "Id": 212, "Name": "viki", "KT Name": "viki", "KTCh": 204, "LG Name": "비키", "LGCh": 192, "SK Name": "Viki", "SKCh": 322, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZVD51K9.png", "Source": "EPG", "ServiceId": "86", "Enabled": 0 }, -{ "Id": 213, "Name": "W 쇼핑", "KT Name": "W 쇼핑", "KTCh": 40, "LG Name": "", "LGCh": null, "SK Name": "W쇼핑", "SKCh": 37, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Cged9ve.png", "Source": "SK", "ServiceId": "342", "Enabled": 0 }, -{ "Id": 215, "Name": "WBS원음방송", "KT Name": "원음방송", "KTCh": 284, "LG Name": "원음방송", "LGCh": 188, "SK Name": "원음방송", "SKCh": 309, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mKWQE7z.png", "Source": "EPG", "ServiceId": "644", "Enabled": 0 }, -{ "Id": 216, "Name": "XTM", "KT Name": "XTM", "KTCh": 76, "LG Name": "XTM", "LGCh": 72, "SK Name": "XTM", "SKCh": 85, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/hGwA39y.png", "Source": "EPG", "ServiceId": "388", "Enabled": 0 }, -{ "Id": 218, "Name": "YTN", "KT Name": "YTN", "KTCh": 24, "LG Name": "YTN", "LGCh": 24, "SK Name": "YTN", "SKCh": 24, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ByeeX5e.png", "Source": "POOQ", "ServiceId": "C2101", "Enabled": 0 }, -{ "Id": 219, "Name": "YTN 사이언스", "KT Name": "YTN 사이언스", "KTCh": 175, "LG Name": "사이언스TV", "LGCh": 25, "SK Name": "YTN 사이언스", "SKCh": 262, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/gwDHYGf.png", "Source": "SKB", "ServiceId": "422", "Enabled": 0 }, -{ "Id": 220, "Name": "YTN life", "KT Name": "YTN life", "KTCh": 190, "LG Name": "YTN 라이프", "LGCh": 125, "SK Name": "YTN 라이프", "SKCh": 157, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/f66yRT9.png", "Source": "SK", "ServiceId": "632", "Enabled": 0 }, -{ "Id": 221, "Name": "가요TV", "KT Name": "가요TV", "KTCh": 93, "LG Name": "가요TV", "LGCh": 102, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6ncOOSg.png", "Source": "ISCS", "ServiceId": "356", "Enabled": 0 }, -{ "Id": 222, "Name": "국방TV", "KT Name": "국방TV", "KTCh": 260, "LG Name": "국방TV", "LGCh": 174, "SK Name": "국방TV", "SKCh": 282, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yyXkYzJ.png", "Source": "ISCS", "ServiceId": "114", "Enabled": 0 }, -{ "Id": 223, "Name": "국회방송", "KT Name": "국회방송", "KTCh": 65, "LG Name": "국회방송", "LGCh": 172, "SK Name": "국회방송", "SKCh": 291, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/l1OEn7O.png", "Source": "LG", "ServiceId": "717", "Enabled": 0 }, -{ "Id": 225, "Name": "내외경제TV", "KT Name": "내외경제TV", "KTCh": 285, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cQHPmCw.png", "Source": "KT", "ServiceId": "285", "Enabled": 0 }, -{ "Id": 226, "Name": "다문화티브이", "KT Name": "다문화티브이", "KTCh": 283, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/nZK3lCC.png", "Source": "KT", "ServiceId": "283", "Enabled": 0 }, -{ "Id": 228, "Name": "대교 어린이TV", "KT Name": "대교 어린이TV", "KTCh": 141, "LG Name": "어린이TV", "LGCh": 156, "SK Name": "어린이TV", "SKCh": 191, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/CETWIE6.png", "Source": "SKY", "ServiceId": "17", "Enabled": 0 }, -{ "Id": 229, "Name": "동아TV", "KT Name": "동아TV", "KTCh": 82, "LG Name": "동아TV", "LGCh": 84, "SK Name": "동아TV", "SKCh": 218, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/AlmV8jS.png", "Source": "HCN", "ServiceId": "247", "Enabled": 0 }, -{ "Id": 230, "Name": "드라마H", "KT Name": "드라마H", "KTCh": 70, "LG Name": "", "LGCh": null, "SK Name": "드라마H", "SKCh": 46, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xT7pVuI.png", "Source": "SKY", "ServiceId": "287", "Enabled": 0 }, -{ "Id": 231, "Name": "드라마큐브", "KT Name": "드라마큐브", "KTCh": 46, "LG Name": "", "LGCh": null, "SK Name": "드라마큐브", "SKCh": 36, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4ESaIH6.png", "Source": "HCN", "ServiceId": "499", "Enabled": 0 }, -{ "Id": 232, "Name": "드라맥스", "KT Name": "드라맥스", "KTCh": 47, "LG Name": "", "LGCh": null, "SK Name": "드라맥스", "SKCh": 38, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/jcguamX.png", "Source": "NAVER", "ServiceId": "814782", "Enabled": 0 }, -{ "Id": 233, "Name": "디원", "KT Name": "디원", "KTCh": 115, "LG Name": "디원", "LGCh": 90, "SK Name": "디원", "SKCh": 45, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/8nE7mmk.png", "Source": "LG", "ServiceId": "666", "Enabled": 0 }, -{ "Id": 234, "Name": "디즈니주니어", "KT Name": "디즈니주니어", "KTCh": 151, "LG Name": "디즈니 주니어", "LGCh": 151, "SK Name": "디즈니주니어", "SKCh": 172, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EGiEKhj.png", "Source": "SKY", "ServiceId": "504", "Enabled": 0 }, -{ "Id": 235, "Name": "Disney Channel", "KT Name": "Disney Channel", "KTCh": 130, "LG Name": "디즈니 채널", "LGCh": 150, "SK Name": "디즈니채널", "SKCh": 171, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qZdqeZo.png", "Source": "SKY", "ServiceId": "503", "Enabled": 0 }, -{ "Id": 237, "Name": "롯데원티비", "KT Name": "롯데원티비", "KTCh": 44, "LG Name": "롯데 OneTV", "LGCh": 21, "SK Name": "롯데OneTV", "SKCh": 39, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/vri0qlq.png", "Source": "EPG", "ServiceId": "548", "Enabled": 0 }, -{ "Id": 238, "Name": "롯데홈쇼핑", "KT Name": "롯데홈쇼핑", "KTCh": 6, "LG Name": "롯데홈쇼핑", "LGCh": 12, "SK Name": "롯데홈쇼핑", "SKCh": 10, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2bCfj0y.png", "Source": "ISCS", "ServiceId": "3", "Enabled": 0 }, -{ "Id": 239, "Name": "리빙TV", "KT Name": "리빙TV", "KTCh": 276, "LG Name": "", "LGCh": null, "SK Name": "리빙TV", "SKCh": 251, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0jGCpfx.png", "Source": "EPG", "ServiceId": "28", "Enabled": 0 }, -{ "Id": 240, "Name": "마이펫TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "마이펫TV", "SKCh": 92, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Oy7qjnW.png", "Source": "SK", "ServiceId": "258", "Enabled": 0 }, -{ "Id": 241, "Name": "매일경제TV", "KT Name": "매일경제TV", "KTCh": 182, "LG Name": "매일경제TV", "LGCh": 112, "SK Name": "매일경제TV", "SKCh": 153, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/a4PwnPm.png", "Source": "EPG", "ServiceId": "594", "Enabled": 0 }, -{ "Id": 244, "Name": "미드나잇", "KT Name": "미드나잇", "KTCh": 205, "LG Name": "미드나잇", "LGCh": 191, "SK Name": "미드나잇", "SKCh": 321, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/zLJHU3J.png", "Source": "EPG", "ServiceId": "169", "Enabled": 0 }, -{ "Id": 245, "Name": "바둑TV", "KT Name": "바둑TV", "KTCh": 120, "LG Name": "바둑TV", "LGCh": 97, "SK Name": "바둑TV", "SKCh": 240, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/jbRu8T2.png", "Source": "EPG", "ServiceId": "46", "Enabled": 0 }, -{ "Id": 246, "Name": "법률방송", "KT Name": "법률방송", "KTCh": 213, "LG Name": "", "LGCh": null, "SK Name": "법률방송", "SKCh": 280, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WJaHOAP.png", "Source": "ISCS", "ServiceId": "149", "Enabled": 0 }, -{ "Id": 247, "Name": "복지TV", "KT Name": "복지TV", "KTCh": 219, "LG Name": "복지TV", "LGCh": 173, "SK Name": "복지TV", "SKCh": 293, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cTV0rnb.png", "Source": "ISCS", "ServiceId": "344", "Enabled": 0 }, -{ "Id": 249, "Name": "부동산토마토", "KT Name": "부동산토마토", "KTCh": 188, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ePLp200.png", "Source": "KT", "ServiceId": "188", "Enabled": 0 }, -{ "Id": 250, "Name": "부메랑", "KT Name": "부메랑", "KTCh": 139, "LG Name": "부메랑", "LGCh": 166, "SK Name": "부메랑", "SKCh": 175, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GSPRJqf.png", "Source": "NAVER", "ServiceId": "815072", "Enabled": 0 }, -{ "Id": 251, "Name": "브레인TV", "KT Name": "브레인TV", "KTCh": 122, "LG Name": "브레인TV", "LGCh": 98, "SK Name": "브레인TV", "SKCh": 242, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1422kP1.png", "Source": "EPG", "ServiceId": "488", "Enabled": 0 }, -{ "Id": 253, "Name": "사회안전방송", "KT Name": "사회안전방송", "KTCh": 278, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EEfrqCW.png", "Source": "NAVER", "ServiceId": "815484", "Enabled": 0 }, -{ "Id": 254, "Name": "생활체육TV", "KT Name": "생활체육TV", "KTCh": 282, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/gefY5Bw.png", "Source": "NAVER", "ServiceId": "814883", "Enabled": 0 }, -{ "Id": 255, "Name": "서울경제TV", "KT Name": "서울경제TV", "KTCh": 184, "LG Name": "서울경제TV", "LGCh": 124, "SK Name": "서울경제TV", "SKCh": 156, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/LBzj77k.png", "Source": "ISCS", "ServiceId": "24", "Enabled": 0 }, -{ "Id": 256, "Name": "소비자TV", "KT Name": "소비자TV", "KTCh": 265, "LG Name": "소비자TV", "LGCh": 177, "SK Name": "소비자TV", "SKCh": 275, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/971hUD2.png", "Source": "SKB", "ServiceId": "442", "Enabled": 0 }, -{ "Id": 257, "Name": "소상공인방송", "KT Name": "소상공인방송", "KTCh": 255, "LG Name": "소상공인방송", "LGCh": 175, "SK Name": "소상공인방송", "SKCh": 271, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/3k1D4LA.png", "Source": "ISCS", "ServiceId": "1395", "Enabled": 0 }, -{ "Id": 258, "Name": "쇼핑엔T", "KT Name": "쇼핑엔티", "KTCh": 33, "LG Name": "쇼핑엔티", "LGCh": 76, "SK Name": "쇼핑엔티", "SKCh": 35, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Q7FHxYB.png", "Source": "SK", "ServiceId": "336", "Enabled": 0 }, -{ "Id": 260, "Name": "신세계쇼핑", "KT Name": "신세계쇼핑", "KTCh": 2, "LG Name": "신세계쇼핑", "LGCh": 74, "SK Name": "신세계쇼핑", "SKCh": 22, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZhYaqpt.png", "Source": "SK", "ServiceId": "339", "Enabled": 0 }, -{ "Id": 262, "Name": "실버아이TV", "KT Name": "실버아이TV", "KTCh": 266, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xm1O8eQ.png", "Source": "ISCS", "ServiceId": "357", "Enabled": 0 }, -{ "Id": 263, "Name": "아리랑 TV", "KT Name": "아리랑 TV", "KTCh": 200, "LG Name": "아리랑TV", "LGCh": 141, "SK Name": "아리랑TV", "SKCh": 270, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/nFWWIFP.png", "Source": "ISCS", "ServiceId": "17", "Enabled": 0 }, -{ "Id": 264, "Name": "아시아경제TV", "KT Name": "아시아경제TV", "KTCh": 186, "LG Name": "아시아경제TV", "LGCh": 113, "SK Name": "아시아경제TV", "SKCh": 154, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2D6WoS8.png", "Source": "ISCS", "ServiceId": "1348", "Enabled": 0 }, -{ "Id": 265, "Name": "아임쇼핑", "KT Name": "아임쇼핑", "KTCh": 22, "LG Name": "아임쇼핑", "LGCh": 20, "SK Name": "아임쇼핑", "SKCh": 3, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/E3pJ5Jz.png", "Source": "SK", "ServiceId": "332", "Enabled": 0 }, -{ "Id": 266, "Name": "애니플러스", "KT Name": "애니플러스", "KTCh": 138, "LG Name": "애니플러스", "LGCh": 149, "SK Name": "애니플러스", "SKCh": 178, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/7RKoOZq.png", "Source": "SKY", "ServiceId": "348", "Enabled": 0 }, -{ "Id": 268, "Name": "연합뉴스TV", "KT Name": "연합뉴스TV", "KTCh": 23, "LG Name": "연합뉴스TV", "LGCh": 23, "SK Name": "연합뉴스TV", "SKCh": 23, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/KlTCP8V.png", "Source": "POOQ", "ServiceId": "Y01", "Enabled": 0 }, -{ "Id": 271, "Name": "육아방송", "KT Name": "육아방송", "KTCh": 217, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/UEIB4ZG.png", "Source": "EPG", "ServiceId": "252", "Enabled": 0 }, -{ "Id": 272, "Name": "이데일리TV", "KT Name": "이데일리TV", "KTCh": 183, "LG Name": "이데일리TV", "LGCh": 123, "SK Name": "이데일리TV", "SKCh": 155, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/W90Hw2p.png", "Source": "LG", "ServiceId": "631", "Enabled": 0 }, -{ "Id": 273, "Name": "이벤트TV", "KT Name": "이벤트TV", "KTCh": 263, "LG Name": "이벤트TV", "LGCh": 103, "SK Name": "이벤트TV", "SKCh": 238, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1Eeyijd.png", "Source": "SKB", "ServiceId": "262", "Enabled": 0 }, -{ "Id": 275, "Name": "인디필름", "KT Name": "인디필름", "KTCh": 277, "LG Name": "", "LGCh": null, "SK Name": "인디필름", "SKCh": 61, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/iA5UIJ9.png", "Source": "SKB", "ServiceId": "441", "Enabled": 0 }, -{ "Id": 277, "Name": "정철영어 TV", "KT Name": "정철영어 TV", "KTCh": 155, "LG Name": "정철영어TV", "LGCh": 161, "SK Name": "정철영어TV", "SKCh": 201, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lumUZz3.png", "Source": "LG", "ServiceId": "772", "Enabled": 0 }, -{ "Id": 278, "Name": "중화TV", "KT Name": "중화TV", "KTCh": 110, "LG Name": "중화TV", "LGCh": 87, "SK Name": "중화TV", "SKCh": 104, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Nal18s5.png", "Source": "SKB", "ServiceId": "186", "Enabled": 0 }, -{ "Id": 279, "Name": "JJC지방자치TV", "KT Name": "JJC지방자치TV", "KTCh": 279, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/AuXr9jA.png", "Source": "NAVER", "ServiceId": "3244879", "Enabled": 0 }, -{ "Id": 280, "Name": "채널 Ching", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "채널 Ching", "SKCh": 105, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tRqGKcS.png", "Source": "HCN", "ServiceId": "780", "Enabled": 0 }, -{ "Id": 281, "Name": "채널A", "KT Name": "채널A", "KTCh": 18, "LG Name": "채널A", "LGCh": 18, "SK Name": "채널A", "SKCh": 18, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xti35f5.png", "Source": "POOQ", "ServiceId": "C2501", "Enabled": 0 }, -{ "Id": 282, "Name": "채널A 플러스", "KT Name": "채널A 플러스", "KTCh": 98, "LG Name": "채널A+", "LGCh": 115, "SK Name": "채널A 플러스", "SKCh": 97, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/rRisTh8.png", "Source": "SKB", "ServiceId": "891", "Enabled": 0 }, -{ "Id": 283, "Name": "채널CGV", "KT Name": "채널CGV", "KTCh": 29, "LG Name": "채널CGV", "LGCh": 39, "SK Name": "Ch CGV", "SKCh": 53, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/fwjRwkx.png", "Source": "SKY", "ServiceId": "163", "Enabled": 0 }, -{ "Id": 284, "Name": "채널i", "KT Name": "채널i", "KTCh": 250, "LG Name": "", "LGCh": null, "SK Name": "채널i", "SKCh": 281, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/X7lXvtw.png", "Source": "ISCS", "ServiceId": "1397", "Enabled": 0 }, -{ "Id": 285, "Name": "채널뷰", "KT Name": "채널뷰", "KTCh": 176, "LG Name": "", "LGCh": null, "SK Name": "채널View", "SKCh": 212, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lvtWgFL.png", "Source": "SKY", "ServiceId": "918", "Enabled": 0 }, -{ "Id": 286, "Name": "채널차이나", "KT Name": "채널차이나", "KTCh": 102, "LG Name": "채널차이나", "LGCh": 80, "SK Name": "채널차이나", "SKCh": 108, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/jEyoLS1.png", "Source": "ISCS", "ServiceId": "1066", "Enabled": 0 }, -{ "Id": 287, "Name": "채널해피독", "KT Name": "채널해피독", "KTCh": 203, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ly649tS.png", "Source": "NAVER", "ServiceId": "2296260", "Enabled": 0 }, -{ "Id": 289, "Name": "카툰네트워크", "KT Name": "카툰네트워크", "KTCh": 137, "LG Name": "카툰네트워크", "LGCh": 155, "SK Name": "카툰네트워크", "SKCh": 177, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cJZHPjr.png", "Source": "SKY", "ServiceId": "358", "Enabled": 0 }, -{ "Id": 290, "Name": "캐치온1", "KT Name": "캐치온1", "KTCh": 66, "LG Name": "캐치온1", "LGCh": 48, "SK Name": "CATCH ON 1", "SKCh": 51, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qK9KkRd.png", "Source": "EPG", "ServiceId": "31", "Enabled": 0 }, -{ "Id": 291, "Name": "캐치온2", "KT Name": "캐치온2", "KTCh": 67, "LG Name": "캐치온2", "LGCh": 49, "SK Name": "CATCH ON 2", "SKCh": 52, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/sLc2req.png", "Source": "EPG", "ServiceId": "161", "Enabled": 0 }, -{ "Id": 292, "Name": "브릿지TV", "KT Name": "브릿지TV", "KTCh": 270, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/KATTup7.png", "Source": "KT", "ServiceId": "207", "Enabled": 0 }, -{ "Id": 293, "Name": "코미디TV", "KT Name": "코미디TV", "KTCh": 85, "LG Name": "", "LGCh": null, "SK Name": "코미디TV", "SKCh": 87, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/DHbUoDm.png", "Source": "SKY", "ServiceId": "100", "Enabled": 0 }, -{ "Id": 294, "Name": "쿠키건강TV", "KT Name": "쿠키건강TV", "KTCh": 220, "LG Name": "쿠키건강TV", "LGCh": 144, "SK Name": "쿠키건강TV", "SKCh": 269, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4gl92D1.png", "Source": "EPG", "ServiceId": "735", "Enabled": 0 }, -{ "Id": 296, "Name": "키즈원", "KT Name": "키즈원", "KTCh": 148, "LG Name": "키즈원", "LGCh": 157, "SK Name": "KIDS1", "SKCh": 193, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/f8T1Sw4.png", "Source": "NAVER", "ServiceId": "815020", "Enabled": 0 }, -{ "Id": 297, "Name": "토마토TV", "KT Name": "토마토TV", "KTCh": 185, "LG Name": "토마토TV", "LGCh": 111, "SK Name": "토마토TV", "SKCh": 150, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/dVWy3Ex.png", "Source": "SK", "ServiceId": "620", "Enabled": 0 }, -{ "Id": 299, "Name": "펜트하우스tv", "KT Name": "펜트하우스tv", "KTCh": 208, "LG Name": "", "LGCh": null, "SK Name": "펜트하우스TV", "SKCh": 324, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/03U2Ges.png", "Source": "EPG", "ServiceId": "599", "Enabled": 0 }, -{ "Id": 301, "Name": "가톨릭평화방송", "KT Name": "가톨릭평화방송", "KTCh": 231, "LG Name": "가톨릭평화방송", "LGCh": 184, "SK Name": "가톨릭평화방송", "SKCh": 307, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/G5fTCL3.png", "Source": "HCN", "ServiceId": "33", "Enabled": 0 }, -{ "Id": 302, "Name": "폴라리스TV", "KT Name": "폴라리스TV", "KTCh": 129, "LG Name": "폴라리스 TV", "LGCh": 67, "SK Name": "폴라리스TV", "SKCh": 249, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/aghufJ7.png", "Source": "SK", "ServiceId": "252", "Enabled": 0 }, -{ "Id": 303, "Name": "한국경제TV", "KT Name": "한국경제TV", "KTCh": 180, "LG Name": "한국경제TV", "LGCh": 121, "SK Name": "한국경제TV", "SKCh": 151, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ChnD0FT.png", "Source": "ISCS", "ServiceId": "197", "Enabled": 0 }, -{ "Id": 305, "Name": "한국승마방송", "KT Name": "한국승마방송", "KTCh": 259, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VZdQLwj.png", "Source": "NAVER", "ServiceId": "814904", "Enabled": 0 }, -{ "Id": 307, "Name": "한국직업방송", "KT Name": "한국직업방송", "KTCh": 252, "LG Name": "", "LGCh": null, "SK Name": "한국직업방송", "SKCh": 273, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WUvf0If.png", "Source": "ISCS", "ServiceId": "1325", "Enabled": 0 }, -{ "Id": 309, "Name": "허니TV", "KT Name": "허니TV", "KTCh": 207, "LG Name": "허니TV", "LGCh": 193, "SK Name": "허니TV", "SKCh": 323, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/KczRCLW.png", "Source": "EPG", "ServiceId": "112", "Enabled": 0 }, -{ "Id": 311, "Name": "헬스메디tv", "KT Name": "헬스메디tv", "KTCh": 271, "LG Name": "헬스메디TV", "LGCh": 138, "SK Name": "헬스메디TV", "SKCh": 268, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/vsxRuFh.png", "Source": "ISCS", "ServiceId": "1419", "Enabled": 0 }, -{ "Id": 312, "Name": "현대홈쇼핑", "KT Name": "현대홈쇼핑", "KTCh": 10, "LG Name": "현대홈쇼핑", "LGCh": 10, "SK Name": "현대홈쇼핑", "SKCh": 8, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/87fdrA5.png", "Source": "ISCS", "ServiceId": "8", "Enabled": 0 }, -{ "Id": 313, "Name": "현대홈쇼핑+샵", "KT Name": "현대홈쇼핑+샵", "KTCh": 36, "LG Name": "현대홈쇼핑+샵", "LGCh": 34, "SK Name": "현대홈쇼핑+Shop", "SKCh": 31, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/COo8Bcm.png", "Source": "SK", "ServiceId": "337", "Enabled": 0 }, -{ "Id": 314, "Name": "홈&쇼핑", "KT Name": "홈&쇼핑", "KTCh": 14, "LG Name": "홈앤쇼핑", "LGCh": 4, "SK Name": "홈&쇼핑", "SKCh": 4, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/nLxw0LW.png", "Source": "ISCS", "ServiceId": "1028", "Enabled": 0 }, -{ "Id": 315, "Name": "환경TV", "KT Name": "환경TV", "KTCh": 166, "LG Name": "", "LGCh": null, "SK Name": "환경TV", "SKCh": 276, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/eITOr2Y.png", "Source": "HCN", "ServiceId": "29", "Enabled": 0 }, -{ "Id": 316, "Name": "Life N", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Life N", "SKCh": 215, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qNde2j7.png", "Source": "SKB", "ServiceId": "277", "Enabled": 0 }, -{ "Id": 317, "Name": "Discovery HD", "KT Name": "", "KTCh": null, "LG Name": "디스커버리 아시아", "LGCh": 133, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/bH9BY7E.png", "Source": "SKY", "ServiceId": "929", "Enabled": 0 }, -{ "Id": 318, "Name": "Celestial Movies", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Celestial Movies", "SKCh": 62, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xDXM13Q.png", "Source": "SKB", "ServiceId": "877", "Enabled": 0 }, -{ "Id": 319, "Name": "UHD Dream TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "UHD Dream TV", "SKCh": 71, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/aLG2rKa.png", "Source": "SKY", "ServiceId": "689", "Enabled": 0 }, -{ "Id": 320, "Name": "UMAX", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "UMAX", "SKCh": 73, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EgVuybQ.png", "Source": "SKB", "ServiceId": "69", "Enabled": 0 }, -{ "Id": 321, "Name": "NHK World TV", "KT Name": "", "KTCh": null, "LG Name": "NHK World TV", "LGCh": 142, "SK Name": "NHK World TV", "SKCh": 221, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/pCuIQsT.png", "Source": "LG", "ServiceId": "669", "Enabled": 0 }, -{ "Id": 362, "Name": "CJB 청주방송", "KT Name": "CJB 청주방송", "KTCh": 5, "LG Name": "CJB 청주방송", "LGCh": 5, "SK Name": "CJB 청주방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/J6zQfQu.png", "Source": "NAVER", "ServiceId": "814684", "Enabled": 0 }, -{ "Id": 363, "Name": "G1 강원민방", "KT Name": "G1 강원민방", "KTCh": 5, "LG Name": "G1 강원민방", "LGCh": 5, "SK Name": "G1 강원민방", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/aYqGo9x.png", "Source": "NAVER", "ServiceId": "814614", "Enabled": 0 }, -{ "Id": 364, "Name": "JIBS 제주방송", "KT Name": "JIBS 제주방송", "KTCh": 5, "LG Name": "JIBS 제주방송", "LGCh": 5, "SK Name": "JIBS 제주방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/7YZ1lkJ.png", "Source": "NAVER", "ServiceId": "814703", "Enabled": 0 }, -{ "Id": 365, "Name": "JTV 전주방송", "KT Name": "JTV 전주방송", "KTCh": 5, "LG Name": "JTV 전주방송", "LGCh": 5, "SK Name": "JTV 전주방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/XFKcvaN.png", "Source": "NAVER", "ServiceId": "814661", "Enabled": 0 }, -{ "Id": 366, "Name": "KBC 광주방송", "KT Name": "KBC 광주방송", "KTCh": 5, "LG Name": "KBC 광주방송", "LGCh": 5, "SK Name": "KBC 광주방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/3M5UOIH.png", "Source": "NAVER", "ServiceId": "814652", "Enabled": 0 }, -{ "Id": 367, "Name": "KNN 부산경남방송", "KT Name": "KNN 부산경남방송", "KTCh": 5, "LG Name": "KNN 부산경남방송", "LGCh": 5, "SK Name": "KNN 부산경남방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RcViTam.png", "Source": "NAVER", "ServiceId": "814628", "Enabled": 0 }, -{ "Id": 369, "Name": "TBC 대구방송", "KT Name": "TBC 대구방송", "KTCh": 5, "LG Name": "TBC 대구방송", "LGCh": 5, "SK Name": "TBC 대구방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/wmF5z8V.png", "Source": "NAVER", "ServiceId": "814639", "Enabled": 0 }, -{ "Id": 370, "Name": "TJB 대전방송", "KT Name": "TJB 대전방송", "KTCh": 5, "LG Name": "TJB 대전방송", "LGCh": 5, "SK Name": "TJB 대전방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/9JAy4Bu.png", "Source": "NAVER", "ServiceId": "814671", "Enabled": 0 }, -{ "Id": 371, "Name": "UBC 울산방송", "KT Name": "UBC 울산방송", "KTCh": 5, "LG Name": "UBC 울산방송", "LGCh": 5, "SK Name": "UBC 울산방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qbBR1k5.png", "Source": "NAVER", "ServiceId": "814694", "Enabled": 0 }, -{ "Id": 372, "Name": "강릉 KBS1", "KT Name": "강릉 KBS1", "KTCh": 9, "LG Name": "강릉 KBS1", "LGCh": 9, "SK Name": "강릉 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814602", "Enabled": 0 }, -{ "Id": 373, "Name": "강릉 MBC", "KT Name": "강릉 MBC", "KTCh": 11, "LG Name": "강릉 MBC", "LGCh": 11, "SK Name": "강릉 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814606", "Enabled": 0 }, -{ "Id": 374, "Name": "경인 KBS1", "KT Name": "경인 KBS1", "KTCh": 9, "LG Name": "경인 KBS1", "LGCh": 9, "SK Name": "경인 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814597", "Enabled": 0 }, -{ "Id": 375, "Name": "광주 KBS1", "KT Name": "광주 KBS1", "KTCh": 9, "LG Name": "광주 KBS1", "LGCh": 9, "SK Name": "광주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814642", "Enabled": 0 }, -{ "Id": 376, "Name": "광주 MBC", "KT Name": "광주 MBC", "KTCh": 11, "LG Name": "광주 MBC", "LGCh": 11, "SK Name": "광주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814644", "Enabled": 0 }, -{ "Id": 377, "Name": "대구 KBS1", "KT Name": "대구 KBS1", "KTCh": 9, "LG Name": "대구 KBS1", "LGCh": 9, "SK Name": "대구 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814630", "Enabled": 0 }, -{ "Id": 378, "Name": "대구 MBC", "KT Name": "대구 MBC", "KTCh": 11, "LG Name": "대구 MBC", "LGCh": 11, "SK Name": "대구 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814633", "Enabled": 0 }, -{ "Id": 379, "Name": "대전 KBS1", "KT Name": "대전 KBS1", "KTCh": 9, "LG Name": "대전 KBS1", "LGCh": 9, "SK Name": "대전 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814665", "Enabled": 0 }, -{ "Id": 380, "Name": "대전 MBC", "KT Name": "대전 MBC", "KTCh": 11, "LG Name": "대전 MBC", "LGCh": 11, "SK Name": "대전 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814668", "Enabled": 0 }, -{ "Id": 381, "Name": "목포 KBS1", "KT Name": "목포 KBS1", "KTCh": 9, "LG Name": "목포 KBS1", "LGCh": 9, "SK Name": "목포 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "523", "Enabled": 0 }, -{ "Id": 382, "Name": "목포 MBC", "KT Name": "목포 MBC", "KTCh": 11, "LG Name": "목포 MBC", "LGCh": 11, "SK Name": "목포 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814646", "Enabled": 0 }, -{ "Id": 383, "Name": "부산 KBS1", "KT Name": "부산 KBS1", "KTCh": 9, "LG Name": "부산 KBS1", "LGCh": 9, "SK Name": "부산 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814617", "Enabled": 0 }, -{ "Id": 384, "Name": "부산 MBC", "KT Name": "부산 MBC", "KTCh": 11, "LG Name": "부산 MBC", "LGCh": 11, "SK Name": "부산 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814621", "Enabled": 0 }, -{ "Id": 385, "Name": "삼척 MBC", "KT Name": "삼척 MBC", "KTCh": 11, "LG Name": "삼척 MBC", "LGCh": 11, "SK Name": "삼척 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814608", "Enabled": 0 }, -{ "Id": 386, "Name": "순천 KBS1", "KT Name": "순천 KBS1", "KTCh": 9, "LG Name": "순천 KBS1", "LGCh": 9, "SK Name": "순천 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "522", "Enabled": 0 }, -{ "Id": 387, "Name": "안동 KBS1", "KT Name": "안동 KBS1", "KTCh": 9, "LG Name": "안동 KBS1", "LGCh": 9, "SK Name": "안동 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "517", "Enabled": 0 }, -{ "Id": 388, "Name": "안동 MBC", "KT Name": "안동 MBC", "KTCh": 11, "LG Name": "안동 MBC", "LGCh": 11, "SK Name": "안동 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814635", "Enabled": 0 }, -{ "Id": 389, "Name": "여수 MBC", "KT Name": "여수 MBC", "KTCh": 11, "LG Name": "여수 MBC", "LGCh": 11, "SK Name": "여수 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814649", "Enabled": 0 }, -{ "Id": 390, "Name": "울산 KBS1", "KT Name": "울산 KBS1", "KTCh": 9, "LG Name": "울산 KBS1", "LGCh": 9, "SK Name": "울산 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814687", "Enabled": 0 }, -{ "Id": 391, "Name": "울산 MBC", "KT Name": "울산 MBC", "KTCh": 11, "LG Name": "울산 MBC", "LGCh": 11, "SK Name": "울산 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814691", "Enabled": 0 }, -{ "Id": 392, "Name": "원주 KBS1", "KT Name": "원주 KBS1", "KTCh": 9, "LG Name": "원주 KBS1", "LGCh": 9, "SK Name": "원주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "531", "Enabled": 0 }, -{ "Id": 393, "Name": "원주 MBC", "KT Name": "원주 MBC", "KTCh": 11, "LG Name": "원주 MBC", "LGCh": 11, "SK Name": "원주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814610", "Enabled": 0 }, -{ "Id": 394, "Name": "전주 KBS1", "KT Name": "전주 KBS1", "KTCh": 9, "LG Name": "전주 KBS1", "LGCh": 9, "SK Name": "전주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814655", "Enabled": 0 }, -{ "Id": 395, "Name": "전주 MBC", "KT Name": "전주 MBC", "KTCh": 11, "LG Name": "전주 MBC", "LGCh": 11, "SK Name": "전주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814658", "Enabled": 0 }, -{ "Id": 396, "Name": "제주 KBS1", "KT Name": "제주 KBS1", "KTCh": 9, "LG Name": "제주 KBS1", "LGCh": 9, "SK Name": "제주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814697", "Enabled": 0 }, -{ "Id": 397, "Name": "제주 MBC", "KT Name": "제주 MBC", "KTCh": 11, "LG Name": "제주 MBC", "LGCh": 11, "SK Name": "제주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814700", "Enabled": 0 }, -{ "Id": 398, "Name": "진주 KBS1", "KT Name": "진주 KBS1", "KTCh": 9, "LG Name": "진주 KBS1", "LGCh": 9, "SK Name": "진주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "529", "Enabled": 0 }, -{ "Id": 399, "Name": "진주 MBC", "KT Name": "진주 MBC", "KTCh": 11, "LG Name": "진주 MBC", "LGCh": 11, "SK Name": "진주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814624", "Enabled": 0 }, -{ "Id": 400, "Name": "창원 KBS1", "KT Name": "창원 KBS1", "KTCh": 9, "LG Name": "창원 KBS1", "LGCh": 9, "SK Name": "창원 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814619", "Enabled": 0 }, -{ "Id": 401, "Name": "청주 KBS1", "KT Name": "청주 KBS1", "KTCh": 9, "LG Name": "청주 KBS1", "LGCh": 9, "SK Name": "청주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814675", "Enabled": 0 }, -{ "Id": 402, "Name": "청주 MBC", "KT Name": "청주 MBC", "KTCh": 11, "LG Name": "청주 MBC", "LGCh": 11, "SK Name": "청주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814678", "Enabled": 0 }, -{ "Id": 403, "Name": "춘천 KBS1", "KT Name": "춘천 KBS1", "KTCh": 9, "LG Name": "춘천 KBS1", "LGCh": 9, "SK Name": "춘천 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814604", "Enabled": 0 }, -{ "Id": 404, "Name": "춘천 MBC", "KT Name": "춘천 MBC", "KTCh": 11, "LG Name": "춘천 MBC", "LGCh": 11, "SK Name": "춘천 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814612", "Enabled": 0 }, -{ "Id": 405, "Name": "충주 KBS1", "KT Name": "충주 KBS1", "KTCh": 9, "LG Name": "충주 KBS1", "LGCh": 9, "SK Name": "충주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "513", "Enabled": 0 }, -{ "Id": 406, "Name": "충주 MBC", "KT Name": "충주 MBC", "KTCh": 11, "LG Name": "충주 MBC", "LGCh": 11, "SK Name": "충주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "LG", "ServiceId": "538", "Enabled": 0 }, -{ "Id": 407, "Name": "포항 KBS1", "KT Name": "포항 KBS1", "KTCh": 9, "LG Name": "포항 KBS1", "LGCh": 9, "SK Name": "포항 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "518", "Enabled": 0 }, -{ "Id": 408, "Name": "포항 MBC", "KT Name": "포항 MBC", "KTCh": 11, "LG Name": "포항 MBC", "LGCh": 11, "SK Name": "포항 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814637", "Enabled": 0 }, -{ "Id": 409, "Name": "DIA TV", "KT Name": "DIA TV", "KTCh": 72, "LG Name": "다이아TV", "LGCh": 93, "SK Name": "DIA TV", "SKCh": 96, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/BH3DnrW.png", "Source": "LG", "ServiceId": "690", "Enabled": 0 }, -{ "Id": 410, "Name": "메디컬TV", "KT Name": "메디컬TV", "KTCh": 254, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/S73ArUy.png", "Source": "KT", "ServiceId": "254", "Enabled": 0 }, -{ "Id": 411, "Name": "CGTN", "KT Name": "CGTN", "KTCh": 194, "LG Name": "CGTN", "LGCh": 119, "SK Name": "CGTN", "SKCh": 161, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/rhZf4Zx.png", "Source": "ISCS", "ServiceId": "86", "Enabled": 0 }, -{ "Id": 412, "Name": "C Music TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "C Music TV", "SKCh": 237, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/hV270KM.png", "Source": "SKB", "ServiceId": "672", "Enabled": 0 }, -{ "Id": 413, "Name": "Tvis", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Tvis", "SKCh": 250, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/7jq2VMs.png", "Source": "SKB", "ServiceId": "260", "Enabled": 0 }, -{ "Id": 414, "Name": "SPOTV ON", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "SPOTV ON", "SKCh": 118, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Y3eYOc2.png", "Source": "SKB", "ServiceId": "136", "Enabled": 0 }, -{ "Id": 415, "Name": "SPOTV ON2", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "SPOTV ON2", "SKCh": 119, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/jbdurz4.png", "Source": "SKB", "ServiceId": "137", "Enabled": 0 }, -{ "Id": 416, "Name": "한국선거방송", "KT Name": "한국선거방송", "KTCh": 273, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZSdcknl.png", "Source": "KT", "ServiceId": "273", "Enabled": 0 }, -{ "Id": 417, "Name": "EBS 교육방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "EBS 교육방송", "RadioCh": 901, "Icon_url": "http://i.imgur.com/eEsZJop.png", "Source": "NAVER", "ServiceId": "815452", "Enabled": 0 }, -{ "Id": 418, "Name": "KBS 1 라디오", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS 1 라디오", "RadioCh": 902, "Icon_url": "http://i.imgur.com/ikJ7QQn.png", "Source": "NAVER", "ServiceId": "815455", "Enabled": 0 }, -{ "Id": 419, "Name": "KBS 2 라디오", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS 2 라디오", "RadioCh": 903, "Icon_url": "http://i.imgur.com/qTrmNld.png", "Source": "NAVER", "ServiceId": "815458", "Enabled": 0 }, -{ "Id": 420, "Name": "KBS 3 라디오", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS 3 라디오", "RadioCh": 904, "Icon_url": "http://i.imgur.com/3tHl7QR.png", "Source": "NAVER", "ServiceId": "815460", "Enabled": 0 }, -{ "Id": 421, "Name": "KBS ClassicFM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS ClassicFM", "RadioCh": 905, "Icon_url": "http://i.imgur.com/Z46a05G.png", "Source": "NAVER", "ServiceId": "815454", "Enabled": 0 }, -{ "Id": 422, "Name": "KBS CoolFM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS CoolFM", "RadioCh": 906, "Icon_url": "http://i.imgur.com/0SQrpHZ.png", "Source": "NAVER", "ServiceId": "815457", "Enabled": 0 }, -{ "Id": 423, "Name": "KBS WorldRaido", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS WorldRaido", "RadioCh": 907, "Icon_url": "http://i.imgur.com/ns1k6LN.png", "Source": "KBS", "ServiceId": "1", "Enabled": 0 }, -{ "Id": 424, "Name": "KBS 한민족방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS 한민족방송", "RadioCh": 908, "Icon_url": "http://i.imgur.com/S5YVPyx.png", "Source": "NAVER", "ServiceId": "815461", "Enabled": 0 }, -{ "Id": 425, "Name": "MBC 표준FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "MBC 표준FM", "RadioCh": 909, "Icon_url": "http://i.imgur.com/E9OMdnO.png", "Source": "NAVER", "ServiceId": "815464", "Enabled": 0 }, -{ "Id": 426, "Name": "MBC FM4U", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "MBC FM4U", "RadioCh": 910, "Icon_url": "http://i.imgur.com/csdszZD.png", "Source": "NAVER", "ServiceId": "815463", "Enabled": 0 }, -{ "Id": 427, "Name": "MBC Channel M", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "MBC Channel M", "RadioCh": 911, "Icon_url": "http://i.imgur.com/jlKGpWs.png", "Source": "MBC", "ServiceId": "1", "Enabled": 0 }, -{ "Id": 428, "Name": "SBS 파워 FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "SBS 파워 FM", "RadioCh": 912, "Icon_url": "http://i.imgur.com/7qcJ4bm.png", "Source": "NAVER", "ServiceId": "815467", "Enabled": 0 }, -{ "Id": 429, "Name": "SBS 러브 FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "SBS 러브 FM", "RadioCh": 913, "Icon_url": "http://i.imgur.com/XHHHUZ1.png", "Source": "NAVER", "ServiceId": "815465", "Enabled": 0 }, -{ "Id": 430, "Name": "국악방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "국악방송", "RadioCh": 914, "Icon_url": "http://i.imgur.com/qpbhUhF.png", "Source": "NAVER", "ServiceId": "2891853", "Enabled": 0 }, -{ "Id": 431, "Name": "극동방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "극동방송", "RadioCh": 915, "Icon_url": "http://i.imgur.com/PlqBFtV.png", "Source": "NAVER", "ServiceId": "2074616", "Enabled": 0 }, -{ "Id": 432, "Name": "BBS 불교방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "BBS 불교방송", "RadioCh": 916, "Icon_url": "http://i.imgur.com/B34jpmo.png", "Source": "NAVER", "ServiceId": "815448", "Enabled": 0 }, -{ "Id": 433, "Name": "CBS 표준FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "CBS 표준FM", "RadioCh": 917, "Icon_url": "http://i.imgur.com/yBNo2mS.png", "Source": "NAVER", "ServiceId": "815451", "Enabled": 0 }, -{ "Id": 434, "Name": "CBS 음악FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "CBS 음악FM", "RadioCh": 918, "Icon_url": "http://i.imgur.com/yBNo2mS.png", "Source": "NAVER", "ServiceId": "815449", "Enabled": 0 }, -{ "Id": 435, "Name": "KFM 경기방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KFM 경기방송", "RadioCh": 919, "Icon_url": "http://i.imgur.com/8hSikAY.png", "Source": "NAVER", "ServiceId": "1974893", "Enabled": 0 }, -{ "Id": 436, "Name": "PBC 평화방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "PBC 평화방송", "RadioCh": 920, "Icon_url": "http://i.imgur.com/G5fTCL3.png", "Source": "NAVER", "ServiceId": "1974894", "Enabled": 0 }, -{ "Id": 437, "Name": "TBS 교통방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "TBS 교통방송", "RadioCh": 921, "Icon_url": "http://i.imgur.com/9RxxTSi.png", "Source": "NAVER", "ServiceId": "815468", "Enabled": 0 }, -{ "Id": 438, "Name": "YTN NEWS FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "YTN NEWS FM", "RadioCh": 922, "Icon_url": "http://i.imgur.com/dSC3YPR.png", "Source": "NAVER", "ServiceId": "2074615", "Enabled": 0 }, -{ "Id": 439, "Name": "원음방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "원음방송", "RadioCh": 923, "Icon_url": "http://i.imgur.com/mKWQE7z.png", "Source": "NAVER", "ServiceId": "5534687", "Enabled": 0 }, -{ "Id": 440, "Name": "국방FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "국방FM", "RadioCh": 924, "Icon_url": "http://i.imgur.com/zjvlIIp.png", "Source": "MIL", "ServiceId": "1", "Enabled": 0 }, -{ "Id": 441, "Name": "경인방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "경인방송", "RadioCh": 925, "Icon_url": "http://i.imgur.com/zBTPTRe.png", "Source": "IFM", "ServiceId": "1", "Enabled": 0 }, -{ "Id": 442, "Name": "AMC", "KT Name": "AMC", "KTCh": 221, "LG Name": "", "LGCh": null, "SK Name": "AMC", "SKCh": 100, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cJ1B77S.png", "Source": "SKB", "ServiceId": "199", "Enabled": 0 }, -{ "Id": 443, "Name": "TVA", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tg99cob.png", "Source": "HCN", "ServiceId": "781", "Enabled": 0 }, -{ "Id": 444, "Name": "채널W", "KT Name": "채널 W", "KTCh": 226, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mtiKEkU.png", "Source": "POOQ", "ServiceId": "C3901", "Enabled": 0 }, -{ "Id": 445, "Name": "INSIGHT TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "INSIGHT TV", "SKCh": 74, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/eFTXeGV.png", "Source": "SKB", "ServiceId": "890", "Enabled": 0 }, -{ "Id": 446, "Name": "인도어스포츠", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "인도어스포츠", "SKCh": 139, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cb58LLs.png", "Source": "ISCS", "ServiceId": "576", "Enabled": 0 }, -{ "Id": 447, "Name": "시니어TV", "KT Name": "시니어TV", "KTCh": 264, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/XaObZ8I.png", "Source": "KT", "ServiceId": "264", "Enabled": 0 }, -{ "Id": 449, "Name": "아리랑 라디오", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GLY8HCN.png", "Source": "ARIRANG", "ServiceId": "1", "Enabled": 0 }, -{ "Id": 450, "Name": "HGTV", "KT Name": "HGTV", "KTCh": 223, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/PR4w3i2.png", "Source": "KT", "ServiceId": "223", "Enabled": 0 }, -{ "Id": 451, "Name": "다빈치러닝", "KT Name": "다빈치러닝", "KTCh": 224, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mB9BL31.png", "Source": "KT", "ServiceId": "224", "Enabled": 0 }, -{ "Id": 452, "Name": "E! Entertainment", "KT Name": "E! 엔터", "KTCh": 225, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VqIgfE9.png", "Source": "KT", "ServiceId": "225", "Enabled": 0 }, -{ "Id": 453, "Name": "다큐원", "KT Name": "다큐원", "KTCh": 269, "LG Name": "", "LGCh": null, "SK Name": "다큐원", "SKCh": 283, "Radio Name": "아리랑 라디오", "RadioCh": 926, "Icon_url": "http://i.imgur.com/1EZs0Tn.png", "Source": "SK", "ServiceId": "257", "Enabled": 0 }, -{ "Id": 454, "Name": "Discovery Science", "KT Name": "DSC Science", "KTCh": 222, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/3UfATJL.png", "Source": "KT", "ServiceId": "222", "Enabled": 0 } +{ "Id": 1, "Name": "9colors", "KT Name": "9colors", "KTCh": 163, "LG Name": "나인컬러스", "LGCh": 178, "SK Name": "9colors", "SKCh": 220, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tRhzBgK.png", "Source": "SK", "ServiceId": "285" }, +{ "Id": 2, "Name": "애니박스", "KT Name": "애니박스", "KTCh": 135, "LG Name": "애니박스", "LGCh": 148, "SK Name": "애니박스", "SKCh": 179, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ipM9AXe.png", "Source": "SKY", "ServiceId": "84" }, +{ "Id": 3, "Name": "Animal Planet", "KT Name": "Animal Planet", "KTCh": 179, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ae70Di1.png", "Source": "SKY", "ServiceId": "182" }, +{ "Id": 4, "Name": "ANIMAX", "KT Name": "ANIMAX", "KTCh": 133, "LG Name": "애니맥스", "LGCh": 167, "SK Name": "Animax", "SKCh": 173, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2Gfqhuj.png", "Source": "SKY", "ServiceId": "725" }, +{ "Id": 5, "Name": "애니원", "KT Name": "애니원", "KTCh": 134, "LG Name": "애니원", "LGCh": 153, "SK Name": "애니원", "SKCh": 174, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/sIp2MZ3.png", "Source": "SKY", "ServiceId": "56" }, +{ "Id": 6, "Name": "예술 TV아르떼", "KT Name": "예술 TV아르떼", "KTCh": 91, "LG Name": "예술TV 아르떼", "LGCh": 139, "SK Name": "Arte TV", "SKCh": 234, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/zReu7df.png", "Source": "SK", "ServiceId": "421" }, +{ "Id": 7, "Name": "Asia UHD", "KT Name": "Asia UHD", "KTCh": 109, "LG Name": "", "LGCh": null, "SK Name": "Asia UHD", "SKCh": 72, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1u80OGN.png", "Source": "SKY", "ServiceId": "655" }, +{ "Id": 8, "Name": "AsiaN", "KT Name": "AsiaN", "KTCh": 111, "LG Name": "아시아N", "LGCh": 88, "SK Name": "Asia N", "SKCh": 106, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/gleMSFq.png", "Source": "SK", "ServiceId": "177" }, +{ "Id": 9, "Name": "Australia Plus", "KT Name": "Australia Plus", "KTCh": 258, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6k9j2Hj.png", "Source": "NAVER", "ServiceId": "815391" }, +{ "Id": 10, "Name": "AXN", "KT Name": "AXN", "KTCh": 113, "LG Name": "AXN", "LGCh": 45, "SK Name": "AXN", "SKCh": 102, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/QrAXBEm.png", "Source": "LG", "ServiceId": "744" }, +{ "Id": 11, "Name": "B Shopping", "KT Name": "B Shopping", "KTCh": 30, "LG Name": "B쇼핑", "LGCh": 28, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/HiCKxpt.png", "Source": "LG", "ServiceId": "738" }, +{ "Id": 14, "Name": "Baby TV", "KT Name": "Baby TV", "KTCh": 146, "LG Name": "", "LGCh": null, "SK Name": "Baby TV", "SKCh": 195, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mU7QuTz.png", "Source": "KT", "ServiceId": "146" }, +{ "Id": 15, "Name": "BBC Earth", "KT Name": "BBC Earth", "KTCh": 172, "LG Name": "BBC Earth", "LGCh": 130, "SK Name": "BBC earth", "SKCh": 265, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/SJZjuqO.png", "Source": "EPG", "ServiceId": "904" }, +{ "Id": 18, "Name": "BBC WN", "KT Name": "BBC WN", "KTCh": 192, "LG Name": "BBC World News", "LGCh": 126, "SK Name": "BBC World News", "SKCh": 160, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/IwJBNd4.png", "Source": "EPG", "ServiceId": "260" }, +{ "Id": 19, "Name": "BBS불교방송", "KT Name": "BBS불교방송", "KTCh": 232, "LG Name": "BBS", "LGCh": 186, "SK Name": "BBS 불교방송", "SKCh": 306, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/B34jpmo.png", "Source": "HCN", "ServiceId": "903" }, +{ "Id": 20, "Name": "빌리어즈티비", "KT Name": "빌리어즈티비", "KTCh": 116, "LG Name": "빌리어즈TV", "LGCh": 63, "SK Name": "Billiards TV", "SKCh": 130, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/f0OW8wX.png", "Source": "EPG", "ServiceId": "615" }, +{ "Id": 21, "Name": "Bloomberg", "KT Name": "Bloomberg", "KTCh": 196, "LG Name": "", "LGCh": null, "SK Name": "Bloomberg TV", "SKCh": 162, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WWNLhh3.png", "Source": "SK", "ServiceId": "775" }, +{ "Id": 23, "Name": "BTN불교TV", "KT Name": "BTN불교TV", "KTCh": 233, "LG Name": "BTN", "LGCh": 185, "SK Name": "BTN 불교TV", "SKCh": 305, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/XU4pwpC.png", "Source": "HCN", "ServiceId": "52" }, +{ "Id": 24, "Name": "C channel", "KT Name": "C Channel", "KTCh": 235, "LG Name": "C채널", "LGCh": 182, "SK Name": "C채널", "SKCh": 304, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/SFouN1c.png", "Source": "HCN", "ServiceId": "907" }, +{ "Id": 26, "Name": "C TIME", "KT Name": "C TIME", "KTCh": 69, "LG Name": "C타임", "LGCh": 86, "SK Name": "C TIME", "SKCh": 86, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2FwWidb.png", "Source": "LG", "ServiceId": "775" }, +{ "Id": 27, "Name": "Cbeebies", "KT Name": "Cbeebies", "KTCh": 152, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4bIQeie.png", "Source": "NAVER", "ServiceId": "814991" }, +{ "Id": 28, "Name": "CBS", "KT Name": "CBS", "KTCh": 238, "LG Name": "CBS", "LGCh": 181, "SK Name": "CBS", "SKCh": 300, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yBNo2mS.png", "Source": "HCN", "ServiceId": "156" }, +{ "Id": 31, "Name": "CCTV4", "KT Name": "CCTV4", "KTCh": 280, "LG Name": "CCTV4", "LGCh": 120, "SK Name": "CCTV4", "SKCh": 277, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ACwvhcc.png", "Source": "ISCS", "ServiceId": "1467" }, +{ "Id": 32, "Name": "CGNTV", "KT Name": "CGNTV", "KTCh": 237, "LG Name": "CGNTV", "LGCh": 183, "SK Name": "CGNTV", "SKCh": 302, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/9fNvKEX.png", "Source": "NAVER", "ServiceId": "815106" }, +{ "Id": 34, "Name": "Channel [V]", "KT Name": "Channel [V]", "KTCh": 89, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/t1PNA6v.png", "Source": "KT", "ServiceId": "89" }, +{ "Id": 35, "Name": "채널 J", "KT Name": "채널 J", "KTCh": 108, "LG Name": "채널J", "LGCh": 145, "SK Name": "채널J", "SKCh": 103, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/V9jGCZm.png", "Source": "LG", "ServiceId": "656" }, +{ "Id": 36, "Name": "Channel News Asia", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Channel News Asia", "SKCh": 163, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/hahdOp1.png", "Source": "SKB", "ServiceId": "777" }, +{ "Id": 38, "Name": "cineF", "KT Name": "", "KTCh": null, "LG Name": "시네프", "LGCh": 42, "SK Name": "Cinef", "SKCh": 58, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/TfhQXIv.png", "Source": "SKB", "ServiceId": "193" }, +{ "Id": 39, "Name": "UXN", "KT Name": "UXN", "KTCh": 101, "LG Name": "UXN", "LGCh": 2, "SK Name": "UXN", "SKCh": 70, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/5rRW0R3.png", "Source": "SKY", "ServiceId": "624" }, +{ "Id": 40, "Name": "CJ오쇼핑", "KT Name": "CJ오쇼핑", "KTCh": 4, "LG Name": "CJ오쇼핑", "LGCh": 8, "SK Name": "CJ오쇼핑", "SKCh": 6, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/uBClUx6.png", "Source": "EPG", "ServiceId": "250" }, +{ "Id": 41, "Name": "CJ오쇼핑 플러스", "KT Name": "CJ오쇼핑플러스", "KTCh": 28, "LG Name": "CJ오쇼핑+", "LGCh": 32, "SK Name": "CJ오쇼핑 플러스", "SKCh": 33, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WlK2YDk.png", "Source": "KT", "ServiceId": "28" }, +{ "Id": 42, "Name": "CLASSICA", "KT Name": "CLASSICA", "KTCh": 90, "LG Name": "클래시카", "LGCh": 146, "SK Name": "Classica HD", "SKCh": 235, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/FEfMS0W.png", "Source": "EPG", "ServiceId": "365" }, +{ "Id": 43, "Name": "CMC가족오락TV", "KT Name": "CMC가족오락TV", "KTCh": 126, "LG Name": "", "LGCh": null, "SK Name": "CMC 가족오락TV", "SKCh": 93, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/fNuqGzR.png", "Source": "NAVER", "ServiceId": "814797" }, +{ "Id": 44, "Name": "CMTV", "KT Name": "CMTV", "KTCh": 262, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ITweLdv.png", "Source": "KT", "ServiceId": "44" }, +{ "Id": 45, "Name": "CNBC", "KT Name": "CNBC", "KTCh": 197, "LG Name": "CNBC", "LGCh": 118, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Mx8ZXqk.png", "Source": "NAVER", "ServiceId": "815128" }, +{ "Id": 46, "Name": "CNN International", "KT Name": "CNN International", "KTCh": 191, "LG Name": "CNN International", "LGCh": 117, "SK Name": "CNN International", "SKCh": 158, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RxsYny9.png", "Source": "EPG", "ServiceId": "117" }, +{ "Id": 47, "Name": "CNN US", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "CNN US", "SKCh": 159, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EL6i9mA.png", "Source": "SK", "ServiceId": "782" }, +{ "Id": 48, "Name": "CNTV", "KT Name": "CNTV", "KTCh": 68, "LG Name": "CNTV", "LGCh": 85, "SK Name": "CNTV", "SKCh": 43, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lCGq3v1.png", "Source": "NAVER", "ServiceId": "814709" }, +{ "Id": 49, "Name": "CTS기독교TV", "KT Name": "CTS기독교TV", "KTCh": 236, "LG Name": "CTS", "LGCh": 180, "SK Name": "CTS", "SKCh": 301, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lW9nvaB.png", "Source": "HCN", "ServiceId": "42" }, +{ "Id": 50, "Name": "CUBE TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "CUBE TV", "SKCh": 89, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xvEjFJa.png", "Source": "NAVER", "ServiceId": "1725243" }, +{ "Id": 51, "Name": "디스커버리채널", "KT Name": "디스커버리채널", "KTCh": 177, "LG Name": "", "LGCh": null, "SK Name": "Discovery Channel", "SKCh": 261, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1SgSI0P.png", "Source": "SKB", "ServiceId": "437" }, +{ "Id": 52, "Name": "Dog TV", "KT Name": "Dog TV", "KTCh": 201, "LG Name": "DOG TV", "LGCh": 89, "SK Name": "DOG TV", "SKCh": 79, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4Xqehq9.png", "Source": "SKB", "ServiceId": "255" }, +{ "Id": 53, "Name": "Dream Works Channel", "KT Name": "Dream Works Channel", "KTCh": 131, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ETfF49T.png", "Source": "KT", "ServiceId": "131" }, +{ "Id": 54, "Name": "DW-TV Asia+", "KT Name": "DW-TV Asia+", "KTCh": 257, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/b0yhwNu.png", "Source": "NAVER", "ServiceId": "815529" }, +{ "Id": 55, "Name": "E채널", "KT Name": "E채널", "KTCh": 48, "LG Name": "E 채널", "LGCh": 104, "SK Name": "E채널", "SKCh": 83, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0WmEGB4.png", "Source": "EPG", "ServiceId": "108" }, +{ "Id": 56, "Name": "EBS English", "KT Name": "EBS English", "KTCh": 156, "LG Name": "EBS English", "LGCh": 162, "SK Name": "EBS English", "SKCh": 202, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Rx4mgpm.png", "Source": "LG", "ServiceId": "801" }, +{ "Id": 57, "Name": "EBS u", "KT Name": "EBS u", "KTCh": 145, "LG Name": "EBS u", "LGCh": 168, "SK Name": "EBSu", "SKCh": 194, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RIgVjvP.png", "Source": "NAVER", "ServiceId": "815547" }, +{ "Id": 58, "Name": "EBS PLUS1", "KT Name": "EBS PLUS1", "KTCh": 157, "LG Name": "EBS+1", "LGCh": 163, "SK Name": "EBS +1", "SKCh": 203, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WGlWiWy.png", "Source": "LG", "ServiceId": "714" }, +{ "Id": 59, "Name": "EBS PLUS2", "KT Name": "EBS PLUS2", "KTCh": 158, "LG Name": "EBS+2", "LGCh": 164, "SK Name": "EBS +2", "SKCh": 204, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/QPq2wcg.png", "Source": "LG", "ServiceId": "715" }, +{ "Id": 60, "Name": "EBS", "KT Name": "EBS", "KTCh": 13, "LG Name": "EBS1", "LGCh": 14, "SK Name": "EBS", "SKCh": 13, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WViFruZ.png", "Source": "SKY", "ServiceId": "798" }, +{ "Id": 61, "Name": "EBS2", "KT Name": "EBS2", "KTCh": 95, "LG Name": "EBS2", "LGCh": 95, "SK Name": "EBS2", "SKCh": 95, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RIrBF4D.png", "Source": "POOQ", "ServiceId": "E02" }, +{ "Id": 62, "Name": "Edge TV", "KT Name": "Edge TV", "KTCh": 79, "LG Name": "엣지TV", "LGCh": 68, "SK Name": "EDGE TV", "SKCh": 44, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/gsnjG4A.png", "Source": "HCN", "ServiceId": "104" }, +{ "Id": 63, "Name": "edu TV", "KT Name": "edu TV", "KTCh": 159, "LG Name": "에듀TV", "LGCh": 165, "SK Name": "edu TV", "SKCh": 205, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZsMKNGe.png", "Source": "LG", "ServiceId": "810" }, +{ "Id": 67, "Name": "Euro News", "KT Name": "Euro News", "KTCh": 193, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6jswCZM.png", "Source": "NAVER", "ServiceId": "814935" }, +{ "Id": 68, "Name": "Euro sport", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Eurosport", "SKCh": 134, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/7hVKz6n.png", "Source": "SKB", "ServiceId": "120" }, +{ "Id": 70, "Name": "Extreme Fun", "KT Name": "Extreme Fun", "KTCh": 173, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yDg1RC6.png", "Source": "KT", "ServiceId": "173" }, +{ "Id": 71, "Name": "Fashion N", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Fashion N", "SKCh": 211, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qPBnZpV.png", "Source": "SKB", "ServiceId": "274" }, +{ "Id": 72, "Name": "FISHING TV", "KT Name": "FISHING TV", "KTCh": 119, "LG Name": "피싱TV", "LGCh": 65, "SK Name": "FISHING TV", "SKCh": 244, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Go4FdK1.png", "Source": "SK", "ServiceId": "273" }, +{ "Id": 73, "Name": "푸드TV", "KT Name": "", "KTCh": null, "LG Name": "푸드TV", "LGCh": 83, "SK Name": "Food TV", "SKCh": 213, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/F9Rb9SA.png", "Source": "HCN", "ServiceId": "753" }, +{ "Id": 74, "Name": "FOX", "KT Name": "FOX", "KTCh": 107, "LG Name": "FOX채널", "LGCh": 44, "SK Name": "FOX", "SKCh": 101, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/8usDWOC.png", "Source": "LG", "ServiceId": "654" }, +{ "Id": 75, "Name": "Fox life", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Fox life", "SKCh": 216, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/CqVujLk.png", "Source": "SKB", "ServiceId": "280" }, +{ "Id": 76, "Name": "Fox News", "KT Name": "Fox News", "KTCh": 195, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/9rGThzD.png", "Source": "NAVER", "ServiceId": "815413" }, +{ "Id": 78, "Name": "FTV", "KT Name": "FTV", "KTCh": 118, "LG Name": "FTV", "LGCh": 64, "SK Name": "FTV", "SKCh": 243, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/eI9wGgS.png", "Source": "HCN", "ServiceId": "262" }, +{ "Id": 79, "Name": "FUN TV", "KT Name": "FUN TV", "KTCh": 71, "LG Name": "", "LGCh": null, "SK Name": "FUN TV", "SKCh": 91, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6V8X43L.png", "Source": "KT", "ServiceId": "71" }, +{ "Id": 80, "Name": "FX", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "FX", "SKCh": 90, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/DAnUsTS.png", "Source": "SKY", "ServiceId": "818" }, +{ "Id": 82, "Name": "GMTV", "KT Name": "GMTV", "KTCh": 88, "LG Name": "GMTV", "LGCh": 101, "SK Name": "GMTV", "SKCh": 232, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WPF3G5V.png", "Source": "NAVER", "ServiceId": "814815" }, +{ "Id": 83, "Name": "Good TV", "KT Name": "Good TV", "KTCh": 234, "LG Name": "", "LGCh": null, "SK Name": "Good TV", "SKCh": 303, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/fFN1YJb.png", "Source": "HCN", "ServiceId": "293" }, +{ "Id": 84, "Name": "GS MY SHOP", "KT Name": "GS MY SHOP", "KTCh": 38, "LG Name": "GS마이샵", "LGCh": 30, "SK Name": "GS MY SHOP", "SKCh": 29, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0Y0pRW4.png", "Source": "SK", "ServiceId": "343" }, +{ "Id": 85, "Name": "GS SHOP", "KT Name": "GS SHOP", "KTCh": 8, "LG Name": "GS샵", "LGCh": 6, "SK Name": "GS SHOP", "SKCh": 12, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tz88mYd.png", "Source": "HCN", "ServiceId": "45" }, +{ "Id": 86, "Name": "GTV", "KT Name": "GTV", "KTCh": 73, "LG Name": "GTV", "LGCh": 136, "SK Name": "Gtv", "SKCh": 217, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1qXSXRa.png", "Source": "HCN", "ServiceId": "35" }, +{ "Id": 87, "Name": "히어로액션", "KT Name": "히어로액션", "KTCh": 112, "LG Name": "히어로액션", "LGCh": 110, "SK Name": "히어로액션", "SKCh": 107, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yBChQVh.png", "Source": "NAVER", "ServiceId": "814760" }, +{ "Id": 89, "Name": "하이라이트TV", "KT Name": "하이라이트TV", "KTCh": 74, "LG Name": "하이라이트TV", "LGCh": 91, "SK Name": "Highlight TV", "SKCh": 42, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/V9CQ4A6.png", "Source": "LG", "ServiceId": "701" }, +{ "Id": 90, "Name": "History HD", "KT Name": "History", "KTCh": 169, "LG Name": "히스토리 HD", "LGCh": 132, "SK Name": "History", "SKCh": 264, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/SSkop4X.png", "Source": "NAVER", "ServiceId": "815148" }, +{ "Id": 91, "Name": "HQ+", "KT Name": "HQ+", "KTCh": 253, "LG Name": "", "LGCh": null, "SK Name": "HQ+", "SKCh": 47, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GTANuZS.png", "Source": "NAVER", "ServiceId": "3566359" }, +{ "Id": 92, "Name": "아이넷TV", "KT Name": "아이넷TV", "KTCh": 92, "LG Name": "아이넷TV", "LGCh": 106, "SK Name": "아이넷 TV", "SKCh": 233, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/JYQpemw.png", "Source": "SKB", "ServiceId": "261" }, +{ "Id": 93, "Name": "IB SPORTS", "KT Name": "IB SPORTS", "KTCh": 53, "LG Name": "IB스포츠", "LGCh": 62, "SK Name": "IB Sports", "SKCh": 129, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/wOOQEC1.png", "Source": "SKY", "ServiceId": "515" }, +{ "Id": 94, "Name": "i-Concerts", "KT Name": "", "KTCh": null, "LG Name": "아이콘서트", "LGCh": 108, "SK Name": "i-Concerts", "SKCh": 236, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/oUUZQdi.png", "Source": "LG", "ServiceId": "661" }, +{ "Id": 95, "Name": "JEI EnglishTV", "KT Name": "JEI EnglishTV", "KTCh": 154, "LG Name": "JEI EnglishTV", "LGCh": 160, "SK Name": "JEI 재능 English", "SKCh": 200, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/R1oJmLo.png", "Source": "SKY", "ServiceId": "289" }, +{ "Id": 96, "Name": "JEI 재능TV", "KT Name": "JEI 재능TV", "KTCh": 142, "LG Name": "JEI재능TV", "LGCh": 159, "SK Name": "JEI 재능TV", "SKCh": 192, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/NoNRdSt.png", "Source": "SKY", "ServiceId": "23" }, +{ "Id": 97, "Name": "JTBC", "KT Name": "JTBC", "KTCh": 15, "LG Name": "JTBC", "LGCh": 15, "SK Name": "JTBC", "SKCh": 15, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/YOYosLG.png", "Source": "POOQ", "ServiceId": "C2301" }, +{ "Id": 98, "Name": "JTBC Golf", "KT Name": "JTBC Golf", "KTCh": 56, "LG Name": "JTBC골프", "LGCh": 54, "SK Name": "JTBC GOLF", "SKCh": 132, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Bnw7O5U.png", "Source": "SKY", "ServiceId": "974" }, +{ "Id": 99, "Name": "JTBC2", "KT Name": "JTBC2", "KTCh": 39, "LG Name": "JTBC2", "LGCh": 94, "SK Name": "jtbc2", "SKCh": 82, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WtXDuFU.png", "Source": "POOQ", "ServiceId": "C2303" }, +{ "Id": 100, "Name": "JTBC3", "KT Name": "JTBC3", "KTCh": 62, "LG Name": "JTBC3 FOX스포츠", "LGCh": 50, "SK Name": "JTBC3 FOXSPORTS", "SKCh": 126, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/KvGwEc1.png", "Source": "POOQ", "ServiceId": "C2304" }, +{ "Id": 101, "Name": "K STAR", "KT Name": "K STAR", "KTCh": 87, "LG Name": "K스타", "LGCh": 105, "SK Name": "K star", "SKCh": 88, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/MYtePna.png", "Source": "LG", "ServiceId": "662" }, +{ "Id": 103, "Name": "KBS DRAMA", "KT Name": "KBS Drama", "KTCh": 35, "LG Name": "KBS드라마", "LGCh": 31, "SK Name": "KBS 드라마", "SKCh": 30, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/CrLMIEQ.png", "Source": "SKY", "ServiceId": "910" }, +{ "Id": 104, "Name": "KBS JOY", "KT Name": "KBS Joy", "KTCh": 41, "LG Name": "KBS조이", "LGCh": 3, "SK Name": "KBS joy", "SKCh": 80, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/D1o9by9.png", "Source": "POOQ", "ServiceId": "K04" }, +{ "Id": 105, "Name": "KBS kids", "KT Name": "KBS Kids", "KTCh": 144, "LG Name": "KBS키즈", "LGCh": 169, "SK Name": "KBS KIDS", "SKCh": 190, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Jcfjs9E.png", "Source": "SKY", "ServiceId": "596" }, +{ "Id": 106, "Name": "KBSN Life", "KT Name": "KBSN Life", "KTCh": 281, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/5Ni1YIT.png", "Source": "POOQ", "ServiceId": "K05" }, +{ "Id": 107, "Name": "KBS N Sports", "KT Name": "KBS N Sports", "KTCh": 59, "LG Name": "KBSN스포츠", "LGCh": 59, "SK Name": "KBSN 스포츠", "SKCh": 121, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xspD7UE.png", "Source": "LG", "ServiceId": "618" }, +{ "Id": 108, "Name": "KBS W", "KT Name": "KBS W", "KTCh": 83, "LG Name": "KBS W", "LGCh": 77, "SK Name": "KBS W", "SKCh": 214, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/sVqBczs.png", "Source": "POOQ", "ServiceId": "K09" }, +{ "Id": 110, "Name": "KBS1", "KT Name": "KBS1", "KTCh": 9, "LG Name": "KBS1", "LGCh": 9, "SK Name": "KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "SKY", "ServiceId": "796" }, +{ "Id": 111, "Name": "KBS2", "KT Name": "KBS2", "KTCh": 7, "LG Name": "KBS2", "LGCh": 7, "SK Name": "KBS2", "SKCh": 7, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/XgibZbD.png", "Source": "SKY", "ServiceId": "795" }, +{ "Id": 112, "Name": "키즈톡톡", "KT Name": "", "KTCh": null, "LG Name": "키즈톡톡", "LGCh": 158, "SK Name": "키즈톡톡 플러스", "SKCh": 189, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0loInJO.png", "Source": "LG", "ServiceId": "805" }, +{ "Id": 115, "Name": "KIDS-TV", "KT Name": "KIDS-TV", "KTCh": 149, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/AVCSEdn.png", "Source": "NAVER", "ServiceId": "814999" }, +{ "Id": 116, "Name": "K-NET TV", "KT Name": "K-NET TV", "KTCh": 230, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GelnqjB.png", "Source": "KT", "ServiceId": "230" }, +{ "Id": 117, "Name": "KTV", "KT Name": "KTV", "KTCh": 64, "LG Name": "KTV", "LGCh": 171, "SK Name": "KTV", "SKCh": 290, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yUk2RhO.png", "Source": "ISCS", "ServiceId": "1327" }, +{ "Id": 118, "Name": "K-바둑", "KT Name": "K-바둑", "KTCh": 121, "LG Name": "K-바둑", "LGCh": 107, "SK Name": "K-바둑", "SKCh": 241, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EAk5ySy.png", "Source": "HCN", "ServiceId": "162" }, +{ "Id": 119, "Name": "K쇼핑", "KT Name": "K쇼핑", "KTCh": 20, "LG Name": "", "LGCh": null, "SK Name": "K쇼핑", "SKCh": 25, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6ORm0Rz.png", "Source": "SK", "ServiceId": "333" }, +{ "Id": 121, "Name": "Mnet", "KT Name": "Mnet", "KTCh": 27, "LG Name": "엠넷", "LGCh": 22, "SK Name": "M.net", "SKCh": 27, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/putHm2b.png", "Source": "SKY", "ServiceId": "273" }, +{ "Id": 122, "Name": "MBC", "KT Name": "MBC", "KTCh": 11, "LG Name": "MBC", "LGCh": 11, "SK Name": "MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "SKY", "ServiceId": "797" }, +{ "Id": 123, "Name": "MBC Every1", "KT Name": "MBC Every1", "KTCh": 1, "LG Name": "MBC에브리원", "LGCh": 29, "SK Name": "MBC Every1", "SKCh": 28, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/oOnpFes.png", "Source": "POOQ", "ServiceId": "M03" }, +{ "Id": 124, "Name": "MBC MUSIC", "KT Name": "MBC MUSIC", "KTCh": 97, "LG Name": "MBC뮤직", "LGCh": 99, "SK Name": "MBC Music", "SKCh": 231, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6g56RDx.png", "Source": "POOQ", "ServiceId": "M06" }, +{ "Id": 125, "Name": "MBC NET", "KT Name": "MBC NET", "KTCh": 164, "LG Name": "MBCNET", "LGCh": 140, "SK Name": "MBC NET", "SKCh": 274, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lxDOgY8.png", "Source": "SKY", "ServiceId": "537" }, +{ "Id": 126, "Name": "MBC SPORTS+", "KT Name": "MBC SPORT+", "KTCh": 60, "LG Name": "MBC스포츠+", "LGCh": 60, "SK Name": "MBC Sports+", "SKCh": 123, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Su21uj3.png", "Source": "SKY", "ServiceId": "911" }, +{ "Id": 127, "Name": "MBC SPORTS+2", "KT Name": "MBC SPORTS+2", "KTCh": 61, "LG Name": "MBC스포츠+2", "LGCh": 61, "SK Name": "MBC SPORTS+2", "SKCh": 124, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/frAuUS3.png", "Source": "SKY", "ServiceId": "96" }, +{ "Id": 128, "Name": "MBC Dramanet", "KT Name": "MBC Dramanet", "KTCh": 3, "LG Name": "MBC드라마넷", "LGCh": 35, "SK Name": "MBC 드라마", "SKCh": 32, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VBMFcZ3.png", "Source": "POOQ", "ServiceId": "M02" }, +{ "Id": 129, "Name": "MBN", "KT Name": "MBN", "KTCh": 16, "LG Name": "MBN", "LGCh": 16, "SK Name": "MBN", "SKCh": 16, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/p0mvIJN.png", "Source": "POOQ", "ServiceId": "C2401" }, +{ "Id": 130, "Name": "MBN Plus", "KT Name": "MBN Plus", "KTCh": 99, "LG Name": "MBN+", "LGCh": 116, "SK Name": "MBN 플러스", "SKCh": 98, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yMZiUUp.png", "Source": "NAVER", "ServiceId": "5286722" }, +{ "Id": 133, "Name": "마운틴TV", "KT Name": "마운틴TV", "KTCh": 117, "LG Name": "마운틴TV", "LGCh": 69, "SK Name": "Mountain TV", "SKCh": 247, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4nLYnVC.png", "Source": "ISCS", "ServiceId": "713" }, +{ "Id": 134, "Name": "mplex", "KT Name": "mplex", "KTCh": 103, "LG Name": "엠플렉스", "LGCh": 46, "SK Name": "Mplex", "SKCh": 57, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/dOOBYJm.png", "Source": "ISCS", "ServiceId": "1487" }, +{ "Id": 135, "Name": "머니투데이방송", "KT Name": "머니투데이방송", "KTCh": 181, "LG Name": "MTN", "LGCh": 122, "SK Name": "MTN", "SKCh": 152, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/joWd14j.png", "Source": "EPG", "ServiceId": "132" }, +{ "Id": 136, "Name": "NatGeo People", "KT Name": "NatGeo People", "KTCh": 171, "LG Name": "", "LGCh": null, "SK Name": "Natgeo People", "SKCh": 263, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2ghKPUg.png", "Source": "NAVER", "ServiceId": "814946" }, +{ "Id": 137, "Name": "NatGeo Wild", "KT Name": "NatGeo Wild", "KTCh": 170, "LG Name": "냇지오 와일드", "LGCh": 134, "SK Name": "Natgeo Wild HD", "SKCh": 266, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/M4nh0Rk.png", "Source": "SKY", "ServiceId": "63" }, +{ "Id": 138, "Name": "NGC", "KT Name": "NGC", "KTCh": 168, "LG Name": "내셔널지오그래픽", "LGCh": 131, "SK Name": "NGC", "SKCh": 260, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mqTSPMN.png", "Source": "SKY", "ServiceId": "972" }, +{ "Id": 139, "Name": "NHK WP", "KT Name": "NHK WP", "KTCh": 199, "LG Name": "NHK World Premium", "LGCh": 143, "SK Name": "NHK World Premium", "SKCh": 278, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZSHeMzp.png", "Source": "NAVER", "ServiceId": "815432" }, +{ "Id": 141, "Name": "니켈로디언", "KT Name": "니켈로디언", "KTCh": 136, "LG Name": "니켈로디언", "LGCh": 154, "SK Name": "Nickelodeon", "SKCh": 176, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6pWpFCX.png", "Source": "SKY", "ServiceId": "685" }, +{ "Id": 142, "Name": "놀티비", "KT Name": "놀티비", "KTCh": 128, "LG Name": "놀TV", "LGCh": 92, "SK Name": "Noll TV", "SKCh": 248, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/IK9h4rw.png", "Source": "HCN", "ServiceId": "923" }, +{ "Id": 143, "Name": "NS Shop+", "KT Name": "NS Shop+", "KTCh": 42, "LG Name": "", "LGCh": null, "SK Name": "NS Shop+", "SKCh": 41, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ipGXgEK.png", "Source": "SK", "ServiceId": "341" }, +{ "Id": 144, "Name": "NS홈쇼핑", "KT Name": "NS홈쇼핑", "KTCh": 12, "LG Name": "NS홈쇼핑", "LGCh": 13, "SK Name": "NS홈쇼핑", "SKCh": 14, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/UD1yoj1.png", "Source": "ISCS", "ServiceId": "12" }, +{ "Id": 147, "Name": "O tvN", "KT Name": "O tvn", "KTCh": 45, "LG Name": "O tvN", "LGCh": 71, "SK Name": "O tvN", "SKCh": 34, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0SMl3O5.png", "Source": "SKY", "ServiceId": "555" }, +{ "Id": 148, "Name": "올리브", "KT Name": "올리브", "KTCh": 34, "LG Name": "올리브", "LGCh": 82, "SK Name": "올리브", "SKCh": 84, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/5kF0Ypt.png", "Source": "EPG", "ServiceId": "15" }, +{ "Id": 149, "Name": "OBS", "KT Name": "OBS", "KTCh": 26, "LG Name": "OBS", "LGCh": 26, "SK Name": "OBS", "SKCh": 20, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/DJHN8M6.png", "Source": "SKY", "ServiceId": "935" }, +{ "Id": 150, "Name": "HD OBS W", "KT Name": "HD OBS W", "KTCh": 81, "LG Name": "OBS W", "LGCh": 137, "SK Name": "OBSW", "SKCh": 219, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/uZkbU7b.png", "Source": "LG", "ServiceId": "648" }, +{ "Id": 151, "Name": "OCN", "KT Name": "OCN", "KTCh": 21, "LG Name": "OCN", "LGCh": 38, "SK Name": "OCN", "SKCh": 54, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/IXh6dwo.png", "Source": "SKY", "ServiceId": "847" }, +{ "Id": 153, "Name": "OGN", "KT Name": "OGN", "KTCh": 123, "LG Name": "OGN", "LGCh": 96, "SK Name": "OGN", "SKCh": 136, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tLtSTaq.png", "Source": "SKY", "ServiceId": "55" }, +{ "Id": 154, "Name": "온스타일", "KT Name": "온스타일", "KTCh": 77, "LG Name": "온스타일", "LGCh": 73, "SK Name": "On style", "SKCh": 210, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/9brMDfR.png", "Source": "HCN", "ServiceId": "414" }, +{ "Id": 156, "Name": "ONT", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "ONT", "SKCh": 245, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2lu0ZBu.png", "Source": "SK", "ServiceId": "256" }, +{ "Id": 157, "Name": "OUN", "KT Name": "OUN", "KTCh": 160, "LG Name": "OUN", "LGCh": 170, "SK Name": "OUN", "SKCh": 292, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VimbcIH.png", "Source": "EPG", "ServiceId": "47" }, +{ "Id": 158, "Name": "Outdoor", "KT Name": "", "KTCh": null, "LG Name": "아웃도어 채널", "LGCh": 135, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4M65Rrv.png", "Source": "LG", "ServiceId": "710" }, +{ "Id": 159, "Name": "Playboy TV", "KT Name": "Playboy TV", "KTCh": 206, "LG Name": "플레이보이", "LGCh": 190, "SK Name": "플레이보이TV", "SKCh": 320, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/NglRqcV.png", "Source": "EPG", "ServiceId": "146" }, +{ "Id": 160, "Name": "리얼TV", "KT Name": "리얼TV", "KTCh": 127, "LG Name": "", "LGCh": null, "SK Name": "리얼TV", "SKCh": 267, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/PYnXtlb.png", "Source": "SK", "ServiceId": "440" }, +{ "Id": 164, "Name": "SBS", "KT Name": "SBS", "KTCh": 5, "LG Name": "SBS", "LGCh": 5, "SK Name": "SBS", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/K2ztoDT.png", "Source": "SKY", "ServiceId": "794" }, +{ "Id": 165, "Name": "SBS CNBC", "KT Name": "SBS CNBC", "KTCh": 25, "LG Name": "SBS CNBC", "LGCh": 27, "SK Name": "SBS CNBC", "SKCh": 26, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/SfDs4qN.png", "Source": "POOQ", "ServiceId": "S06" }, +{ "Id": 166, "Name": "SBS funE", "KT Name": "SBS funE", "KTCh": 43, "LG Name": "SBS퍼니", "LGCh": 75, "SK Name": "SBS fun E", "SKCh": 81, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/D1EYJmr.png", "Source": "POOQ", "ServiceId": "S04" }, +{ "Id": 167, "Name": "SBSGOLF", "KT Name": "SBSGOLF", "KTCh": 57, "LG Name": "SBS골프", "LGCh": 53, "SK Name": "SBS GOLF", "SKCh": 131, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/HdS0GNV.png", "Source": "SKY", "ServiceId": "769" }, +{ "Id": 168, "Name": "SBS MTV", "KT Name": "SBS MTV", "KTCh": 96, "LG Name": "SBS MTV", "LGCh": 100, "SK Name": "SBS MTV", "SKCh": 230, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/OeSJ9Ik.png", "Source": "POOQ", "ServiceId": "S09" }, +{ "Id": 169, "Name": "SBS Sports", "KT Name": "SBS Sports", "KTCh": 58, "LG Name": "SBS스포츠", "LGCh": 58, "SK Name": "SBS Sports", "SKCh": 122, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/j1vHAu6.png", "Source": "POOQ", "ServiceId": "S02" }, +{ "Id": 170, "Name": "SBS Plus", "KT Name": "SBS Plus", "KTCh": 37, "LG Name": "SBS플러스", "LGCh": 33, "SK Name": "SBS 플러스", "SKCh": 2, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/asfyrTm.png", "Source": "POOQ", "ServiceId": "S03" }, +{ "Id": 171, "Name": "스크린", "KT Name": "스크린", "KTCh": 106, "LG Name": "스크린", "LGCh": 41, "SK Name": "Screen", "SKCh": 56, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lTK9VD4.png", "Source": "SKB", "ServiceId": "192" }, +{ "Id": 172, "Name": "SkyA&C", "KT Name": "SkyA&C", "KTCh": 80, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cljag6U.png", "Source": "SKY", "ServiceId": "514" }, +{ "Id": 173, "Name": "SkyDrama", "KT Name": "SkyDrama", "KTCh": 31, "LG Name": "스카이드라마", "LGCh": 79, "SK Name": "sky Drama", "SKCh": 40, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e9BTUAb.png", "Source": "SKY", "ServiceId": "783" }, +{ "Id": 174, "Name": "SkyENT", "KT Name": "SkyENT", "KTCh": 50, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ALqDHH6.png", "Source": "SKY", "ServiceId": "970" }, +{ "Id": 175, "Name": "Sky힐링", "KT Name": "Sky힐링", "KTCh": 167, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/64SK0o9.png", "Source": "SKY", "ServiceId": "40" }, +{ "Id": 176, "Name": "SkyICT", "KT Name": "SkyICT", "KTCh": 165, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/luZjU1e.png", "Source": "SKY", "ServiceId": "568" }, +{ "Id": 177, "Name": "SkyPetPark", "KT Name": "SkyPetPark", "KTCh": 49, "LG Name": "", "LGCh": null, "SK Name": "Sky Petpark", "SKCh": 94, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RDUfvRG.png", "Source": "SKY", "ServiceId": "513" }, +{ "Id": 178, "Name": "SkySports", "KT Name": "SkySports", "KTCh": 54, "LG Name": "스카이스포츠", "LGCh": 57, "SK Name": "sky Sports", "SKCh": 125, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/QHV9bdA.png", "Source": "SKY", "ServiceId": "447" }, +{ "Id": 179, "Name": "SkyTravel", "KT Name": "SkyTravel", "KTCh": 100, "LG Name": "스카이트래블", "LGCh": 66, "SK Name": "sky Travel", "SKCh": 246, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/fAJgmna.png", "Source": "SKY", "ServiceId": "934" }, +{ "Id": 181, "Name": "Sky UHD", "KT Name": "Sky UHD", "KTCh": 174, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/BNxE2zT.png", "Source": "SKY", "ServiceId": "500" }, +{ "Id": 182, "Name": "Smile TV", "KT Name": "Smile TV", "KTCh": 84, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/alk8plD.png", "Source": "KT", "ServiceId": "84" }, +{ "Id": 183, "Name": "SPOTV", "KT Name": "SPOTV", "KTCh": 51, "LG Name": "스포티비", "LGCh": 56, "SK Name": "SPOTV", "SKCh": 120, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cIpIf6b.png", "Source": "SKY", "ServiceId": "109" }, +{ "Id": 184, "Name": "SPOTV Games", "KT Name": "SPOTV Games", "KTCh": 124, "LG Name": "스포티비 게임즈", "LGCh": 109, "SK Name": "SPOTV GAMES", "SKCh": 137, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/5IMfa6N.png", "Source": "NAVER", "ServiceId": "1876333" }, +{ "Id": 185, "Name": "SPOTV+", "KT Name": "SPOTV+", "KTCh": 125, "LG Name": "스포티비+", "LGCh": 51, "SK Name": "SPOTV+", "SKCh": 127, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/81Fshnn.png", "Source": "SKY", "ServiceId": "713" }, +{ "Id": 186, "Name": "SPOTV2", "KT Name": "SPOTV2", "KTCh": 52, "LG Name": "스포티비2", "LGCh": 52, "SK Name": "SPOTV2", "SKCh": 128, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GNicmGY.png", "Source": "NAVER", "ServiceId": "5286701" }, +{ "Id": 192, "Name": "Star Sports", "KT Name": "Star Sports", "KTCh": 63, "LG Name": "", "LGCh": null, "SK Name": "Star Sports", "SKCh": 135, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/8ndGr4n.png", "Source": "EPG", "ServiceId": "122" }, +{ "Id": 193, "Name": "STB상생방송", "KT Name": "STB상생방송", "KTCh": 261, "LG Name": "상생방송", "LGCh": 187, "SK Name": "STB 상생방송", "SKCh": 308, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Z3Xknso.png", "Source": "HCN", "ServiceId": "779" }, +{ "Id": 194, "Name": "STN", "KT Name": "STN", "KTCh": 267, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZJi3NQy.png", "Source": "KT", "ServiceId": "267" }, +{ "Id": 196, "Name": "슈퍼액션", "KT Name": "슈퍼액션", "KTCh": 32, "LG Name": "수퍼액션", "LGCh": 40, "SK Name": "SUPER ACTION", "SKCh": 55, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/D9PzDBr.png", "Source": "SKY", "ServiceId": "129" }, +{ "Id": 198, "Name": "tbsTV", "KT Name": "tbsTV", "KTCh": 214, "LG Name": "tbsTV", "LGCh": 176, "SK Name": "tbsTV", "SKCh": 272, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/o3MWHfb.png", "Source": "SK", "ServiceId": "420" }, +{ "Id": 199, "Name": "텔레노벨라", "KT Name": "텔레노벨라", "KTCh": 114, "LG Name": "텔레노벨라", "LGCh": 81, "SK Name": "텔레노벨라", "SKCh": 109, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Ea3Vu8Z.png", "Source": "LG", "ServiceId": "700" }, +{ "Id": 200, "Name": "The Golf Channel", "KT Name": "The Golf Channel", "KTCh": 55, "LG Name": "더 골프채널 코리아", "LGCh": 55, "SK Name": "Golf Channel Korea", "SKCh": 133, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/3VlCrJ7.png", "Source": "SK", "ServiceId": "135" }, +{ "Id": 201, "Name": "THE MOVIE", "KT Name": "THE MOVIE", "KTCh": 104, "LG Name": "더 무비", "LGCh": 47, "SK Name": "The Movie", "SKCh": 59, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6vzmEfd.png", "Source": "HCN", "ServiceId": "165" }, +{ "Id": 202, "Name": "Tooniverse", "KT Name": "Tooniverse", "KTCh": 132, "LG Name": "투니버스", "LGCh": 152, "SK Name": "Tooniverse", "SKCh": 170, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VUqSOjx.png", "Source": "SKY", "ServiceId": "526" }, +{ "Id": 203, "Name": "TRENDY", "KT Name": "TRENDY", "KTCh": 251, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/NP2KTGN.png", "Source": "KT", "ServiceId": "251" }, +{ "Id": 205, "Name": "TV5MONDE", "KT Name": "TV5MONDE", "KTCh": 198, "LG Name": "", "LGCh": null, "SK Name": "TV5Monde", "SKCh": 279, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/NogUKpP.png", "Source": "HCN", "ServiceId": "612" }, +{ "Id": 207, "Name": "tvN", "KT Name": "tvN", "KTCh": 17, "LG Name": "tvN", "LGCh": 17, "SK Name": "tvN", "SKCh": 17, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/OJ9A8fZ.png", "Source": "SKY", "ServiceId": "60" }, +{ "Id": 208, "Name": "TV조선", "KT Name": "TV조선", "KTCh": 19, "LG Name": "TV조선", "LGCh": 19, "SK Name": "TV조선", "SKCh": 19, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ShJ5joR.png", "Source": "POOQ", "ServiceId": "C2601" }, +{ "Id": 212, "Name": "viki", "KT Name": "viki", "KTCh": 204, "LG Name": "비키", "LGCh": 192, "SK Name": "Viki", "SKCh": 322, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZVD51K9.png", "Source": "EPG", "ServiceId": "86" }, +{ "Id": 213, "Name": "W 쇼핑", "KT Name": "W 쇼핑", "KTCh": 40, "LG Name": "", "LGCh": null, "SK Name": "W쇼핑", "SKCh": 37, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Cged9ve.png", "Source": "SK", "ServiceId": "342" }, +{ "Id": 215, "Name": "WBS원음방송", "KT Name": "원음방송", "KTCh": 284, "LG Name": "원음방송", "LGCh": 188, "SK Name": "원음방송", "SKCh": 309, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mKWQE7z.png", "Source": "EPG", "ServiceId": "644" }, +{ "Id": 216, "Name": "XTM", "KT Name": "XTM", "KTCh": 76, "LG Name": "XTM", "LGCh": 72, "SK Name": "XTM", "SKCh": 85, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/hGwA39y.png", "Source": "EPG", "ServiceId": "388" }, +{ "Id": 218, "Name": "YTN", "KT Name": "YTN", "KTCh": 24, "LG Name": "YTN", "LGCh": 24, "SK Name": "YTN", "SKCh": 24, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ByeeX5e.png", "Source": "POOQ", "ServiceId": "C2101" }, +{ "Id": 219, "Name": "YTN 사이언스", "KT Name": "YTN 사이언스", "KTCh": 175, "LG Name": "사이언스TV", "LGCh": 25, "SK Name": "YTN 사이언스", "SKCh": 262, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/gwDHYGf.png", "Source": "SKB", "ServiceId": "422" }, +{ "Id": 220, "Name": "YTN life", "KT Name": "YTN life", "KTCh": 190, "LG Name": "YTN 라이프", "LGCh": 125, "SK Name": "YTN 라이프", "SKCh": 157, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/f66yRT9.png", "Source": "SK", "ServiceId": "632" }, +{ "Id": 221, "Name": "가요TV", "KT Name": "가요TV", "KTCh": 93, "LG Name": "가요TV", "LGCh": 102, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/6ncOOSg.png", "Source": "ISCS", "ServiceId": "356" }, +{ "Id": 222, "Name": "국방TV", "KT Name": "국방TV", "KTCh": 260, "LG Name": "국방TV", "LGCh": 174, "SK Name": "국방TV", "SKCh": 282, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/yyXkYzJ.png", "Source": "ISCS", "ServiceId": "114" }, +{ "Id": 223, "Name": "국회방송", "KT Name": "국회방송", "KTCh": 65, "LG Name": "국회방송", "LGCh": 172, "SK Name": "국회방송", "SKCh": 291, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/l1OEn7O.png", "Source": "LG", "ServiceId": "717" }, +{ "Id": 225, "Name": "내외경제TV", "KT Name": "내외경제TV", "KTCh": 285, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cQHPmCw.png", "Source": "KT", "ServiceId": "285" }, +{ "Id": 226, "Name": "다문화티브이", "KT Name": "다문화티브이", "KTCh": 283, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/nZK3lCC.png", "Source": "KT", "ServiceId": "283" }, +{ "Id": 228, "Name": "대교 어린이TV", "KT Name": "대교 어린이TV", "KTCh": 141, "LG Name": "어린이TV", "LGCh": 156, "SK Name": "어린이TV", "SKCh": 191, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/CETWIE6.png", "Source": "SKY", "ServiceId": "17" }, +{ "Id": 229, "Name": "동아TV", "KT Name": "동아TV", "KTCh": 82, "LG Name": "동아TV", "LGCh": 84, "SK Name": "동아TV", "SKCh": 218, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/AlmV8jS.png", "Source": "HCN", "ServiceId": "247" }, +{ "Id": 230, "Name": "드라마H", "KT Name": "드라마H", "KTCh": 70, "LG Name": "", "LGCh": null, "SK Name": "드라마H", "SKCh": 46, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xT7pVuI.png", "Source": "SKY", "ServiceId": "287" }, +{ "Id": 231, "Name": "드라마큐브", "KT Name": "드라마큐브", "KTCh": 46, "LG Name": "", "LGCh": null, "SK Name": "드라마큐브", "SKCh": 36, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4ESaIH6.png", "Source": "HCN", "ServiceId": "499" }, +{ "Id": 232, "Name": "드라맥스", "KT Name": "드라맥스", "KTCh": 47, "LG Name": "", "LGCh": null, "SK Name": "드라맥스", "SKCh": 38, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/jcguamX.png", "Source": "NAVER", "ServiceId": "814782" }, +{ "Id": 233, "Name": "디원", "KT Name": "디원", "KTCh": 115, "LG Name": "디원", "LGCh": 90, "SK Name": "디원", "SKCh": 45, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/8nE7mmk.png", "Source": "LG", "ServiceId": "666" }, +{ "Id": 234, "Name": "디즈니주니어", "KT Name": "디즈니주니어", "KTCh": 151, "LG Name": "디즈니 주니어", "LGCh": 151, "SK Name": "디즈니주니어", "SKCh": 172, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EGiEKhj.png", "Source": "SKY", "ServiceId": "504" }, +{ "Id": 235, "Name": "Disney Channel", "KT Name": "Disney Channel", "KTCh": 130, "LG Name": "디즈니 채널", "LGCh": 150, "SK Name": "디즈니채널", "SKCh": 171, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qZdqeZo.png", "Source": "SKY", "ServiceId": "503" }, +{ "Id": 237, "Name": "롯데원티비", "KT Name": "롯데원티비", "KTCh": 44, "LG Name": "롯데 OneTV", "LGCh": 21, "SK Name": "롯데OneTV", "SKCh": 39, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/vri0qlq.png", "Source": "EPG", "ServiceId": "548" }, +{ "Id": 238, "Name": "롯데홈쇼핑", "KT Name": "롯데홈쇼핑", "KTCh": 6, "LG Name": "롯데홈쇼핑", "LGCh": 12, "SK Name": "롯데홈쇼핑", "SKCh": 10, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2bCfj0y.png", "Source": "ISCS", "ServiceId": "3" }, +{ "Id": 239, "Name": "리빙TV", "KT Name": "리빙TV", "KTCh": 276, "LG Name": "", "LGCh": null, "SK Name": "리빙TV", "SKCh": 251, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/0jGCpfx.png", "Source": "EPG", "ServiceId": "28" }, +{ "Id": 240, "Name": "마이펫TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "마이펫TV", "SKCh": 92, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Oy7qjnW.png", "Source": "SK", "ServiceId": "258" }, +{ "Id": 241, "Name": "매일경제TV", "KT Name": "매일경제TV", "KTCh": 182, "LG Name": "매일경제TV", "LGCh": 112, "SK Name": "매일경제TV", "SKCh": 153, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/a4PwnPm.png", "Source": "EPG", "ServiceId": "594" }, +{ "Id": 244, "Name": "미드나잇", "KT Name": "미드나잇", "KTCh": 205, "LG Name": "미드나잇", "LGCh": 191, "SK Name": "미드나잇", "SKCh": 321, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/zLJHU3J.png", "Source": "EPG", "ServiceId": "169" }, +{ "Id": 245, "Name": "바둑TV", "KT Name": "바둑TV", "KTCh": 120, "LG Name": "바둑TV", "LGCh": 97, "SK Name": "바둑TV", "SKCh": 240, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/jbRu8T2.png", "Source": "EPG", "ServiceId": "46" }, +{ "Id": 246, "Name": "법률방송", "KT Name": "법률방송", "KTCh": 213, "LG Name": "", "LGCh": null, "SK Name": "법률방송", "SKCh": 280, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WJaHOAP.png", "Source": "ISCS", "ServiceId": "149" }, +{ "Id": 247, "Name": "복지TV", "KT Name": "복지TV", "KTCh": 219, "LG Name": "복지TV", "LGCh": 173, "SK Name": "복지TV", "SKCh": 293, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cTV0rnb.png", "Source": "ISCS", "ServiceId": "344" }, +{ "Id": 249, "Name": "부동산토마토", "KT Name": "부동산토마토", "KTCh": 188, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ePLp200.png", "Source": "KT", "ServiceId": "188" }, +{ "Id": 250, "Name": "부메랑", "KT Name": "부메랑", "KTCh": 139, "LG Name": "부메랑", "LGCh": 166, "SK Name": "부메랑", "SKCh": 175, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GSPRJqf.png", "Source": "NAVER", "ServiceId": "815072" }, +{ "Id": 251, "Name": "브레인TV", "KT Name": "브레인TV", "KTCh": 122, "LG Name": "브레인TV", "LGCh": 98, "SK Name": "브레인TV", "SKCh": 242, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1422kP1.png", "Source": "EPG", "ServiceId": "488" }, +{ "Id": 253, "Name": "사회안전방송", "KT Name": "사회안전방송", "KTCh": 278, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EEfrqCW.png", "Source": "NAVER", "ServiceId": "815484" }, +{ "Id": 254, "Name": "생활체육TV", "KT Name": "생활체육TV", "KTCh": 282, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/gefY5Bw.png", "Source": "NAVER", "ServiceId": "814883" }, +{ "Id": 255, "Name": "서울경제TV", "KT Name": "서울경제TV", "KTCh": 184, "LG Name": "서울경제TV", "LGCh": 124, "SK Name": "서울경제TV", "SKCh": 156, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/LBzj77k.png", "Source": "ISCS", "ServiceId": "24" }, +{ "Id": 256, "Name": "소비자TV", "KT Name": "소비자TV", "KTCh": 265, "LG Name": "소비자TV", "LGCh": 177, "SK Name": "소비자TV", "SKCh": 275, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/971hUD2.png", "Source": "SKB", "ServiceId": "442" }, +{ "Id": 257, "Name": "소상공인방송", "KT Name": "소상공인방송", "KTCh": 255, "LG Name": "소상공인방송", "LGCh": 175, "SK Name": "소상공인방송", "SKCh": 271, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/3k1D4LA.png", "Source": "ISCS", "ServiceId": "1395" }, +{ "Id": 258, "Name": "쇼핑엔T", "KT Name": "쇼핑엔티", "KTCh": 33, "LG Name": "쇼핑엔티", "LGCh": 76, "SK Name": "쇼핑엔티", "SKCh": 35, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Q7FHxYB.png", "Source": "SK", "ServiceId": "336" }, +{ "Id": 260, "Name": "신세계쇼핑", "KT Name": "신세계쇼핑", "KTCh": 2, "LG Name": "신세계쇼핑", "LGCh": 74, "SK Name": "신세계쇼핑", "SKCh": 22, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZhYaqpt.png", "Source": "SK", "ServiceId": "339" }, +{ "Id": 262, "Name": "실버아이TV", "KT Name": "실버아이TV", "KTCh": 266, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xm1O8eQ.png", "Source": "ISCS", "ServiceId": "357" }, +{ "Id": 263, "Name": "아리랑 TV", "KT Name": "아리랑 TV", "KTCh": 200, "LG Name": "아리랑TV", "LGCh": 141, "SK Name": "아리랑TV", "SKCh": 270, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/nFWWIFP.png", "Source": "ISCS", "ServiceId": "17" }, +{ "Id": 264, "Name": "아시아경제TV", "KT Name": "아시아경제TV", "KTCh": 186, "LG Name": "아시아경제TV", "LGCh": 113, "SK Name": "아시아경제TV", "SKCh": 154, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/2D6WoS8.png", "Source": "ISCS", "ServiceId": "1348" }, +{ "Id": 265, "Name": "아임쇼핑", "KT Name": "아임쇼핑", "KTCh": 22, "LG Name": "아임쇼핑", "LGCh": 20, "SK Name": "아임쇼핑", "SKCh": 3, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/E3pJ5Jz.png", "Source": "SK", "ServiceId": "332" }, +{ "Id": 266, "Name": "애니플러스", "KT Name": "애니플러스", "KTCh": 138, "LG Name": "애니플러스", "LGCh": 149, "SK Name": "애니플러스", "SKCh": 178, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/7RKoOZq.png", "Source": "SKY", "ServiceId": "348" }, +{ "Id": 268, "Name": "연합뉴스TV", "KT Name": "연합뉴스TV", "KTCh": 23, "LG Name": "연합뉴스TV", "LGCh": 23, "SK Name": "연합뉴스TV", "SKCh": 23, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/KlTCP8V.png", "Source": "POOQ", "ServiceId": "Y01" }, +{ "Id": 271, "Name": "육아방송", "KT Name": "육아방송", "KTCh": 217, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/UEIB4ZG.png", "Source": "EPG", "ServiceId": "252" }, +{ "Id": 272, "Name": "이데일리TV", "KT Name": "이데일리TV", "KTCh": 183, "LG Name": "이데일리TV", "LGCh": 123, "SK Name": "이데일리TV", "SKCh": 155, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/W90Hw2p.png", "Source": "LG", "ServiceId": "631" }, +{ "Id": 273, "Name": "이벤트TV", "KT Name": "이벤트TV", "KTCh": 263, "LG Name": "이벤트TV", "LGCh": 103, "SK Name": "이벤트TV", "SKCh": 238, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/1Eeyijd.png", "Source": "SKB", "ServiceId": "262" }, +{ "Id": 275, "Name": "인디필름", "KT Name": "인디필름", "KTCh": 277, "LG Name": "", "LGCh": null, "SK Name": "인디필름", "SKCh": 61, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/iA5UIJ9.png", "Source": "SKB", "ServiceId": "441" }, +{ "Id": 278, "Name": "중화TV", "KT Name": "중화TV", "KTCh": 110, "LG Name": "중화TV", "LGCh": 87, "SK Name": "중화TV", "SKCh": 104, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Nal18s5.png", "Source": "SKB", "ServiceId": "186" }, +{ "Id": 279, "Name": "JJC지방자치TV", "KT Name": "JJC지방자치TV", "KTCh": 279, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/AuXr9jA.png", "Source": "NAVER", "ServiceId": "3244879" }, +{ "Id": 280, "Name": "채널 Ching", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "채널 Ching", "SKCh": 105, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tRqGKcS.png", "Source": "HCN", "ServiceId": "780" }, +{ "Id": 281, "Name": "채널A", "KT Name": "채널A", "KTCh": 18, "LG Name": "채널A", "LGCh": 18, "SK Name": "채널A", "SKCh": 18, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xti35f5.png", "Source": "POOQ", "ServiceId": "C2501" }, +{ "Id": 282, "Name": "채널A 플러스", "KT Name": "채널A 플러스", "KTCh": 98, "LG Name": "채널A+", "LGCh": 115, "SK Name": "채널A 플러스", "SKCh": 97, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/rRisTh8.png", "Source": "SKB", "ServiceId": "891" }, +{ "Id": 283, "Name": "채널CGV", "KT Name": "채널CGV", "KTCh": 29, "LG Name": "채널CGV", "LGCh": 39, "SK Name": "Ch CGV", "SKCh": 53, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/fwjRwkx.png", "Source": "SKY", "ServiceId": "163" }, +{ "Id": 284, "Name": "채널i", "KT Name": "채널i", "KTCh": 250, "LG Name": "", "LGCh": null, "SK Name": "채널i", "SKCh": 281, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/X7lXvtw.png", "Source": "ISCS", "ServiceId": "1397" }, +{ "Id": 285, "Name": "채널뷰", "KT Name": "채널뷰", "KTCh": 176, "LG Name": "", "LGCh": null, "SK Name": "채널View", "SKCh": 212, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/lvtWgFL.png", "Source": "SKY", "ServiceId": "918" }, +{ "Id": 286, "Name": "채널차이나", "KT Name": "채널차이나", "KTCh": 102, "LG Name": "채널차이나", "LGCh": 80, "SK Name": "채널차이나", "SKCh": 108, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/jEyoLS1.png", "Source": "ISCS", "ServiceId": "1066" }, +{ "Id": 287, "Name": "채널해피독", "KT Name": "채널해피독", "KTCh": 203, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ly649tS.png", "Source": "NAVER", "ServiceId": "2296260" }, +{ "Id": 289, "Name": "카툰네트워크", "KT Name": "카툰네트워크", "KTCh": 137, "LG Name": "카툰네트워크", "LGCh": 155, "SK Name": "카툰네트워크", "SKCh": 177, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cJZHPjr.png", "Source": "SKY", "ServiceId": "358" }, +{ "Id": 290, "Name": "캐치온1", "KT Name": "캐치온1", "KTCh": 66, "LG Name": "캐치온1", "LGCh": 48, "SK Name": "CATCH ON 1", "SKCh": 51, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qK9KkRd.png", "Source": "EPG", "ServiceId": "31" }, +{ "Id": 291, "Name": "캐치온2", "KT Name": "캐치온2", "KTCh": 67, "LG Name": "캐치온2", "LGCh": 49, "SK Name": "CATCH ON 2", "SKCh": 52, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/sLc2req.png", "Source": "EPG", "ServiceId": "161" }, +{ "Id": 292, "Name": "브릿지TV", "KT Name": "브릿지TV", "KTCh": 270, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/KATTup7.png", "Source": "KT", "ServiceId": "207" }, +{ "Id": 293, "Name": "코미디TV", "KT Name": "코미디TV", "KTCh": 85, "LG Name": "", "LGCh": null, "SK Name": "코미디TV", "SKCh": 87, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/DHbUoDm.png", "Source": "SKY", "ServiceId": "100" }, +{ "Id": 294, "Name": "쿠키건강TV", "KT Name": "쿠키건강TV", "KTCh": 220, "LG Name": "쿠키건강TV", "LGCh": 144, "SK Name": "쿠키건강TV", "SKCh": 269, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/4gl92D1.png", "Source": "EPG", "ServiceId": "735" }, +{ "Id": 296, "Name": "키즈원", "KT Name": "키즈원", "KTCh": 148, "LG Name": "키즈원", "LGCh": 157, "SK Name": "KIDS1", "SKCh": 193, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/f8T1Sw4.png", "Source": "NAVER", "ServiceId": "815020" }, +{ "Id": 297, "Name": "토마토TV", "KT Name": "토마토TV", "KTCh": 185, "LG Name": "토마토TV", "LGCh": 111, "SK Name": "토마토TV", "SKCh": 150, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/dVWy3Ex.png", "Source": "SK", "ServiceId": "620" }, +{ "Id": 299, "Name": "펜트하우스tv", "KT Name": "펜트하우스tv", "KTCh": 208, "LG Name": "", "LGCh": null, "SK Name": "펜트하우스TV", "SKCh": 324, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/03U2Ges.png", "Source": "EPG", "ServiceId": "599" }, +{ "Id": 301, "Name": "가톨릭평화방송", "KT Name": "가톨릭평화방송", "KTCh": 231, "LG Name": "가톨릭평화방송", "LGCh": 184, "SK Name": "가톨릭평화방송", "SKCh": 307, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/G5fTCL3.png", "Source": "HCN", "ServiceId": "33" }, +{ "Id": 302, "Name": "폴라리스TV", "KT Name": "폴라리스TV", "KTCh": 129, "LG Name": "폴라리스 TV", "LGCh": 67, "SK Name": "폴라리스TV", "SKCh": 249, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/aghufJ7.png", "Source": "SK", "ServiceId": "252" }, +{ "Id": 303, "Name": "한국경제TV", "KT Name": "한국경제TV", "KTCh": 180, "LG Name": "한국경제TV", "LGCh": 121, "SK Name": "한국경제TV", "SKCh": 151, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ChnD0FT.png", "Source": "ISCS", "ServiceId": "197" }, +{ "Id": 305, "Name": "한국승마방송", "KT Name": "한국승마방송", "KTCh": 259, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VZdQLwj.png", "Source": "NAVER", "ServiceId": "814904" }, +{ "Id": 307, "Name": "한국직업방송", "KT Name": "한국직업방송", "KTCh": 252, "LG Name": "", "LGCh": null, "SK Name": "한국직업방송", "SKCh": 273, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/WUvf0If.png", "Source": "ISCS", "ServiceId": "1325" }, +{ "Id": 309, "Name": "허니TV", "KT Name": "허니TV", "KTCh": 207, "LG Name": "허니TV", "LGCh": 193, "SK Name": "허니TV", "SKCh": 323, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/KczRCLW.png", "Source": "EPG", "ServiceId": "112" }, +{ "Id": 311, "Name": "헬스메디tv", "KT Name": "헬스메디tv", "KTCh": 271, "LG Name": "헬스메디TV", "LGCh": 138, "SK Name": "헬스메디TV", "SKCh": 268, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/vsxRuFh.png", "Source": "ISCS", "ServiceId": "1419" }, +{ "Id": 312, "Name": "현대홈쇼핑", "KT Name": "현대홈쇼핑", "KTCh": 10, "LG Name": "현대홈쇼핑", "LGCh": 10, "SK Name": "현대홈쇼핑", "SKCh": 8, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/87fdrA5.png", "Source": "ISCS", "ServiceId": "8" }, +{ "Id": 313, "Name": "현대홈쇼핑+샵", "KT Name": "현대홈쇼핑+샵", "KTCh": 36, "LG Name": "현대홈쇼핑+샵", "LGCh": 34, "SK Name": "현대홈쇼핑+Shop", "SKCh": 31, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/COo8Bcm.png", "Source": "SK", "ServiceId": "337" }, +{ "Id": 314, "Name": "홈&쇼핑", "KT Name": "홈&쇼핑", "KTCh": 14, "LG Name": "홈앤쇼핑", "LGCh": 4, "SK Name": "홈&쇼핑", "SKCh": 4, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/nLxw0LW.png", "Source": "ISCS", "ServiceId": "1028" }, +{ "Id": 315, "Name": "환경TV", "KT Name": "환경TV", "KTCh": 166, "LG Name": "", "LGCh": null, "SK Name": "환경TV", "SKCh": 276, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/eITOr2Y.png", "Source": "HCN", "ServiceId": "29" }, +{ "Id": 316, "Name": "Life N", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Life N", "SKCh": 215, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qNde2j7.png", "Source": "SKB", "ServiceId": "277" }, +{ "Id": 317, "Name": "Discovery HD", "KT Name": "", "KTCh": null, "LG Name": "디스커버리 아시아", "LGCh": 133, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/bH9BY7E.png", "Source": "SKY", "ServiceId": "929" }, +{ "Id": 318, "Name": "Celestial Movies", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Celestial Movies", "SKCh": 62, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/xDXM13Q.png", "Source": "SKB", "ServiceId": "877" }, +{ "Id": 319, "Name": "UHD Dream TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "UHD Dream TV", "SKCh": 71, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/aLG2rKa.png", "Source": "SKY", "ServiceId": "689" }, +{ "Id": 320, "Name": "UMAX", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "UMAX", "SKCh": 73, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/EgVuybQ.png", "Source": "SKB", "ServiceId": "69" }, +{ "Id": 321, "Name": "NHK World TV", "KT Name": "", "KTCh": null, "LG Name": "NHK World TV", "LGCh": 142, "SK Name": "NHK World TV", "SKCh": 221, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/pCuIQsT.png", "Source": "LG", "ServiceId": "669" }, +{ "Id": 362, "Name": "CJB 청주방송", "KT Name": "CJB 청주방송", "KTCh": 5, "LG Name": "CJB 청주방송", "LGCh": 5, "SK Name": "CJB 청주방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/J6zQfQu.png", "Source": "NAVER", "ServiceId": "814684" }, +{ "Id": 363, "Name": "G1 강원민방", "KT Name": "G1 강원민방", "KTCh": 5, "LG Name": "G1 강원민방", "LGCh": 5, "SK Name": "G1 강원민방", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/aYqGo9x.png", "Source": "NAVER", "ServiceId": "814614" }, +{ "Id": 364, "Name": "JIBS 제주방송", "KT Name": "JIBS 제주방송", "KTCh": 5, "LG Name": "JIBS 제주방송", "LGCh": 5, "SK Name": "JIBS 제주방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/7YZ1lkJ.png", "Source": "NAVER", "ServiceId": "814703" }, +{ "Id": 365, "Name": "JTV 전주방송", "KT Name": "JTV 전주방송", "KTCh": 5, "LG Name": "JTV 전주방송", "LGCh": 5, "SK Name": "JTV 전주방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/XFKcvaN.png", "Source": "NAVER", "ServiceId": "814661" }, +{ "Id": 366, "Name": "KBC 광주방송", "KT Name": "KBC 광주방송", "KTCh": 5, "LG Name": "KBC 광주방송", "LGCh": 5, "SK Name": "KBC 광주방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/3M5UOIH.png", "Source": "NAVER", "ServiceId": "814652" }, +{ "Id": 367, "Name": "KNN 부산경남방송", "KT Name": "KNN 부산경남방송", "KTCh": 5, "LG Name": "KNN 부산경남방송", "LGCh": 5, "SK Name": "KNN 부산경남방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/RcViTam.png", "Source": "NAVER", "ServiceId": "814628" }, +{ "Id": 369, "Name": "TBC 대구방송", "KT Name": "TBC 대구방송", "KTCh": 5, "LG Name": "TBC 대구방송", "LGCh": 5, "SK Name": "TBC 대구방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/wmF5z8V.png", "Source": "NAVER", "ServiceId": "814639" }, +{ "Id": 370, "Name": "TJB 대전방송", "KT Name": "TJB 대전방송", "KTCh": 5, "LG Name": "TJB 대전방송", "LGCh": 5, "SK Name": "TJB 대전방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/9JAy4Bu.png", "Source": "NAVER", "ServiceId": "814671" }, +{ "Id": 371, "Name": "UBC 울산방송", "KT Name": "UBC 울산방송", "KTCh": 5, "LG Name": "UBC 울산방송", "LGCh": 5, "SK Name": "UBC 울산방송", "SKCh": 5, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/qbBR1k5.png", "Source": "NAVER", "ServiceId": "814694" }, +{ "Id": 372, "Name": "강릉 KBS1", "KT Name": "강릉 KBS1", "KTCh": 9, "LG Name": "강릉 KBS1", "LGCh": 9, "SK Name": "강릉 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814602" }, +{ "Id": 373, "Name": "강릉 MBC", "KT Name": "강릉 MBC", "KTCh": 11, "LG Name": "강릉 MBC", "LGCh": 11, "SK Name": "강릉 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814606" }, +{ "Id": 374, "Name": "경인 KBS1", "KT Name": "경인 KBS1", "KTCh": 9, "LG Name": "경인 KBS1", "LGCh": 9, "SK Name": "경인 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814597" }, +{ "Id": 375, "Name": "광주 KBS1", "KT Name": "광주 KBS1", "KTCh": 9, "LG Name": "광주 KBS1", "LGCh": 9, "SK Name": "광주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814642" }, +{ "Id": 376, "Name": "광주 MBC", "KT Name": "광주 MBC", "KTCh": 11, "LG Name": "광주 MBC", "LGCh": 11, "SK Name": "광주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814644" }, +{ "Id": 377, "Name": "대구 KBS1", "KT Name": "대구 KBS1", "KTCh": 9, "LG Name": "대구 KBS1", "LGCh": 9, "SK Name": "대구 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814630" }, +{ "Id": 378, "Name": "대구 MBC", "KT Name": "대구 MBC", "KTCh": 11, "LG Name": "대구 MBC", "LGCh": 11, "SK Name": "대구 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814633" }, +{ "Id": 379, "Name": "대전 KBS1", "KT Name": "대전 KBS1", "KTCh": 9, "LG Name": "대전 KBS1", "LGCh": 9, "SK Name": "대전 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814665" }, +{ "Id": 380, "Name": "대전 MBC", "KT Name": "대전 MBC", "KTCh": 11, "LG Name": "대전 MBC", "LGCh": 11, "SK Name": "대전 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814668" }, +{ "Id": 381, "Name": "목포 KBS1", "KT Name": "목포 KBS1", "KTCh": 9, "LG Name": "목포 KBS1", "LGCh": 9, "SK Name": "목포 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "523" }, +{ "Id": 382, "Name": "목포 MBC", "KT Name": "목포 MBC", "KTCh": 11, "LG Name": "목포 MBC", "LGCh": 11, "SK Name": "목포 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814646" }, +{ "Id": 383, "Name": "부산 KBS1", "KT Name": "부산 KBS1", "KTCh": 9, "LG Name": "부산 KBS1", "LGCh": 9, "SK Name": "부산 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814617" }, +{ "Id": 384, "Name": "부산 MBC", "KT Name": "부산 MBC", "KTCh": 11, "LG Name": "부산 MBC", "LGCh": 11, "SK Name": "부산 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814621" }, +{ "Id": 385, "Name": "삼척 MBC", "KT Name": "삼척 MBC", "KTCh": 11, "LG Name": "삼척 MBC", "LGCh": 11, "SK Name": "삼척 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814608" }, +{ "Id": 386, "Name": "순천 KBS1", "KT Name": "순천 KBS1", "KTCh": 9, "LG Name": "순천 KBS1", "LGCh": 9, "SK Name": "순천 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "522" }, +{ "Id": 387, "Name": "안동 KBS1", "KT Name": "안동 KBS1", "KTCh": 9, "LG Name": "안동 KBS1", "LGCh": 9, "SK Name": "안동 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "517" }, +{ "Id": 388, "Name": "안동 MBC", "KT Name": "안동 MBC", "KTCh": 11, "LG Name": "안동 MBC", "LGCh": 11, "SK Name": "안동 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814635" }, +{ "Id": 389, "Name": "여수 MBC", "KT Name": "여수 MBC", "KTCh": 11, "LG Name": "여수 MBC", "LGCh": 11, "SK Name": "여수 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814649" }, +{ "Id": 390, "Name": "울산 KBS1", "KT Name": "울산 KBS1", "KTCh": 9, "LG Name": "울산 KBS1", "LGCh": 9, "SK Name": "울산 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814687" }, +{ "Id": 391, "Name": "울산 MBC", "KT Name": "울산 MBC", "KTCh": 11, "LG Name": "울산 MBC", "LGCh": 11, "SK Name": "울산 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814691" }, +{ "Id": 392, "Name": "원주 KBS1", "KT Name": "원주 KBS1", "KTCh": 9, "LG Name": "원주 KBS1", "LGCh": 9, "SK Name": "원주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "531" }, +{ "Id": 393, "Name": "원주 MBC", "KT Name": "원주 MBC", "KTCh": 11, "LG Name": "원주 MBC", "LGCh": 11, "SK Name": "원주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814610" }, +{ "Id": 394, "Name": "전주 KBS1", "KT Name": "전주 KBS1", "KTCh": 9, "LG Name": "전주 KBS1", "LGCh": 9, "SK Name": "전주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814655" }, +{ "Id": 395, "Name": "전주 MBC", "KT Name": "전주 MBC", "KTCh": 11, "LG Name": "전주 MBC", "LGCh": 11, "SK Name": "전주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814658" }, +{ "Id": 396, "Name": "제주 KBS1", "KT Name": "제주 KBS1", "KTCh": 9, "LG Name": "제주 KBS1", "LGCh": 9, "SK Name": "제주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814697" }, +{ "Id": 397, "Name": "제주 MBC", "KT Name": "제주 MBC", "KTCh": 11, "LG Name": "제주 MBC", "LGCh": 11, "SK Name": "제주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814700" }, +{ "Id": 398, "Name": "진주 KBS1", "KT Name": "진주 KBS1", "KTCh": 9, "LG Name": "진주 KBS1", "LGCh": 9, "SK Name": "진주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "529" }, +{ "Id": 399, "Name": "진주 MBC", "KT Name": "진주 MBC", "KTCh": 11, "LG Name": "진주 MBC", "LGCh": 11, "SK Name": "진주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814624" }, +{ "Id": 400, "Name": "창원 KBS1", "KT Name": "창원 KBS1", "KTCh": 9, "LG Name": "창원 KBS1", "LGCh": 9, "SK Name": "창원 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814619" }, +{ "Id": 401, "Name": "청주 KBS1", "KT Name": "청주 KBS1", "KTCh": 9, "LG Name": "청주 KBS1", "LGCh": 9, "SK Name": "청주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814675" }, +{ "Id": 402, "Name": "청주 MBC", "KT Name": "청주 MBC", "KTCh": 11, "LG Name": "청주 MBC", "LGCh": 11, "SK Name": "청주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814678" }, +{ "Id": 403, "Name": "춘천 KBS1", "KT Name": "춘천 KBS1", "KTCh": 9, "LG Name": "춘천 KBS1", "LGCh": 9, "SK Name": "춘천 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "NAVER", "ServiceId": "814604" }, +{ "Id": 404, "Name": "춘천 MBC", "KT Name": "춘천 MBC", "KTCh": 11, "LG Name": "춘천 MBC", "LGCh": 11, "SK Name": "춘천 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814612" }, +{ "Id": 405, "Name": "충주 KBS1", "KT Name": "충주 KBS1", "KTCh": 9, "LG Name": "충주 KBS1", "LGCh": 9, "SK Name": "충주 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "513" }, +{ "Id": 406, "Name": "충주 MBC", "KT Name": "충주 MBC", "KTCh": 11, "LG Name": "충주 MBC", "LGCh": 11, "SK Name": "충주 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "LG", "ServiceId": "538" }, +{ "Id": 407, "Name": "포항 KBS1", "KT Name": "포항 KBS1", "KTCh": 9, "LG Name": "포항 KBS1", "LGCh": 9, "SK Name": "포항 KBS1", "SKCh": 9, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/e31o5gw.png", "Source": "LG", "ServiceId": "518" }, +{ "Id": 408, "Name": "포항 MBC", "KT Name": "포항 MBC", "KTCh": 11, "LG Name": "포항 MBC", "LGCh": 11, "SK Name": "포항 MBC", "SKCh": 11, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/duig32i.png", "Source": "NAVER", "ServiceId": "814637" }, +{ "Id": 409, "Name": "DIA TV", "KT Name": "DIA TV", "KTCh": 72, "LG Name": "다이아TV", "LGCh": 93, "SK Name": "DIA TV", "SKCh": 96, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/BH3DnrW.png", "Source": "LG", "ServiceId": "690" }, +{ "Id": 410, "Name": "메디컬TV", "KT Name": "메디컬TV", "KTCh": 254, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/S73ArUy.png", "Source": "KT", "ServiceId": "254" }, +{ "Id": 411, "Name": "CGTN", "KT Name": "CGTN", "KTCh": 194, "LG Name": "CGTN", "LGCh": 119, "SK Name": "CGTN", "SKCh": 161, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/rhZf4Zx.png", "Source": "ISCS", "ServiceId": "86" }, +{ "Id": 412, "Name": "C Music TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "C Music TV", "SKCh": 237, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/hV270KM.png", "Source": "SKB", "ServiceId": "672" }, +{ "Id": 413, "Name": "Tvis", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "Tvis", "SKCh": 250, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/7jq2VMs.png", "Source": "SKB", "ServiceId": "260" }, +{ "Id": 414, "Name": "SPOTV ON", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "SPOTV ON", "SKCh": 118, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/Y3eYOc2.png", "Source": "SKB", "ServiceId": "136" }, +{ "Id": 415, "Name": "SPOTV ON2", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "SPOTV ON2", "SKCh": 119, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/jbdurz4.png", "Source": "SKB", "ServiceId": "137" }, +{ "Id": 416, "Name": "한국선거방송", "KT Name": "한국선거방송", "KTCh": 273, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/ZSdcknl.png", "Source": "KT", "ServiceId": "273" }, +{ "Id": 417, "Name": "EBS 교육방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "EBS 교육방송", "RadioCh": 901, "Icon_url": "http://i.imgur.com/eEsZJop.png", "Source": "NAVER", "ServiceId": "815452" }, +{ "Id": 418, "Name": "KBS 1 라디오", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS 1 라디오", "RadioCh": 902, "Icon_url": "http://i.imgur.com/ikJ7QQn.png", "Source": "NAVER", "ServiceId": "815455" }, +{ "Id": 419, "Name": "KBS 2 라디오", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS 2 라디오", "RadioCh": 903, "Icon_url": "http://i.imgur.com/qTrmNld.png", "Source": "NAVER", "ServiceId": "815458" }, +{ "Id": 420, "Name": "KBS 3 라디오", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS 3 라디오", "RadioCh": 904, "Icon_url": "http://i.imgur.com/3tHl7QR.png", "Source": "NAVER", "ServiceId": "815460" }, +{ "Id": 421, "Name": "KBS ClassicFM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS ClassicFM", "RadioCh": 905, "Icon_url": "http://i.imgur.com/Z46a05G.png", "Source": "NAVER", "ServiceId": "815454" }, +{ "Id": 422, "Name": "KBS CoolFM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS CoolFM", "RadioCh": 906, "Icon_url": "http://i.imgur.com/0SQrpHZ.png", "Source": "NAVER", "ServiceId": "815457" }, +{ "Id": 423, "Name": "KBS WorldRaido", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS WorldRaido", "RadioCh": 907, "Icon_url": "http://i.imgur.com/ns1k6LN.png", "Source": "KBS", "ServiceId": "1" }, +{ "Id": 424, "Name": "KBS 한민족방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KBS 한민족방송", "RadioCh": 908, "Icon_url": "http://i.imgur.com/S5YVPyx.png", "Source": "NAVER", "ServiceId": "815461" }, +{ "Id": 425, "Name": "MBC 표준FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "MBC 표준FM", "RadioCh": 909, "Icon_url": "http://i.imgur.com/E9OMdnO.png", "Source": "NAVER", "ServiceId": "815464" }, +{ "Id": 426, "Name": "MBC FM4U", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "MBC FM4U", "RadioCh": 910, "Icon_url": "http://i.imgur.com/csdszZD.png", "Source": "NAVER", "ServiceId": "815463" }, +{ "Id": 427, "Name": "MBC Channel M", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "MBC Channel M", "RadioCh": 911, "Icon_url": "http://i.imgur.com/jlKGpWs.png", "Source": "MBC", "ServiceId": "1" }, +{ "Id": 428, "Name": "SBS 파워 FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "SBS 파워 FM", "RadioCh": 912, "Icon_url": "http://i.imgur.com/7qcJ4bm.png", "Source": "NAVER", "ServiceId": "815467" }, +{ "Id": 429, "Name": "SBS 러브 FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "SBS 러브 FM", "RadioCh": 913, "Icon_url": "http://i.imgur.com/XHHHUZ1.png", "Source": "NAVER", "ServiceId": "815465" }, +{ "Id": 430, "Name": "국악방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "국악방송", "RadioCh": 914, "Icon_url": "http://i.imgur.com/qpbhUhF.png", "Source": "NAVER", "ServiceId": "2891853" }, +{ "Id": 431, "Name": "극동방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "극동방송", "RadioCh": 915, "Icon_url": "http://i.imgur.com/PlqBFtV.png", "Source": "NAVER", "ServiceId": "2074616" }, +{ "Id": 432, "Name": "BBS 불교방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "BBS 불교방송", "RadioCh": 916, "Icon_url": "http://i.imgur.com/B34jpmo.png", "Source": "NAVER", "ServiceId": "815448" }, +{ "Id": 433, "Name": "CBS 표준FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "CBS 표준FM", "RadioCh": 917, "Icon_url": "http://i.imgur.com/yBNo2mS.png", "Source": "NAVER", "ServiceId": "815451" }, +{ "Id": 434, "Name": "CBS 음악FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "CBS 음악FM", "RadioCh": 918, "Icon_url": "http://i.imgur.com/yBNo2mS.png", "Source": "NAVER", "ServiceId": "815449" }, +{ "Id": 435, "Name": "KFM 경기방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "KFM 경기방송", "RadioCh": 919, "Icon_url": "http://i.imgur.com/8hSikAY.png", "Source": "NAVER", "ServiceId": "1974893" }, +{ "Id": 436, "Name": "PBC 평화방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "PBC 평화방송", "RadioCh": 920, "Icon_url": "http://i.imgur.com/G5fTCL3.png", "Source": "NAVER", "ServiceId": "1974894" }, +{ "Id": 437, "Name": "TBS 교통방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "TBS 교통방송", "RadioCh": 921, "Icon_url": "http://i.imgur.com/9RxxTSi.png", "Source": "NAVER", "ServiceId": "815468" }, +{ "Id": 438, "Name": "YTN NEWS FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "YTN NEWS FM", "RadioCh": 922, "Icon_url": "http://i.imgur.com/dSC3YPR.png", "Source": "NAVER", "ServiceId": "2074615" }, +{ "Id": 439, "Name": "원음방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "원음방송", "RadioCh": 923, "Icon_url": "http://i.imgur.com/mKWQE7z.png", "Source": "NAVER", "ServiceId": "5534687" }, +{ "Id": 440, "Name": "국방FM", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "국방FM", "RadioCh": 924, "Icon_url": "http://i.imgur.com/zjvlIIp.png", "Source": "MIL", "ServiceId": "1" }, +{ "Id": 441, "Name": "경인방송", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "경인방송", "RadioCh": 925, "Icon_url": "http://i.imgur.com/zBTPTRe.png", "Source": "IFM", "ServiceId": "1" }, +{ "Id": 442, "Name": "AMC", "KT Name": "AMC", "KTCh": 221, "LG Name": "", "LGCh": null, "SK Name": "AMC", "SKCh": 100, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cJ1B77S.png", "Source": "SKB", "ServiceId": "199" }, +{ "Id": 443, "Name": "TVA", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/tg99cob.png", "Source": "HCN", "ServiceId": "781" }, +{ "Id": 444, "Name": "채널W", "KT Name": "채널 W", "KTCh": 226, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mtiKEkU.png", "Source": "POOQ", "ServiceId": "C3901" }, +{ "Id": 445, "Name": "INSIGHT TV", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "INSIGHT TV", "SKCh": 74, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/eFTXeGV.png", "Source": "SKB", "ServiceId": "890" }, +{ "Id": 446, "Name": "인도어스포츠", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "인도어스포츠", "SKCh": 139, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/cb58LLs.png", "Source": "ISCS", "ServiceId": "576" }, +{ "Id": 447, "Name": "시니어TV", "KT Name": "시니어TV", "KTCh": 264, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/XaObZ8I.png", "Source": "KT", "ServiceId": "264" }, +{ "Id": 449, "Name": "아리랑 라디오", "KT Name": "", "KTCh": null, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/GLY8HCN.png", "Source": "ARIRANG", "ServiceId": "1" }, +{ "Id": 450, "Name": "HGTV", "KT Name": "HGTV", "KTCh": 223, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/PR4w3i2.png", "Source": "KT", "ServiceId": "223" }, +{ "Id": 451, "Name": "다빈치러닝", "KT Name": "다빈치러닝", "KTCh": 224, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/mB9BL31.png", "Source": "KT", "ServiceId": "224" }, +{ "Id": 452, "Name": "E! Entertainment", "KT Name": "E! 엔터", "KTCh": 225, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/VqIgfE9.png", "Source": "KT", "ServiceId": "225" }, +{ "Id": 453, "Name": "다큐원", "KT Name": "다큐원", "KTCh": 269, "LG Name": "", "LGCh": null, "SK Name": "다큐원", "SKCh": 283, "Radio Name": "아리랑 라디오", "RadioCh": 926, "Icon_url": "http://i.imgur.com/1EZs0Tn.png", "Source": "SK", "ServiceId": "257" }, +{ "Id": 454, "Name": "Discovery Science", "KT Name": "DSC Science", "KTCh": 222, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "http://i.imgur.com/3UfATJL.png", "Source": "KT", "ServiceId": "222" }, +{ "Id": 455, "Name": "Now제주TV", "KT Name": "Now제주TV", "KTCh": 94, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "https://i.imgur.com/aIvnsge.png", "Source": "KT", "ServiceId": "94" }, +{ "Id": 456, "Name": "Lifetime", "KT Name": "Lifetime", "KTCh": 78, "LG Name": "", "LGCh": null, "SK Name": "", "SKCh": null, "Radio Name": "", "RadioCh": null, "Icon_url": "https://i.imgur.com/vh1U91w.png", "Source": "KT", "ServiceId": "78" }, +{ "Id": 457, "Name": "플레이런TV", "KT Name": "플레이런TV", "KTCh": 155, "LG Name": "플레이런TV", "LGCh": 161, "SK Name": "플레이런TV", "SKCh": 201, "Radio Name": "", "RadioCh": null, "Icon_url": "https://i.imgur.com/nrtT3Wm.png", "Source": "LG", "ServiceId": "772" } ] diff --git a/README.md b/README.md index afe995d..7870757 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,6 @@ https://www.facebook.com/chericface 제가 관련된 곳에서 운영하는 페이스북인데 아직 초기라서 사람이 많이 없습니다. 화학공학 및 소재 관련 사이트입니다. 감사합니다. - ## 필요 모듈 ### epg2xml.py @@ -35,7 +34,8 @@ default_icon_url : 채널별 아이콘이 있는 url을 설정할 수 있다. default_rebroadcast : 제목에 재방송 정보 출력 default_episode : 제목에 회차정보 출력 default_verbose : EPG 정보 상세 출력 -default_fetch_limit : EPG 데이터 가져오는 기간이다. +default_xmltvns : 에피소드 정보 표시 방법 +default_fetch_limit : EPG 데이터 가져오는 기간. default_xml_filename : EPG 저장시 기본 저장 이름으로 tvheadend 서버가 쓰기가 가능한 경로로 설정해야 한다. default_xml_socket : External XMLTV 사용시 xmltv.sock가 있는 경로로 설정해준다. @@ -43,10 +43,6 @@ default_xml_socket : External XMLTV 사용시 xmltv.sock가 있는 경로로 ### Channel.json Channel.json 파일의 최신버전은 https://github.com/wonipapa/Channel.json 에서 다운받을 수 있다. Channel.json 파일을 텍스트 편집기로 열어보면 각채널별 정보가 들어 있다. -이중 Enabled:1로 되어 있는 부분을 Enabled:0으로 바꾸면 EPG정보를 가져오지 않는다. -필요없는 채널정보를 가져오지 않게 하는 것으로 EPG 정보 수집시 시간을 단축할 수 있다. -삭제된 채널등으로 인해서 오류 발생시에도 Enabled:0으로 변경하면 오류 발생을 차단할 수 있다. -1.2.3 버전부터 Enabled 항목은 없어질 예정이다. ## 옵션 소개 ### epg2xml.py, epg2xml.php 옵션 @@ -91,8 +87,8 @@ python 경로와 php의 경로는 /usr/bin에 있고, epg2xml 파일은 /home/ht #### PHP WEB의 경우
-wget -O - http://domain/epg2xml.php 또는
-wget -O - http://domain/epg2xml.php?i=ALL&l=2
+wget -O - http://www.examle.com/epg2xml-web.php 또는
+wget -O - http://www.example.com/epg2xml-web.php?i=ALL&l=2
 
### XMLTV SOCKET 사용시 @@ -123,6 +119,14 @@ https://github.com/wonipapa/epg2xml/wiki https://github.com/wonipapa/epg2xml/wiki/FAQ ## 변경사항 +### Version 1.2.3 + - PHP 버전통합 + - PYTHON 버전 html Parser 변수 추가 + - 소스 추가 + - Channel.json Enabled 항목 제거 + - 에피소드 넘버 xmltv_ns 옵션 항목 추가 + - 가져오는 날짜 최대 7일로 변경 + - KT 함수 수정 ### Version 1.2.2 - My Channel 추가 - 소스 추가 diff --git a/epg2xml-web.php b/epg2xml-web.php index 7522ff6..347e045 100644 --- a/epg2xml-web.php +++ b/epg2xml-web.php @@ -1,10 +1,10 @@ 2 ? 2 : $period; - else : - printError("default_fetch_limit는 1, 2, 3, 4, 5, 6, 7만 가능합니다."); - exit; - endif; - endif; - if(is_null($default_icon_url) == True) : - printError("epg2xml.json 파일의 default_icon_url항목이 없습니다."); - exit; - else : - $IconUrl = $default_icon_url; - endif; - if(empty($default_rebroadcast)) : - printError("epg2xml.json 파일의 default_rebroadcast항목이 없습니다."); - exit; - else : - if(in_array($default_rebroadcast, array("y", "n"))) : - $addrebroadcast = $default_rebroadcast; - else : - printError("default_rebroadcast는 y, n만 가능합니다."); - exit; - endif; - endif; - if(empty($default_episode)) : - printError("epg2xml.json 파일의 default_episode항목이 없습니다."); - exit; - else : - if(in_array($default_episode, array("y", "n"))) : - $addepisode = $default_episode; - else : - printError("default_episode는 y, n만 가능합니다."); - exit; - endif; - endif; - if(empty($default_verbose)) : - printError("epg2xml.json 파일의 default_verbose항목이 없습니다."); - exit; - else : - if(in_array($default_verbose, array("y", "n"))) : - $addverbose = $default_verbose; - else : - printError("default_verbose는 y, n만 가능합니다."); - exit; - endif; - endif; - } - catch(Exception $e) { - printError($e->getMessage()); - exit; - } - endif; - } - catch(Exception $e) { - printError($e->getMessage()); +//옵션 처리 +$shortargs = ""; +$shortargs .= "i:"; +$shortargs .= "v"; +$shortargs .= "d"; +$shortargs .= "o:s:"; +$shortargs .= "l:"; +$shortargs .= "h"; +$longargs = array( + "version", + "display", + "outfile:", + "socket:", + "limit::", + "icon:", + "episode:", + "rebroadcast:", + "verbose:", + "help" +); +$args = getopt($shortargs, $longargs); +$Settingfile = __DIR__."/epg2xml.json"; +try { + $f = @file_get_contents($Settingfile); + if($f === False) : + printError("epg2xml.".JSON_FILE_ERROR); exit; - } -endif; + else : + try { + $Settings = json_decode($f, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception("epg2xml.".JSON_SYNTAX_ERROR); + $MyISP = $Settings['MyISP'] ?: "ALL"; + $MyChannels = isset($Settings['MyChannels']) ? $Settings['MyChannels'] : ""; + $default_output = $Settings['output'] ?: "d"; + $default_xml_file = $Settings['default_xml_file'] ?: "xmltv.xml"; + $default_xml_socket = $Settings['default_xml_socket'] ?: "xmltv.sock"; + $default_icon_url = $Settings['default_icon_url'] ?: ""; + $default_fetch_limit = $Settings['default_fetch_limit'] ?: "2"; + $default_rebroadcast = $Settings['default_rebroadcast'] ?: "y"; + $default_episode = $Settings['default_episode'] ?: "y"; + $default_verbose = $Settings['default_verbose'] ?: "n"; + $default_xmltvns = $Settings['default_xmltvns'] ?: "n"; + $userISP = !empty($_GET['i']) ? $_GET['i'] : (!empty($args['i']) ? $args['i'] : ""); + $user_output = ""; + $user_xml_file = ""; + $user_xml_socket = ""; + if(isset($_GET['d']) || isset($_GET['display']) || (isset($args['d']) && $args['d'] === False) || (isset($args['display']) && $args['display'] === False)): + if(isset($_GET['o']) || isset($_GET['outfile']) || isset($_GET['s']) || isset($_GET['socket']) || isset($args['o']) || isset($args['outfile']) || isset($args['s']) || isset($args['socket'])) : + printf($usage); + printf("epg2xml.php: error: argument -o/--outfile, -s/--socket: not allowed with argument -d/--display\n"); + exit; + endif; + $user_output = "d"; + elseif(isset($_GET['o']) || isset($_GET['outfile']) || isset($args['o']) || isset($args['outfile'])): + if(isset($_GET['d']) || isset($_GET['display']) || isset($_GET['s']) || isset($_GET['socket']) || isset($args['d']) || isset($args['display']) || isset($args['s']) || isset($args['socket'])) : + printf($usage); + printf("epg2xml.php: error: argument -d/--display, -s/--socket: not allowed with argument -o/--outfile\n"); + exit; + endif; + $user_output = "o"; + if(isset($_GET['o']) || isset($_GET['outfile'])) : + $user_xml_file = $_GET['o'] ?: $_GET['outfile']; + elseif(isset($args['o']) || isset($args['outfile'])) : + $user_xml_file = $args['o'] ?: $args['outfile']; + endif; + elseif(isset($_GET['s']) || isset($_GET['socket']) || isset($args['s']) || isset($args['socket'])): + if(isset($_GET['d']) || isset($_GET['display']) || isset($_GET['o']) || isset($_GET['outfile']) || isset($args['d']) || isset($args['display']) || isset($args['o']) || isset($args['outfile'])) : + printf($usage); + printf("epg2xml.php: error: argument -d/--display, -o/--outfile: not allowed with argument -s/--socket\n"); + exit; + endif; + $user_output = "s"; + if(isset($_GET['s']) || isset($_GET['socket'])) : + $user_xml_socket = $_GET['s'] ?: $_GET['socket']; + elseif(isset($args['s']) || isset($args['socket'])) : + $user_xml_socket = $args['s'] ?: $args['socket']; + endif; + endif; + $user_fetch_limit = ""; + $user_icon_url = empty($_GET['icon']) === False ? $_GET['icon'] : (empty($args['icon']) === False ? $args['icon'] : ""); + if(isset($_GET['l']) || isset($_GET['limit']) || isset($args['l']) || isset($args['limit'])): + if(isset($_GET['l']) || isset($_GET['limit'])) : + $user_fetch_limit = $_GET['l'] ?: $_GET['limit']; + elseif(isset($args['l']) || isset($args['limit'])) : + $user_fetch_limit = $args['l'] ?: $args['limit']; + endif; + endif; + $user_rebroadcast = empty($_GET['rebroadcast']) === False ? $_GET['rebroadcast'] : (empty($args['rebroadcast']) === False ? $args['rebroadcast'] : ""); + $user_episode = empty($_GET['episode']) === False ? $_GET['episode'] : (empty($args['episode']) === False ? $args['episode'] : ""); + $user_verbose = empty($_GET['verbose']) === False ? $_GET['verbose'] : (empty($args['verbose']) === False ? $args['verbose'] : ""); + if(!empty($userISP)) $MyISP = $userISP; + if(!empty($user_output)) $default_output = $user_output; + if(!empty($user_xml_file)) $default_xml_file = $user_xml_file; + if(!empty($user_xml_socket)) $default_xml_socket = $user_xml_socket; + if(!empty($user_icon_url)) $default_icon_url = $user_icon_url; + if(!empty($user_fetch_limit)) $default_fetch_limit = $user_fetch_limit; + if(!empty($user_rebroadcast)) $default_rebroadcast = $user_rebroadcast; + if(!empty($user_episode)) $default_episode = $user_episode; + if(!empty($user_verbose)) $default_verbose = $user_verbose; + if(empty($MyISP)) : //ISP 선택없을 시 사용법 출력 + printError("epg2xml.json 파일의 MyISP항목이 없습니다."); + exit; + else : + if(!in_array($MyISP, array("ALL", "KT", "LG", "SK"))) : //ISP 선택 + printError("MyISP는 ALL, KT, LG, SK만 가능합니다."); + exit; + endif; + endif; + if(empty($default_output)) : + printError("epg2xml.json 파일의 output항목이 없습니다."); + exit; + else : + if(in_array($default_output, array("d", "o", "s"))) : + switch ($default_output) : + case "d" : + $output = "display"; + break; + case "o" : + $output = "file"; + break; + case "s" : + $output = "display"; + break; + endswitch; + else : + printError("output는 d, o, s만 가능합니다."); + exit; + endif; + endif; + if(empty($default_fetch_limit)) : + printError("epg2xml.json 파일의 default_fetch_limit항목이 없습니다."); + exit; + else : + if(in_array($default_fetch_limit, array(1, 2, 3, 4, 5, 6, 7))) : + $period = $default_fetch_limit; + else : + printError("default_fetch_limit는 1, 2, 3, 4, 5, 6, 7만 가능합니다."); + exit; + endif; + endif; + if(is_null($default_icon_url) == True) : + printError("epg2xml.json 파일의 default_icon_url항목이 없습니다."); + exit; + else : + $IconUrl = $default_icon_url; + endif; + if(empty($default_rebroadcast)) : + printError("epg2xml.json 파일의 default_rebroadcast항목이 없습니다."); + exit; + else : + if(in_array($default_rebroadcast, array("y", "n"))) : + $addrebroadcast = $default_rebroadcast; + else : + printError("default_rebroadcast는 y, n만 가능합니다."); + exit; + endif; + endif; + if(empty($default_episode)) : + printError("epg2xml.json 파일의 default_episode항목이 없습니다."); + exit; + else : + if(in_array($default_episode, array("y", "n"))) : + $addepisode = $default_episode; + else : + printError("default_episode는 y, n만 가능합니다."); + exit; + endif; + endif; + if(empty($default_verbose)) : + printError("epg2xml.json 파일의 default_verbose항목이 없습니다."); + exit; + else : + if(in_array($default_verbose, array("y", "n"))) : + $addverbose = $default_verbose; + else : + printError("default_verbose는 y, n만 가능합니다."); + exit; + endif; + endif; + if(empty($default_xmltvns)) : + printError("epg2xml.json 파일의 default_xmltvns항목이 없습니다."); + exit; + else : + if(in_array($default_xmltvns, array("y", "n"))) : + $addxmltvns = $default_xmltvns; + else : + printError("default_xmltvns는 y, n만 가능합니다."); + exit; + endif; + endif; + } + catch(Exception $e) { + printError($e->getMessage()); + exit; + } + endif; +} +catch(Exception $e) { + printError($e->getMessage()); + exit; +} + +if(php_sapi_name() != "cli"): + if(isset($_GET['h']) || isset($_GET['help']))://도움말 출력 + header("Content-Type: text/plain; charset=utf-8"); + print($help); + exit; + elseif(isset($_GET['v'])|| isset($_GET['version']))://버전 정보 출력 + header("Content-Type: text/plain; charset=utf-8"); + printf("epg2xml.php version : %s\n", VERSION); + exit; + endif; +else : + if((isset($args['h']) && $args['h'] === False) || (isset($args['help']) && $args['help'] === False))://도움말 출력 + printf($help); + exit; + elseif((isset($args['v']) && $args['v'] === False) || (isset($args['version']) && $args['version'] === False))://버전 정보 출력 + printf("epg2xml.php version : %s\n", VERSION); + exit; + endif; +endif; if($output == "display") : $fp = fopen('php://output', 'w+'); if ($fp === False) : @@ -261,7 +298,7 @@ elseif($output == "file") : exit; endif; elseif($output == "socket") : - if($default_xml_socket) : + if($default_xml_socket && php_sapi_name() != "cli") : $default_xml_socket = "unix://".$default_xml_socket; $fp = @fsockopen($default_xml_socket, -1, $errno, $errstr, 30); if ($fp === False) : @@ -280,4 +317,1467 @@ elseif($output == "socket") : exit; endif; endif; + +function getEPG() { + $fp = $GLOBALS['fp']; + $MyISP = $GLOBALS['MyISP']; + $MyChannels = $GLOBALS['MyChannels']; + $Channelfile = __DIR__."/Channel.json"; + $IconUrl = ""; + $ChannelInfos = array(); + try { + $f = @file_get_contents($Channelfile); + if($f === False) : + printError("Channel.json.".JSON_FILE_ERROR); + exit; + else : + try { + $Channeldatajson = json_decode($f, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception("Channel.".JSON_SYNTAX_ERROR); + } + catch(Exception $e) { + printError($e->getMessage()); + exit; + } + endif; + } + catch(Exception $e) { + printError($e->getMessage()); + exit; + } +//My Channel 정의 + $MyChannelInfo = array(); + if($MyChannels) : + $MyChannelInfo = array_map('trim',explode(',', $MyChannels)); + endif; + if(php_sapi_name() != "cli" && $GLOBALS['default_output'] == "d") header("Content-Type: application/xml; charset=utf-8"); + fprintf($fp, "\n"); + fprintf($fp, "\n\n"); + fprintf($fp, "\n", VERSION); + + foreach ($Channeldatajson as $Channeldata) : //Get Channel & Print Channel info + if(in_array($Channeldata['Id'], $MyChannelInfo)) : + $ChannelId = $Channeldata['Id']; + $ChannelName = htmlspecialchars($Channeldata['Name'], ENT_XML1); + $ChannelSource = $Channeldata['Source']; + $ChannelServiceId = $Channeldata['ServiceId']; + $ChannelIconUrl = htmlspecialchars($Channeldata['Icon_url'], ENT_XML1); + if($MyISP != "ALL" && $Channeldata[$MyISP.'Ch'] != Null): + $ChannelInfos[] = array($ChannelId, $ChannelName, $ChannelSource, $ChannelServiceId); + $Channelnumber = $Channeldata[$MyISP.'Ch']; + $ChannelISPName = htmlspecialchars($Channeldata[$MyISP." Name"], ENT_XML1); + fprintf($fp, " \n", $ChannelId); + fprintf($fp, " %s\n", $ChannelName); + fprintf($fp, " %s\n", $ChannelISPName); + fprintf($fp, " %s\n", $Channelnumber); + fprintf($fp, " %s\n", $Channelnumber." ".$ChannelISPName); + if($IconUrl) : + fprintf($fp, " \n", $IconUrl, $ChannelId); + else : + fprintf($fp, " \n", $ChannelIconUrl); + endif; + fprintf($fp, " \n"); + elseif($MyISP == "ALL"): + $ChannelInfos[] = array($ChannelId, $ChannelName, $ChannelSource, $ChannelServiceId); + fprintf($fp, " \n", $ChannelId); + fprintf($fp, " %s\n", $ChannelName); + if($IconUrl) : + fprintf($fp, " \n", $IconUrl, $ChannelId); + else : + fprintf($fp, " \n", $ChannelIconUrl); + endif; + fprintf($fp, " \n"); + endif; + endif; + endforeach; + // Print Program Information + foreach ($ChannelInfos as $ChannelInfo) : + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ChannelSource = $ChannelInfo[2]; + $ChannelServiceId = $ChannelInfo[3]; + if($GLOBALS['debug']) printLog($ChannelName.' 채널 EPG 데이터를 가져오고 있습니다'); + if($ChannelSource == 'EPG') : + GetEPGFromEPG($ChannelInfo); + elseif($ChannelSource == 'KT') : + GetEPGFromKT($ChannelInfo); + elseif($ChannelSource == 'LG') : + GetEPGFromLG($ChannelInfo); + elseif($ChannelSource == 'SK') : + GetEPGFromSK($ChannelInfo); + elseif($ChannelSource == 'SKB') : + GetEPGFromSKB($ChannelInfo); + elseif($ChannelSource == 'SKY') : + GetEPGFromSKY($ChannelInfo); + elseif($ChannelSource == 'NAVER') : + GetEPGFromNaver($ChannelInfo); + elseif($ChannelSource == 'ISCS') : + GetEPGFromIscs($ChannelInfo); + elseif($ChannelSource == 'HCN') : + GetEPGFromHcn($ChannelInfo); + elseif($ChannelSource == 'POOQ') : + GetEPGFromPooq($ChannelInfo); + elseif($ChannelSource == 'EVERYON') : + GetEPGFromEveryon($ChannelInfo); + elseif($ChannelSource == 'MBC') : + GetEPGFromMbc($ChannelInfo); + elseif($ChannelSource == 'MIL'): + GetEPGFromMil($ChannelInfo); + elseif($ChannelSource == 'IFM'): + GetEPGFromIfm($ChannelInfo); + elseif($ChannelSource == 'KBS'): + GetEPGFromKbs($ChannelInfo); + elseif($ChannelSource == 'ARIRANG'): + GetEPGFromArirang($ChannelInfo); + endif; + endforeach; + fprintf($fp, "\n"); +} + +// Get EPG data from epg.co.kr +function GetEPGFromEPG($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://211.43.210.10:88/epg-cgi/extern/cnm_guide_type_v070530.php"; + $day = date("Ymd", strtotime("+".($k - 1)." days")); + $params = array( + 'beforegroup' => '100', + 'checkchannel[]' => $ServiceId, + 'select_group' => '100', + 'start_date' => $day + ); + $params = http_build_query($params); + $method = "POST"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + $response = str_replace("charset=euc-kr", "charset=utf-8", $response); + $response = mb_convert_encoding($response, "UTF-8", "EUC-KR"); + $pattern = '/(.*)<\/td>/'; + $response = preg_replace_callback($pattern, function($matches) { return ''.htmlspecialchars($matches[1], ENT_NOQUOTES).'';}, $response); + $response = str_replace(array('</b>', '</a>', '<img', 'valign=top>','align=absmiddle>'), array('', '', '','>'), $response); + $dom = new DomDocument; + libxml_use_internal_errors(True); + if($dom->loadHTML($response)): + $xpath = new DomXPath($dom); + for($i = 2; $i < 5; $i++) : + $thisday = $day; + $query = "//table[contains(@style,'margin-bottom:30')][".$i."]//td[contains(@colspan,'2')]/following::td[1]/table[1]//td[2]"; + $programs = $xpath->query($query); + foreach($programs as $program) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $hour = $xpath->query("parent::*/parent::*/parent::*/parent::*/td[1]", $program)->item(0); + $hour = str_replace("시", "", trim($hour->nodeValue)); + $minute = $xpath->query("preceding-sibling::td[1]", $program)->item(0); + $minute = str_replace(array("[", "]"), array("",""), trim($minute->nodeValue)); + $minute = substr($minute, -2); + $hour = $hour.":".$minute; + switch ($i) : + case 2 : + $hour = $hour." AM"; + break; + case 3 : + $hour = $hour." PM"; + break; + case 4 : + if($hour > 5 && $hour < 12) : + $hour = $hour." PM"; + elseif($hour <5 || $hour == 12) : + $hour = $hour." AM"; + $thisday = date("Ymd", strtotime($day." +1 days")); + endif; + break; + endswitch; + $startTime = date("YmdHis", strtotime($thisday." ".$hour)); + $pattern = '/^(.*?)\s*(?:<(.*)>)?\s*(?:\((재)\))?\s*(?:\(([\d,]+)회\)?)?$/'; + $programName = trim($program->nodeValue); + preg_match($pattern, $programName, $matches); + if ($matches != NULL) : + if(isset($matches[1])) $programName = trim($matches[1]) ?: ""; + if(isset($matches[2])) $subprogramName = trim($matches[2]) ?: ""; + if(isset($matches[3])) $rebroadcast = $matches[3] ? True : False; + if(isset($matches[4])) $episode = $matches[4] ?: ""; + endif; + $images = $program->getElementsByTagName('img'); + foreach($images as $image): + preg_match('/.*schedule_([\d,]+)?.*/', $image->getAttribute('src'), $grade); + if($grade != NULL) $rating = $grade[1]; + endforeach; + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endforeach; + endfor; + else: + if($GLOBALS['debug']) printError($ChannelName.CONTENT_ERROR); + endif; + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; + epgzip($epginfo); +} + +// Get EPG data from KT +function GetEPGFromKT($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://tv.kt.com/tv/channel/pSchedule.asp"; + $day = date("Ymd", strtotime("+".($k - 1)." days")); + $params = array( + 'ch_type' => '1', + 'view_type' => '1', + 'service_ch_no' => $ServiceId, + 'seldate' => $day + ); + $params = http_build_query($params); + $method = "POST"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + $response = mb_convert_encoding($response, "HTML-ENTITIES", "EUC-KR"); + $dom = new DomDocument; + libxml_use_internal_errors(True); + if($dom->loadHTML($response)): + $xpath = new DomXPath($dom); + $query = "//tbody/tr"; + $rows = $xpath->query($query); + foreach($rows as $row) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $cells = $row->getElementsByTagName('td'); + $programs = array_map(null, iterator_to_array($xpath->query('p', $cells->item(1))), iterator_to_array($xpath->query('p', $cells->item(2))), iterator_to_array($xpath->query('p', $cells->item(3)))); + foreach($programs as $program): + $hour = trim($cells->item(0)->nodeValue); + $minute = trim($program[0]->nodeValue); + $startTime = date("YmdHis", strtotime($day.$hour.$minute."00")); + $programName = trim($program[1]->nodeValue); + $images = $program[1]->getElementsByTagName('img')->item(0); + preg_match('/([\d,]+)/', $images->getAttribute('alt'), $grade); + if($grade != NULL): + $rating = $grade[1]; + else: + $rating = 0; + endif; + $programName = str_replace("방송중 ", "", $programName); + $category = trim($program[2]->nodeValue); + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endforeach; + endforeach; + else : + if($GLOBALS['debug']) printError($ChannelName.CONTENT_ERROR); + endif; + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; + epgzip($epginfo); +} + +// Get EPG data from LG +function GetEPGFromLG($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://www.uplus.co.kr/css/chgi/chgi/RetrieveTvSchedule.hpi"; + $day = date("Ymd", strtotime("+".($k - 1)." days")); + $params = array( + 'chnlCd' => $ServiceId, + 'evntCmpYmd' => $day + ); + $params = http_build_query($params); + $method = "POST"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + $response = ''.$response; + $response = mb_convert_encoding($response, "UTF-8", "EUC-KR"); + $response = str_replace(array('<재>', ' [..', ' (..'), array('<재>', '', ''), $response); + $dom = new DomDocument; + libxml_use_internal_errors(True); + if($dom->loadHTML($response)): + $xpath = new DomXPath($dom); + $query = "//div[@class='tblType list']/table/tbody/tr"; + $rows = $xpath->query($query); + foreach($rows as $row) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $cells = $row->getElementsByTagName('td'); + $startTime = date("YmdHis", strtotime($day." ".trim($cells->item(0)->nodeValue))); + $programName = trim($cells->item(1)->childNodes->item(0)->nodeValue); + $pattern = '/(<재>)?\s?(?:\[.*?\])?(.*?)(?:\[(.*)\])?\s?(?:\(([\d,]+)회\))?$/'; + preg_match($pattern, $programName, $matches); + if ($matches != NULL) : + if(isset($matches[2])) $programName = trim($matches[2]) ?: ""; + if(isset($matches[3])) $subprogramName = trim($matches[3]) ?: ""; + if(isset($matches[4])) $episode = trim($matches[4]) ?: ""; + if(isset($matches[1])) $rebroadcast = trim($matches[1]) ? True: False; + endif; + $category = trim($cells->item(2)->nodeValue); + $spans = $cells->item(1)->getElementsByTagName('span'); + $rating = trim($spans->item(1)->nodeValue)=="All" ? 0 : trim($spans->item(1)->nodeValue); + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endforeach; + else : + if($GLOBALS['debug']) printError($ChannelName.CONTENT_ERROR); + endif; + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; + epgzip($epginfo); +} + +// Get EPG data from SK +function GetEPGFromSK($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $today = date("Ymd"); + $lastday = date("Ymd", strtotime("+".($GLOBALS['period'] - 1)." days")); + $url = "http://m.btvplus.co.kr/Common/Inc/IFGetData.asp"; + $params = array( + 'variable' => 'IF_LIVECHART_DETAIL', + 'pcode' => '|^|start_time='.$today.'00|^|end_time='.$lastday.'24|^|svc_id='.$ServiceId + ); + $params = http_build_query($params); + $method = "POST"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + try { + $data = json_decode($response, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR); + if($data['channel'] == NULL) : + if($GLOBALS['debug']) : + printError($ChannelName.CHANNEL_ERROR); + endif; + else : + $programs = $data['channel']['programs']; + foreach ($programs as $program) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $pattern = '/^(.*?)(?:\s*[\(<]([\d,회]+)[\)>])?(?:\s*<([^<]*?)>)?(\((재)\))?$/'; + preg_match($pattern, str_replace('...', '>', $program['programName']), $matches); + if ($matches != NULL) : + if(isset($matches[1])) $programName = trim($matches[1]) ?: ""; + if(isset($matches[3])) $subprogramName = trim($matches[3]) ?: ""; + if(isset($matches[2])) $episode = str_replace("회", "", $matches[2]) ?: ""; + if(isset($matches[5])) $rebroadcast = $matches[5] ? True : False; + endif; + $startTime = date("YmdHis",$program['startTime']/1000); + $endTime = date("YmdHis",$program['endTime']/1000); + $desc = $program['synopsis'] ?: ""; + $actors =trim(str_replace('...','',$program['actorName']), ', ') ?: ""; + $producers = trim(str_replace('...','',$program['directorName']), ', ') ?: ""; + if ($program['mainGenreName'] != NULL) : + $category = $program['mainGenreName']; + else: + $category = ""; + endif; + $rating = $program['ratingCd'] ?: 0; + $programdata = array( + 'channelId'=> $ChannelId, + 'startTime' => $startTime, + 'endTime' => $endTime, + 'programName' => $programName, + 'subprogramName'=> $subprogramName, + 'desc' => $desc, + 'actors' => $actors, + 'producers' => $producers, + 'category' => $category, + 'episode' => $episode, + 'rebroadcast' => $rebroadcast, + 'rating' => $rating + ); + writeProgram($programdata); + usleep(1000); + endforeach; + endif; + } catch(Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } +} + +// Get EPG data from SKB +function GetEPGFromSKB($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://m.skbroadband.com/content/realtime/Channel_List.do"; + $day = date("Ymd", strtotime("+".($k - 1)." days")); + $params = array( + 'key_depth2' => $ServiceId, + 'key_depth3' => $day + ); + $params = http_build_query($params); + $method = "POST"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + $response = str_replace('charset="euc-kr"', 'charset="utf-8"', $response); + $response = mb_convert_encoding($response, "UTF-8", "EUC-KR"); + $response = preg_replace('//is', '', $response); + $response = preg_replace('/<\/span>/is', '', $response); + $pattern = '/(.*)<\/span>/'; + $response = preg_replace_callback($pattern, function($matches) { return ''.htmlspecialchars($matches[1], ENT_NOQUOTES).'';}, $response); + $dom = new DomDocument; + libxml_use_internal_errors(True); + if($dom->loadHTML($response)): + $xpath = new DomXPath($dom); + $query = "//span[@class='caption' or @class='explan' or @class='fullHD' or @class='UHD' or @class='nowon']"; + $spans = $xpath->query($query); + foreach($spans as $span) : + $span->parentNode->removeChild( $span); + endforeach; + $query = "//div[@id='dawn']/ul/li"; + $rows = $xpath->query($query); + foreach($rows as $row) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $cells = $row->getElementsByTagName('span'); + $startTime = $cells->item(0)->nodeValue ?: ""; + $startTime = date("YmdHis", strtotime($day." ".$startTime)); + $programName = trim($cells->item(2)->nodeValue) ?: ""; + $pattern = '/^(.*?)(\(([\d,]+)회\))?(<(.*)>)?(\((재)\))?$/'; + preg_match($pattern, $programName, $matches); + if ($matches != NULL) : + if(isset($matches[1])) $programName = trim($matches[1]) ?: ""; + if(isset($matches[5])) $subprogramName = trim($matches[5]) ?: ""; + if(isset($matches[3])) $episode = $matches[3] ?: ""; + if(isset($matches[7])) $rebroadcast = $matches[7] ? True : False; + endif; + if($cells->length > 3) $rating = str_replace('세', '', $cells->item(3)->nodeValue) ?: 0; + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endforeach; + else : + if($GLOBALS['debug']) printError($ChannelName.CONTENT_ERROR); + endif; + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; + epgzip($epginfo); +} + +// Get EPG data from SKY +function GetEPGFromSKY($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://www.skylife.co.kr/channel/epg/channelScheduleListJson.do"; + $day = date("Y-m-d", strtotime("+".($k - 1)." days")); + $params = array( + 'area' => 'in', + 'inFd_channel_id' => $ServiceId, + 'inairdate' => $day, + 'indate_type' => 'now' + ); + $params = http_build_query($params); + $method = "POST"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + try { + $data = json_decode($response, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR); + if(count($data['scheduleListIn']) == 0) : + if($GLOBALS['debug']) : + printError($ChannelName.CHANNEL_ERROR); + endif; + else : + $programs = $data['scheduleListIn']; + foreach($programs as $program) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $programName = htmlspecialchars_decode($program['program_name']) ?: ""; + $subprogramName = str_replace(array('lt;', 'gt;', 'amp;'), array('<', '>', '&'),$program['program_subname']) ?: ""; + preg_match('/(.*) \(?(\d+부)\)?/', $programName, $matches); + if ($matches != NULL) : + if(isset($matches[1])) $programName = trim($matches[1]) ?: ""; + if(isset($matches[2])) $subprogramName = trim($matches[2]." ".$subprogramName) ?: ""; + endif; + $startTime = $program['starttime']; + $endTime = $program['endtime']; + $actors = trim(str_replace('...', '',$program['cast']), ', ') ?: ""; + $producers = trim(str_replace('...', '',$program['dirt']), ', ') ?: ""; + $description = str_replace(array('lt;', 'gt;', 'amp;'), array('<', '>', '&'),$program['description']) ?: ""; + $summary = str_replace(array('lt;', 'gt;', 'amp;'), array('<', '>', '&'),$program['summary']) ?: ""; + $desc = $description ?: ""; + if($desc) : + if($summary): + $desc = $desc."\n".$summary; + endif; + else : + $desc = $summary; + endif; + $category = $program['program_category1']; + $episode = $program['episode_id'] ?: ""; + $rebroadcast = $program['rebroad']== "Y" ? True : False; + $rating = $program['grade'] ?: 0; + $programdata = array( + 'channelId'=> $ChannelId, + 'startTime' => $startTime, + 'endTime' => $endTime, + 'programName' => $programName, + 'subprogramName'=> $subprogramName, + 'desc' => $desc, + 'actors' => $actors, + 'producers' => $producers, + 'category' => $category, + 'episode' => $episode, + 'rebroadcast' => $rebroadcast, + 'rating' => $rating + ); + writeProgram($programdata); + usleep(1000); + endforeach; + endif; + } catch(Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; +} + +// Get EPG data from Naver +function GetEPGFromNaver($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + $totaldate = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "https://search.naver.com/p/csearch/content/batchrender_ssl.nhn"; + $day = date("Ymd", strtotime("+".($k - 1)." days")); + $totaldate[] = $day; + endforeach; + $params = array( + '_callback' => 'epg', + 'fileKey' => 'single_schedule_channel_day', + 'pkid' => '66', + 'u1' => 'single_schedule_channel_day', + 'u2' => join(",", $totaldate), + 'u3' => $day, + 'u4' => $GLOBALS['period'], + 'u5' => $ServiceId, + 'u6' => 1, + 'u7' => $ChannelName."편성표", + 'u8' => $ChannelName."편성표", + 'where' => 'nexearch' + ); + $params = http_build_query($params); + $method = "GET"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + try { + $response = str_replace('epg( ', '', $response ); + $response = substr($response, 0, strlen($response)-2); + $response = preg_replace("/\/\*.*?\*\//","",$response); + $data = json_decode($response, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR); + if($data['displayDates'][0]['count'] == 0) : + if($GLOBALS['debug']) : + printError($ChannelName.CHANNEL_ERROR); + endif; + else : + for($i = 0; $i < count($data['displayDates']); $i++) : + for($j = 0; $j < 24; $j++) : + foreach($data['schedules'][$j][$i] as $program) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $startTime = date("YmdHis", strtotime($data['displayDates'][$i]['date']." ".$program['startTime'])); + $programName = htmlspecialchars_decode(trim($program['title']), ENT_XML1); + $episode = str_replace("회","", $program['episode']); + $rebroadcast = $program['isRerun'] ? True : False; + $rating = $program['grade']; + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endforeach; + endfor; + endfor; + endif; + } catch(Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + epgzip($epginfo); +} + +// Get EPG data from Iscs +function GetEPGFromIscs($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + $epginfo2 = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $istomorrow = False; + $url = "http://m.iscs.co.kr/sub/02/data.asp"; + $day = date("Y-m-d", strtotime("+".($k - 1)." days")); + $params = array( + 'Exec_Mode' => 'view', + 'Source_Id' => $ServiceId, + 'Ch_Day' => $day + ); + $params = http_build_query($params); + $method = "POST"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + try { + $data = json_decode($response, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR); + if(count($data['total']) == 0) : + if($GLOBALS['debug']) : + printError($ChannelName.CHANNEL_ERROR); + endif; + else : + $programs = $data['list']; + foreach($programs as $program) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + if(startsWith($program['Time'], '1') || startsWith($program['Time'], '2')) $istomorrow = True; + if(startsWith($program['Time'], '0') && $istomorrow == True) : + $startTime = date("YmdHis", strtotime($day." +1 days"." ".$program['Time'])); + else : + $startTime = date("YmdHis", strtotime($day." ".$program['Time'])); + endif; + $pattern = '/^(.*?)(?:\(([\d,]+)회\))?(?:\((재)\))?$/'; + preg_match($pattern, trim($program['Pg_Name']), $matches); + if ($matches != NULL) : + if(isset($matches[1])) $programName = trim($matches[1]) ?: ""; + if(isset($matches[2])) $episode = $matches[2] ?: ""; + if(isset($matches[3])) $rebroadcast = $matches[3] ? True : False; + endif; + if($program['Rating'] == '모든연령'): + $rating = 0; + else: + $rating = str_replace("세이상","", $program['Rating']); + endif; + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endforeach; + endif; + } catch(Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; + $epginfo= array_map("unserialize", array_unique(array_map("serialize", $epginfo))); + epgzip($epginfo); +} + +// Get EPG data from Hcn +function GetEPGFromHcn($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://m.hcn.co.kr/sch_ScheduleList.action"; + $day = date("Y-m-d", strtotime("+".($k - 1)." days")); + $params = array( + 'ch_id' => $ServiceId, + 'onairdate' => $day, + '_' => _microtime() + ); + $params = http_build_query($params); + $method = "GET"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + $response = mb_convert_encoding($response, "HTML-ENTITIES", "UTF-8"); + $dom = new DomDocument; + libxml_use_internal_errors(True); + if($dom->loadHTML($response)): + $xpath = new DomXPath($dom); + $query = "//li[@class!='noData']"; + $rows = $xpath->query($query); + foreach($rows as $row) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $startTime = trim($xpath->query("span[@class='progTime']", $row)->item(0)->nodeValue) ?: ""; + $startTime = date("YmdHis", strtotime($day." ".$startTime)); + $programName = trim($xpath->query("span[@class='progTitle']", $row)->item(0)->nodeValue) ?: ""; + $images = $row->getElementsByTagName('img'); + foreach($images as $image): + preg_match('/re\.png/', $image->getAttribute('src'), $rebroad); + if($rebroad != NULL) $rebroadcast = True; + preg_match('/.*plus([\d,]+)\.png/', $image->getAttribute('src'), $grade); + if($grade != NULL) $rating = $grade[1]; + endforeach; + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endforeach; + else : + if($GLOBALS['debug']) printError($ChannelName.CONTENT_ERROR); + endif; + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; + epgzip($epginfo); +} + +// Get EPG data from POOQ +function GetEPGFromPooq($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $today = date("Ymd"); + $lastday = date("Ymd", strtotime("+".($GLOBALS['period'])." days")); + $url = "https://wapie.pooq.co.kr/v1/epgs30/".$ServiceId."/"; + $params = array( + 'deviceTypeId'=> 'pc', + 'marketTypeId'=> 'generic', + 'apiAccessCredential'=> 'EEBE901F80B3A4C4E5322D58110BE95C', + 'offset'=> '0', + 'limit'=> '1000', + 'startTime'=> date("Y/m/d", strtotime($today)).' 00:00', + 'endTime'=> date("Y/m/d", strtotime($lastday)).' 00:00' + ); + foreach(range(1, $GLOBALS['period']) as $k) : + $day = date("Y-m-d", strtotime("+".($k - 1)." days")); + $date_list[] = $day; + endforeach; + $params = http_build_query($params); + $method = "GET"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + try { + $data = json_decode($response, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR); + if($data['result']['count'] == 0) : + if($GLOBALS['debug']) : + printError($ChannelName.CHANNEL_ERROR); + endif; + else : + $programs = $data['result']['list']; + foreach ($programs as $program) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + if(in_array($program['startDate'] , $date_list)) : + $startTime = $program['startDate']." ".$program['startTime']; + $startTime = date("YmdHis", strtotime($startTime)); + $pattern = '/^(.*?)(?:([\d,]+)회)?(?:\((재)\))?$/'; + $programName = str_replace("\r\n", "", $program['programTitle']); + preg_match($pattern, $programName, $matches); + if($matches !== NULL) : + if(isset($matches[1])) $programName = trim($matches[1]) ?: ""; + if(isset($matches[2])) $episode = trim($matches[2]) ?: ""; + if(isset($matches[3])) $rebroadcast = $matches[3] ? True : False; + endif; + if($program['programStaring']) $actors = trim($program['programStaring'], ','); + if($program['programSummary']) $desc = trim($program['programSummary']); + $rating = $program['age']; + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endif; + endforeach; + endif; + } catch(Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + epgzip($epginfo); +} + +# Get EPG data from EVERYON +function GetEPGFromEveryon($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://www.everyon.tv/mobile/schedule_ch.ptv"; + $day = date("Ymd", strtotime("+".($k - 1)." days")); + $params = array( + 'chid' => $ServiceId, + 'date' => $day + ); + $params = http_build_query($params); + $method = "GET"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + $response = mb_convert_encoding($response, "HTML-ENTITIES", "UTF-8"); + $dom = new DomDocument; + libxml_use_internal_errors(True); + if($dom->loadHTML($response)): + $xpath = new DomXPath($dom); + $query = "//ul[@class='lt2']"; + $rows = $xpath->query($query); + foreach($rows as $row) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $startTime = trim($xpath->query("li[@class='pr_time']", $row)->item(0)->nodeValue) ?: ""; + + $startTime = date("YmdHis", strtotime($day." ".$startTime)); + $programName = trim($xpath->query("li[@class='pr_name']", $row)->item(0)->nodeValue) ?: ""; + if(in_array($programName, array("편성표가 곧 등록될 예정입니다.", "편성 정보가 없습니다."))) continue; + $grade = trim($xpath->query("li[contains(@class,'img')]", $row)->item(0)->getAttribute('class')); + $rating = str_replace(array("img ","c", "all"), array("", "", "0"), $grade); + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endforeach; + else : + if($GLOBALS['debug']) printError($ChannelName.CONTENT_ERROR); + endif; + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; + epgzip($epginfo); +} + +// Get EPG data from MBC +function GetEPGFromMbc($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $dayofweek = array('일', '월', '화', '수', '목', '금', '토'); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://miniunit.imbc.com/Schedule"; + $day = date("Y-m-d", strtotime("+".($k - 1)." days")); + $params = array( + 'rtype' => 'json' + ); + $params = http_build_query($params); + $method = "GET"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + try { + $data = json_decode($response, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR); + if(count($data['Programs']) == 0) : + if($GLOBALS['debug']) : + printError($ChannelName.CHANNEL_ERROR); + endif; + else : + $programs = $data['Programs']; + foreach($programs as $program) : + if($program['Channel'] == "CHAM" && $program['LiveDays'] == $dayofweek[date("w", strtotime($day))]) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $pattern = '/^(.*?)(\(재\))?$/'; + preg_match($pattern, htmlspecialchars_decode($program['ProgramTitle']), $matches); + if ($matches != NULL) : + $programName = $matches[1]; + if(isset($matches[2])) $rebroadcast = $matches[2] ? True : False; + endif; + $startTime = $day." ".$program['StartTime']; + $startTime = date("YmdHis", strtotime($startTime)); + $endTime = date("YmdHis", strtotime("+".$program['RunningTime']." minutes", strtotime($startTime))); + $category = "음악"; + $programdata = array( + 'channelId'=> $ChannelId, + 'startTime' => $startTime, + 'endTime' => $endTime, + 'programName' => $programName, + 'subprogramName'=> $subprogramName, + 'desc' => $desc, + 'actors' => $actors, + 'producers' => $producers, + 'category' => $category, + 'episode' => $episode, + 'rebroadcast' => $rebroadcast, + 'rating' => $rating + ); + writeProgram($programdata); + usleep(1000); + endif; + endforeach; + endif; + } catch(Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; +} + +// Get EPG data from MIL +function GetEPGFromMil($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://radio.dema.mil.kr/web/fm/quick/ajaxTimetableList.do"; + $day = date("Y-m-d", strtotime("+".($k - 1)." days")); + $params = array( + 'program_date' => date("Ymd", strtotime($day)) + ); + $params = http_build_query($params); + $method = "GET"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + try { + $data = json_decode($response, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR); + if(count($data['resultList']) == 0) : + if($GLOBALS['debug']) : + printError($ChannelName.CHANNEL_ERROR); + endif; + else : + $programs = $data['resultList']; + foreach($programs as $program) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $pattern = '/^(.*?)(\(재\))?$/'; + preg_match($pattern, htmlspecialchars_decode($program['program_title']), $matches); + if ($matches != NULL) : + $programName = $matches[1]; + if(isset($matches[2])) $rebroadcast = $matches[2] ? True : False; + endif; + $subprogramName = htmlspecialchars_decode($program['program_subtitle']); + $startTime = $day." ".$program['program_time']; + $startTime = date("YmdHis", strtotime($startTime)); + $endTime = $day." ".$program['program_end_time']; + $endTime = date("YmdHis", strtotime($endTime)); + $actors = htmlspecialchars_decode($program['movie_actor']); + $producers = htmlspecialchars_decode($program['movie_director']); + $programdata = array( + 'channelId'=> $ChannelId, + 'startTime' => $startTime, + 'endTime' => $endTime, + 'programName' => $programName, + 'subprogramName'=> $subprogramName, + 'desc' => $desc, + 'actors' => $actors, + 'producers' => $producers, + 'category' => $category, + 'episode' => $episode, + 'rebroadcast' => $rebroadcast, + 'rating' => $rating + ); + writeProgram($programdata); + usleep(1000); + endforeach; + endif; + } catch(Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; +} + +// Get EPG data from IFM +function GetEPGFromIfm($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $dayofweek = array('1', '2', '3', '4', '5', '6', '7'); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://mapp.itvfm.co.kr/hyb/front/selectHybPgmList.do"; + $day = date("Y-m-d", strtotime("+".($k - 1)." days")); + $params = array( + 'outDay' => $dayofweek[(date("w", strtotime($day)+1))%7], + 'viewDt' => $day + ); + $params = http_build_query($params); + $method = "GET"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + try { + $data = json_decode($response, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR); + if(count($data['hybMusicInfoList']) == 0) : + if($GLOBALS['debug']) : + printError($ChannelName.CHANNEL_ERROR); + endif; + else : + $programs = $data['hybMusicInfoList']; + foreach($programs as $program) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $programName = htmlspecialchars_decode($program['pgmTitle']) ?: ""; + $startTime = $day." ".$program['pgmStime']; + $startTime = date("YmdHis", strtotime($startTime)); + $endTime = $day." ".$program['pgmEtime']; + $endTime = date("YmdHis", strtotime($endTime)); + $actors = htmlspecialchars_decode($program['pgmDj']); + $producers = htmlspecialchars_decode($program['pgmPd']); + $programdata = array( + 'channelId'=> $ChannelId, + 'startTime' => $startTime, + 'endTime' => $endTime, + 'programName' => $programName, + 'subprogramName'=> $subprogramName, + 'desc' => $desc, + 'actors' => $actors, + 'producers' => $producers, + 'category' => $category, + 'episode' => $episode, + 'rebroadcast' => $rebroadcast, + 'rating' => $rating + ); + writeProgram($programdata); + usleep(1000); + endforeach; + endif; + } catch(Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; +} + +// Get EPG data from KBS +function GetEPGFromKbs($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://world.kbs.co.kr/include/wink/_ajax_schedule.php"; + $day = date("Y-m-d", strtotime("+".($k - 1)." days")); + $params = array( + 'channel'=>'wink_11' + ); + $params = http_build_query($params); + $method = "GET"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + try { + $data = json_decode($response, TRUE); + if(json_last_error() != JSON_ERROR_NONE) throw new Exception(JSON_SYNTAX_ERROR); + if(count($data['schedule']) == 0) : + if($GLOBALS['debug']) : + printError($ChannelName.CHANNEL_ERROR); + endif; + else : + $dom = new DomDocument; + libxml_use_internal_errors(True); + $dom->loadHTML($data['schedule']); + $xpath = new DomXPath($dom); + $query = "//li"; + $rows = $xpath->query($query); + foreach($rows as $row) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $cells = $row->getElementsByTagName('span'); + $startTime = $day." ".trim($cells->item(0)->childNodes->item(0)->nodeValue); + $startTime = date("YmdHis", strtotime($startTime)); + $programName = trim($cells->item(2)->childNodes->item(0)->nodeValue); + $programName = str_replace(array("[","]", " Broadcast"), array("", "", ""), $programName); + //ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + $epginfo[] = array($ChannelId, $startTime, $programName, $subprogramName, $desc, $actors, $producers, $category, $episode, $rebroadcast, $rating); + usleep(1000); + endforeach; + endif; + } catch(Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; + epgzip($epginfo); +} + +function GetEPGFromArirang($ChannelInfo) { + $ChannelId = $ChannelInfo[0]; + $ChannelName = $ChannelInfo[1]; + $ServiceId = $ChannelInfo[3]; + $epginfo = array(); + foreach(range(1, $GLOBALS['period']) as $k) : + $url = "http://www.arirang.com/Radio/Radio_Index.asp"; + $day = date("Y-m-d", strtotime("+".($k - 1)." days")); + $params = array(); + $params = http_build_query($params); + $method = "GET"; + try { + $response = getWeb($url, $params, $method); + if ($response === False && $GLOBALS['debug']) : + printError($ChannelName.HTTP_ERROR); + else : + $dom = new DomDocument; + libxml_use_internal_errors(True); + $response = mb_convert_encoding($response, "HTML-ENTITIES", "EUC-KR"); + if($dom->loadHTML($response)): + $xpath = new DomXPath($dom); + $dayofweek = date("w", strtotime($day)); + if($dayofweek == 0): + $query = "//table[@id='aIRSW_sun']/tr"; + elseif($dayofweek == 6): + $query = "//table[@id='aIRSW_sat']/tr"; + else : + $query = "//table[@id='aIRSW_week']/tr"; + endif; + $rows = $xpath->query($query); + foreach($rows as $row) : + $startTime = $endTime = $programName = $subprogramName = $desc = $actors = $producers = $category = $episode = ""; + $rebroadcast = False; + $rating = 0; + $time = $row->getElementsByTagName('th'); + $times = explode('~', trim($time->item(0)->nodeValue)); + $startTime = date("YmdHis", strtotime($day." ".$times[0])); + $endTime = date("YmdHis", strtotime($day." ".$times[1])); + $program = $row->getElementsByTagName('td'); + $pattern = '/^(.*?)(?:\((Re)\))?$/'; + preg_match($pattern, trim($program->item(0)->nodeValue), $matches); + if ($matches != NULL) : + $programName = $matches[1]; + if(isset($matches[2])) $rebroadcast = $matches[2] ? True : False; + endif; + $programdata = array( + 'channelId'=> $ChannelId, + 'startTime' => $startTime, + 'endTime' => $endTime, + 'programName' => $programName, + 'subprogramName'=> $subprogramName, + 'desc' => $desc, + 'actors' => $actors, + 'producers' => $producers, + 'category' => $category, + 'episode' => $episode, + 'rebroadcast' => $rebroadcast, + 'rating' => $rating + ); + writeProgram($programdata); + usleep(1000); + endforeach; + else : + if($GLOBALS['debug']) printError($ChannelName.CONTENT_ERROR); + endif; + endif; + } catch (Exception $e) { + if($GLOBALS['debug']) printError($e->getMessage()); + } + endforeach; +} + +# Zip epginfo +function epgzip($epginfo) { + $epg1 = current($epginfo); + array_shift($epginfo); + foreach($epginfo as $epg2): + $ChannelId = $epg1[0] ?: ""; + $startTime = $epg1[1] ?: ""; + $endTime = $epg2[1] ?: ""; + $programName = $epg1[2] ?: ""; + $subprogramName = $epg1[3] ?: ""; + $desc = $epg1[4] ?: ""; + $actors = $epg1[5] ?: ""; + $producers = $epg1[6] ?: ""; + $category = $epg1[7] ?: ""; + $episode = $epg1[8] ?: ""; + $rebroadcast = $rebroadcast = $epg1[9] ? True: False; + $rating = $epg1[10] ?: 0; + $programdata = array( + 'channelId'=> $ChannelId, + 'startTime' => $startTime, + 'endTime' => $endTime, + 'programName' => $programName, + 'subprogramName'=> $subprogramName, + 'desc' => $desc, + 'actors' => $actors, + 'producers' => $producers, + 'category' => $category, + 'episode' => $episode, + 'rebroadcast' => $rebroadcast, + 'rating' => $rating + ); + writeProgram($programdata); + $epg1 = $epg2; + endforeach; +} + +function writeProgram($programdata) { + $fp = $GLOBALS['fp']; + $ChannelId = $programdata['channelId']; + $startTime = $programdata['startTime']; + $endTime = $programdata['endTime']; + $programName = trim(htmlspecialchars($programdata['programName'], ENT_XML1)); + $subprogramName = trim(htmlspecialchars($programdata['subprogramName'], ENT_XML1)); + preg_match('/(.*) \(?(\d+부)\)?/', $programName, $matches); + if ($matches != NULL) : + if(isset($matches[1])) $programName = trim($matches[1]) ?: ""; + if(isset($matches[2])) $subprogramName = trim($matches[2]." ".$subprogramName) ?: ""; + endif;// + if($programName == NULL): + $programName = $subprogramName; + endif; + $actors = htmlspecialchars($programdata['actors'], ENT_XML1); + $producers = htmlspecialchars($programdata['producers'], ENT_XML1); + $category = htmlspecialchars($programdata['category'], ENT_XML1); + $episode = $programdata['episode']; + if($episode) : + $episode_ns = (int)$episode - 1; + $episode_ns = '0' . '.' . $episode_ns . '.' . '0' . '/' . '0'; + $episode_on = $episode; + endif; + $rebroadcast = $programdata['rebroadcast']; + if($episode && $GLOBALS['addepisode'] == 'y') $programName = $programName." (".$episode."회)"; + if($rebroadcast == True && $GLOBALS['addrebroadcast'] == 'y') $programName = $programName." (재)"; + if($programdata['rating'] == 0) : + $rating = "전체 관람가"; + else : + $rating = sprintf("%s세 이상 관람가", $programdata['rating']); + endif; + if($GLOBALS['addverbose'] == 'y') : + $desc = $programName; + if($subprogramName) $desc = $desc."\n부제 : ".$subprogramName; + if($rebroadcast == True && $GLOBALS['addrebroadcast'] == 'y') $desc = $desc."\n방송 : 재방송"; + if($episode) $desc = $desc."\n회차 : ".$episode."회"; + if($category) $desc = $desc."\n장르 : ".$category; + if($actors) $desc = $desc."\n출연 : ".trim($actors); + if($producers) $desc = $desc."\n제작 : ".trim($producers); + $desc = $desc."\n등급 : ".$rating; + else: + $desc = ""; + endif; + if($programdata['desc']) $desc = $desc."\n".htmlspecialchars($programdata['desc'], ENT_XML1); + $desc = preg_replace('/ +/', ' ', $desc); + $contentTypeDict = array( + '교양' => 'Arts / Culture (without music)', + '만화' => 'Cartoons / Puppets', + '교육' => 'Education / Science / Factual topics', + '취미' => 'Leisure hobbies', + '드라마' => 'Movie / Drama', + '영화' => 'Movie / Drama', + '음악' => 'Music / Ballet / Dance', + '뉴스' => 'News / Current affairs', + '다큐' => 'Documentary', + '라이프' => 'Documentary', + '시사/다큐' => 'Documentary', + '연예' => 'Show / Game show', + '스포츠' => 'Sports', + '홈쇼핑' => 'Advertisement / Shopping' + ); + $contentType = ""; + foreach($contentTypeDict as $key => $value) : + if(!(strpos($category, $key) === False)) : + $contentType = $value; + endif; + endforeach; + fprintf($fp, " \n", $startTime, $endTime, $ChannelId); + fprintf($fp, " %s\n", $programName); + if($subprogramName) : + fprintf($fp, " %s\n", $subprogramName); + endif; + if($GLOBALS['addverbose']=='y') : + fprintf($fp, " %s\n", $desc); + if($actors || $producers): + fprintf($fp, " \n"); + if($actors) : + foreach(explode(',', $actors) as $actor): + if(trim($actor)) fprintf($fp, " %s\n", trim($actor)); + endforeach; + endif; + if($producers) : + foreach(explode(',', $producers) as $producer): + if(trim($producer)) fprintf($fp, " %s\n", trim($producer)); + endforeach; + endif; + fprintf($fp, " \n"); + endif; + endif; + if($category) fprintf($fp, " %s\n", $category); + if($contentType) fprintf($fp, " %s\n", $contentType); + if($episode && $GLOBALS['addxmltvns']=='y') fprintf($fp, " %s\n", $episode_ns); + if($episode && $GLOBALS['addxmltvns']!='y') fprintf($fp, " %s\n", $episode_on); + if($rebroadcast) fprintf($fp, " \n"); + if($rating) : + fprintf($fp, " \n"); + fprintf($fp, " %s\n", $rating); + fprintf($fp, " \n"); + endif; + fprintf($fp, " \n"); +} + +function getWeb($url, $params, $method) { + $ch = curl_init(); + if($method == "GET"): + $url = $url."?".$params; + elseif($method == "POST"): + curl_setopt ($ch, CURLOPT_POST, True); + curl_setopt ($ch, CURLOPT_POSTFIELDS, $params); + endif; + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, True); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $GLOBALS['timeout']); + curl_setopt($ch, CURLOPT_HEADER, False); + curl_setopt($ch, CURLOPT_FAILONERROR, True); + curl_setopt($ch, CURLOPT_USERAGENT, $GLOBALS['ua']); + $response = curl_exec($ch); + if(curl_error($ch) && $GLOBALS['debug']) printError($url." ".curl_error($ch)); + curl_close($ch); + return $response; +} + +function printLog($string) { + if(php_sapi_name() == "cli"): + fwrite(STDERR, $string."\n"); + else: + header("Content-Type: text/plain; charset=utf-8"); + print($string."\n"); + endif; +} + +function printError($string) { + if(php_sapi_name() == "cli"): + fwrite(STDERR, "Error : ".$string."\n"); + else: + header("Content-Type: text/plain; charset=utf-8"); + print("Error : ".$string."\n"); + endif; +} + +function _microtime() { + list($usec, $sec) = explode(" ", microtime()); + return ($sec.(int)($usec*1000)); +} + +function startsWith($haystack, $needle) { + return !strncmp($haystack, $needle, strlen($needle)); +} + +//사용방법 +$usage = << diff --git a/epg2xml.json b/epg2xml.json index a0d21a5..ccd1efd 100644 --- a/epg2xml.json +++ b/epg2xml.json @@ -4,7 +4,7 @@ "###_COMMENT_###" : "사용하는 ISP 선택 (ALL, KT, LG, SK)", "MyISP": "ALL", "###_COMMENT_###" : "### # My Channel EPG 정보 가져오는 채널 ID ###", - "###_COMMENT_###" : "채널 ID를 , 로 구분. , 상의 간격 유무 관계없음 ", + "###_COMMENT_###" : "### 채널 ID를 , 로 구분하여 입력 ###", "MyChannels" : "60, 110, 111, 122, 164", "###_COMMENT_###" : "output 셋팅은 (d, o, s) 셋중에 하나로 선택한다", "###_COMMENT_###" : " d - EPG 정보 화면 출력", @@ -14,15 +14,17 @@ "###_COMMENT_###" : "### TV channel icon url (ex : http://www.example.com/Channels) ###", "default_icon_url": "", "###_COMMENT_###" : "### 제목에 재방송 정보 출력 ###", - "default_rebroadcast": "y", + "default_rebroadcast": "n", "###_COMMENT_###" : "#### 제목에 회차정보 출력 ###", "default_episode" : "y", "###_COMMENT_###" : "### EPG 정보 추가 출력 ###", "default_verbose" : "y", + "###_COMMENT_###" : "### XMLTV_NS 정보 추가 출력 ###", + "default_xmltvns" : "n", "###_COMMENT_###" : "### epg 데이터 가져오는 기간으로 1에서 7까지 설정가능 ###", "default_fetch_limit" : "2", "###_COMMENT_###" : "### epg 저장시 기본 저장 이름 (ex: /home/tvheadend/xmltv.xml) ###", - "default_xml_file" : "/home1/wonipapa/public_html/epg2xml/xmltv.xml", + "default_xml_file" : "xmltv.xml", "###_COMMENT_###" : "### # External XMLTV 사용시 기본 소켓 이름 (ex: /home/tvheadend/xmltv.sock) ###", "default_xml_socket" : "xmltv.sock", "###_COMMENT_###" : "" diff --git a/epg2xml.php b/epg2xml.php index 08bb497..b96e080 100644 --- a/epg2xml.php +++ b/epg2xml.php @@ -1,301 +1,4 @@ #!/usr/bin/env php 2 ? 2 : $period; - else : - printError("default_fetch_limit는 1, 2, 3, 4, 5, 6, 7만 가능합니다."); - exit; - endif; - endif; - if(is_null($default_icon_url) == True) : - printError("epg2xml.json 파일의 default_icon_url항목이 없습니다."); - exit; - else : - $IconUrl = $default_icon_url; - endif; - if(empty($default_rebroadcast)) : - printError("epg2xml.json 파일의 default_rebroadcast항목이 없습니다."); - exit; - else : - if(in_array($default_rebroadcast, array("y", "n"))) : - $addrebroadcast = $default_rebroadcast; - else : - printError("default_rebroadcast는 y, n만 가능합니다."); - exit; - endif; - endif; - if(empty($default_episode)) : - printError("epg2xml.json 파일의 default_episode항목이 없습니다."); - exit; - else : - if(in_array($default_episode, array("y", "n"))) : - $addepisode = $default_episode; - else : - printError("default_episode는 y, n만 가능합니다."); - exit; - endif; - endif; - if(empty($default_verbose)) : - printError("epg2xml.json 파일의 default_verbose항목이 없습니다."); - exit; - else : - if(in_array($default_verbose, array("y", "n"))) : - $addverbose = $default_verbose; - else : - printError("default_verbose는 y, n만 가능합니다."); - exit; - endif; - endif; - } - catch(Exception $e) { - printError($e->getMessage()); - exit; - } - endif; - } - catch(Exception $e) { - printError($e->getMessage()); - exit; - } -endif; - -if($output == "display") : - $fp = fopen('php://output', 'w+'); - if ($fp === False) : - printError(DISPLAY_ERROR); - exit; - else : - try { - getEpg(); - fclose($fp); - } catch(Exception $e) { - if($GLOBALS['debug']) printError($e->getMessage()); - } - endif; -elseif($output == "file") : - if($default_xml_file) : - $fp = fopen($default_xml_file, 'w+'); - if ($fp === False) : - printError(FIEL_ERROR); - exit; - else : - try { - getEpg(); - fclose($fp); - } catch(Exception $e) { - if($GLOBALS['debug']) printError($e->getMessage()); - } - endif; - else : - printError("epg2xml.json 파일의 default_xml_file항목이 없습니다."); - exit; - endif; -elseif($output == "socket") : - if($default_xml_socket) : - $default_xml_socket = "unix://".$default_xml_socket; - $fp = @fsockopen($default_xml_socket, -1, $errno, $errstr, 30); - if ($fp === False) : - printError(SOCKET_ERROR); - exit; - else : - try { - getEpg(); - fclose($fp); - } catch(Exception $e) { - if($GLOBALS['debug']) printError($e->getMessage()); - } - endif; - else : - printError("epg2xml.json 파일의 default_xml_socket항목이 없습니다."); - exit; - endif; -endif; +include __DIR__."/epg2xml-web.php"; ?> diff --git a/epg2xml.py b/epg2xml.py index 9e28a7e..b5b1633 100644 --- a/epg2xml.py +++ b/epg2xml.py @@ -38,17 +38,17 @@ except ImportError: reload(sys) sys.setdefaultencoding('utf-8') -__version__ = '1.2.2p3' - if not sys.version_info[:2] == (2, 7): print("Error : ", "python 2.7 버전이 필요합니다.", file=sys.stderr) sys.exit() # Set variable +__version__ = '1.2.3' debug = False today = datetime.date.today() ua = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36', 'accept': '*/*'} timeout = 5 +htmlparser = 'lxml' CHANNEL_ERROR = ' 존재하지 않는 채널입니다.' CONTENT_ERROR = ' EPG 정보가 없습니다.' HTTP_ERROR = ' EPG 정보를 가져오는데 문제가 있습니다.' @@ -77,9 +77,8 @@ def getEpg(): if MyChannels : for MyChannel in MyChannels.split(','): MyChannelInfo.append(int(MyChannel.strip())) - for Channeldata in Channeldatajson: #Get Channel & Print Channel info - if Channeldata['Enabled'] == 1 or Channeldata['Id'] in MyChannelInfo: + if Channeldata['Id'] in MyChannelInfo: ChannelId = Channeldata['Id'] ChannelName = escape(Channeldata['Name']) ChannelSource = Channeldata['Source'] @@ -136,6 +135,8 @@ def getEpg(): GetEPGFromHcn(ChannelInfo) elif ChannelSource == 'POOQ': GetEPGFromPooq(ChannelInfo) + elif ChannelSource == 'EVERYON': + GetEPGFromEveryon(ChannelInfo) elif ChannelSource == 'MBC': GetEPGFromMbc(ChannelInfo) elif ChannelSource == 'MIL': @@ -166,7 +167,7 @@ def GetEPGFromEPG(ChannelInfo): pattern = '(.*)<\/td>' data = re.sub(pattern, partial(replacement, tag='td'), data) strainer = SoupStrainer('table', {'style':'margin-bottom:30'}) - soup = BeautifulSoup(data, 'lxml', parse_only=strainer, from_encoding='utf-8') + soup = BeautifulSoup(data, htmlparser, parse_only=strainer, from_encoding='utf-8') html = soup.find_all('table', {'style':'margin-bottom:30'}) if(html): for i in range(1,4): @@ -218,38 +219,37 @@ def GetEPGFromKT(ChannelInfo): ChannelName = ChannelInfo[1] ServiceId = ChannelInfo[3] epginfo = [] - url = 'http://tv.olleh.com/renewal_sub/liveTv/pop_schedule_week.asp' + url = 'http://tv.kt.com/tv/channel/pSchedule.asp' for k in range(period): day = today + datetime.timedelta(days=k) - params = {'ch_name':'', 'ch_no':ServiceId, 'nowdate':day.strftime('%Y%m%d'), 'seldatie':day.strftime('%Y%m%d'), 'tab_no':'1'} + params = {'ch_type':'1', 'view_type':'1', 'service_ch_no':ServiceId, 'seldate':day.strftime('%Y%m%d')} try: - response = requests.get(url, params=params, headers=ua, timeout=timeout) + response = requests.post(url, data=params, headers=ua, timeout=timeout) response.raise_for_status() html_data = response.content data = unicode(html_data, 'euc-kr', 'ignore').encode('utf-8', 'ignore') - strainer = SoupStrainer('table', {'id':'pop_day'}) - soup = BeautifulSoup(data, 'lxml', parse_only=strainer, from_encoding='utf-8') - html = soup.find('table', {'id':'pop_day'}).tbody.find_all('tr') if soup.find('table', {'id':'pop_day'}) else '' + strainer = SoupStrainer('tbody') + soup = BeautifulSoup(data, htmlparser, parse_only=strainer, from_encoding='utf-8') + html = soup.find_all('tr') if soup.find('tbody') else '' if(html): for row in html: for cell in [row.find_all('td')]: startTime = endTime = programName = subprogramName = desc = actors = producers = category = episode = '' rebroadcast = False - rating = 0 - startTime = str(day) + ' ' + cell[0].text - startTime = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M') - startTime = startTime.strftime('%Y%m%d%H%M%S') - pattern = '^(.*?)( <(.*)>)?$' - matches = re.match(pattern, cell[1].text.decode('string_escape')) - if not (matches is None): - programName = matches.group(1) if matches.group(1) else '' - subprogramName = matches.group(3) if matches.group(3) else '' - category = cell[4].text - matches = re.match('(\d+)', cell[2].text) - if not(matches is None): rating = int(matches.group()) - #ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating - epginfo.append([ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating]) - time.sleep(0.001) + for minute, program, category in zip(cell[1].find_all('p'), cell[2].find_all('p'), cell[3].find_all('p')): + startTime = str(day) + ' ' + cell[0].text.strip() + ':' + minute.text.strip() + startTime = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M') + startTime = startTime.strftime('%Y%m%d%H%M%S') + programName = program.text.replace('방송중 ', '').strip() + category = category.text.strip() + for image in [program.find_all('img', alt=True)]: + rating = 0 + grade = re.match('([\d,]+)',image[0]['alt']) + if not (grade is None): rating = int(grade.group(1)) + else: rating = 0 + #ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + epginfo.append([ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating]) + time.sleep(0.001) else: if(debug): printError(ChannelName + CONTENT_ERROR) else: pass @@ -275,7 +275,7 @@ def GetEPGFromLG(ChannelInfo): data = unicode(html_data, 'euc-kr', 'ignore').encode('utf-8', 'ignore') data = data.replace('<재>', '<재>').replace(' [..','').replace(' (..', '') strainer = SoupStrainer('table') - soup = BeautifulSoup(data, 'lxml', parse_only=strainer, from_encoding='utf-8') + soup = BeautifulSoup(data, htmlparser, parse_only=strainer, from_encoding='utf-8') html = soup.find('table').tbody.find_all('tr') if soup.find('table') else '' if(html): for row in html: @@ -386,7 +386,7 @@ def GetEPGFromSKB(ChannelInfo): data = re.sub(pattern, partial(replacement, tag='span'), data) #print(data) strainer = SoupStrainer('div', {'id':'dawn'}) - soup = BeautifulSoup(data, 'lxml', parse_only=strainer, from_encoding='utf-8') + soup = BeautifulSoup(data, htmlparser, parse_only=strainer, from_encoding='utf-8') html = soup.find_all('li') if soup.find_all('li') else '' if(html): for row in html: @@ -565,7 +565,8 @@ def GetEPGFromIscs(ChannelInfo): for i in epginfo: if not i in epginfo2: epginfo2.append(i) - epgzip(epginfo2) + epginfo = epginfo2 + epgzip(epginfo) # Get EPG data from HCN def GetEPGFromHcn(ChannelInfo): @@ -576,7 +577,6 @@ def GetEPGFromHcn(ChannelInfo): url = 'http://m.hcn.co.kr/sch_ScheduleList.action' for k in range(period): day = today + datetime.timedelta(days=k) - params = {'method': 'ajax_00', 'pageType': 'sheetList', 'ch_id': ServiceId, 'onairdate': day} params = {'ch_id': ServiceId, 'onairdate': day, '_': int(time.time()*1000)} try: response = requests.get(url, params=params, headers=ua, timeout=timeout) @@ -584,7 +584,7 @@ def GetEPGFromHcn(ChannelInfo): html_data = response.content data = html_data strainer = SoupStrainer('li') - soup = BeautifulSoup(data, 'lxml', parse_only=strainer, from_encoding='utf-8') + soup = BeautifulSoup(data, htmlparser, parse_only=strainer, from_encoding='utf-8') html = soup.find_all('li') if soup.find_all('li') else '' if(html) : for row in html: @@ -663,6 +663,48 @@ def GetEPGFromPooq(ChannelInfo): else: pass epgzip(epginfo) +# Get EPG data from EVERYON +def GetEPGFromEveryon(ChannelInfo): + ChannelId = ChannelInfo[0] + ChannelName = ChannelInfo[1] + ServiceId = ChannelInfo[3] + epginfo = [] + url = 'http://www.everyon.tv/mobile/schedule_ch.ptv' + for k in range(period): + day = today + datetime.timedelta(days=k) + params = {'chid': ServiceId, 'date': day.strftime('%Y%m%d')} + try: + response = requests.get(url, params=params, headers=ua, timeout=timeout) + response.raise_for_status() + html_data = response.content + data = html_data + strainer = SoupStrainer('ul') + soup = BeautifulSoup(data, htmlparser, parse_only=strainer, from_encoding='utf-8') + html = soup.find_all('ul',{'class':'lt2'}) if soup.find_all('ul') else '' + if(html) : + for row in html: + startTime = endTime = programName = subprogramName = desc = actors = producers = category = episode = '' + rebroadcast = False + rating = 0 + startTime = str(day) + ' ' + row.find('li', {'class':'pr_time'}).text.strip() + startTime = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M') + startTime = startTime.strftime('%Y%m%d%H%M%S') + programName = row.find('li', {'class':'pr_name'}).text.decode('string_escape').strip() + grade = row.find('li', {'class':'img'})['class'][1] + rating = grade.replace('c','').replace('all','0') + #ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating + epginfo.append([ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating]) + time.sleep(0.001) + except ValueError: + if(debug): printError(ChannelName + CONTENT_ERROR) + else: pass + except (requests.exceptions.RequestException) as e: + if(debug): printError(ChannelName + str(e)) + else: pass + a = epgzip(epginfo) + for i, j in a: + print(i[1], j[1]) + print(i[2], j[2]) # Get EPG data from MBC def GetEPGFromMbc(ChannelInfo): ChannelId = ChannelInfo[0] @@ -815,7 +857,7 @@ def GetEPGFromKbs(ChannelInfo): json_data = response.text try: data = json.loads(json_data, encoding='utf-8') - soup = BeautifulSoup(data['schedule'], 'lxml') + soup = BeautifulSoup(data['schedule'], htmlparser) for row in soup.find_all('li'): startTime = endTime = programName = subprogramName = desc = actors = producers = category = episode = '' rebroadcast = False @@ -858,7 +900,7 @@ def GetEPGFromArirang(ChannelInfo): strainer = SoupStrainer('table', {'id':'aIRSW_sat'}) elif day.weekday() == 6: strainer = SoupStrainer('table', {'id':'aIRSW_sun'}) - soup = BeautifulSoup(data, 'lxml', parse_only=strainer, from_encoding='utf-8') + soup = BeautifulSoup(data, htmlparser, parse_only=strainer, from_encoding='utf-8') html = soup.find_all('tr') if soup.find_all('tr') else '' if(html): for row in html: @@ -896,7 +938,7 @@ def GetEPGFromArirang(ChannelInfo): else: pass # Zip epginfo -def epgzip(epginfo): +def epgzip1(epginfo): #ChannelId, startTime, programName, subprogramName, desc, actors, producers, category, episode, rebroadcast, rating for epg1, epg2 in zip(epginfo, epginfo[1:]): programdata = {} @@ -915,6 +957,27 @@ def epgzip(epginfo): programdata = {'channelId':ChannelId, 'startTime':startTime, 'endTime':endTime, 'programName':programName, 'subprogramName':subprogramName, 'desc':desc, 'actors':actors, 'producers':producers, 'category':category, 'episode':episode, 'rebroadcast':rebroadcast, 'rating':rating} writeProgram(programdata) +def epgzip(epginfo): + epginfo = iter(epginfo) + epg1 = next(epginfo) + for epg2 in epginfo: + programdata = {} + ChannelId = epg1[0] + startTime = epg1[1] if epg1[1] else '' + endTime = epg2[1] if epg2[1] else '' + programName = epg1[2] if epg1[2] else '' + subprogramName = epg1[3] if epg1[3] else '' + desc = epg1[4] if epg1[4] else '' + actors = epg1[5] if epg1[5] else '' + producers = epg1[6] if epg1[6] else '' + category = epg1[7] if epg1[7] else '' + episode = epg1[8] if epg1[8] else '' + rebroadcast = True if epg1[9] else False + rating = int(epg1[10]) if epg1[10] else 0 + programdata = {'channelId':ChannelId, 'startTime':startTime, 'endTime':endTime, 'programName':programName, 'subprogramName':subprogramName, 'desc':desc, 'actors':actors, 'producers':producers, 'category':category, 'episode':episode, 'rebroadcast':rebroadcast, 'rating':rating} + writeProgram(programdata) + epg1 = epg2 + # Write Program def writeProgram(programdata): ChannelId = programdata['channelId'] @@ -949,7 +1012,7 @@ def writeProgram(programdata): else : rating = '%s세 이상 관람가' % (programdata['rating']) if addverbose == 'y': - desc = escape(programdata['programName']).strip() + desc = programName if subprogramName : desc = desc + '\n부제 : ' + subprogramName if rebroadcast == True and addrebroadcast == 'y' : desc = desc + '\n방송 : 재방송' if episode : desc = desc + '\n회차 : ' + str(episode) + '회' @@ -983,8 +1046,8 @@ def writeProgram(programdata): print(' ') if category: print(' %s' % (category)) if contentType: print(' %s' % (contentType)) - if episode: print(' %s' % (episode_ns)) - if episode: print(' %s' % (episode_on)) + if episode and addxmltvns == 'y' : print(' %s' % (episode_ns)) + if episode and addxmltvns != 'y' : print(' %s' % (episode_on)) if rebroadcast: print(' ') if rating: print(' ') @@ -1007,28 +1070,22 @@ def replacement(match, tag): else: return ''; -def pairs(it): - it = iter(it) - prev = next(it) - for v in it: - yield prev, v - prev = v - Settingfile = os.path.dirname(os.path.abspath(__file__)) + '/epg2xml.json' ChannelInfos = [] try: with open(Settingfile) as f: # Read Channel Information file Settings = json.load(f) - MyISP = Settings['MyISP'] if 'MyISP' in Settings else '' + MyISP = Settings['MyISP'] if 'MyISP' in Settings else 'ALL' MyChannels = Settings['MyChannels'] if 'MyChannels' in Settings else '' - default_output = Settings['output'] if 'output' in Settings else '' + default_output = Settings['output'] if 'output' in Settings else 'd' default_xml_file = Settings['default_xml_file'] if 'default_xml_file' in Settings else 'xmltv.xml' default_xml_socket = Settings['default_xml_socket'] if 'default_xml_socket' in Settings else 'xmltv.sock' default_icon_url = Settings['default_icon_url'] if 'default_icon_url' in Settings else None - default_fetch_limit = Settings['default_fetch_limit'] if 'default_fetch_limit' in Settings else '' - default_rebroadcast = Settings['default_rebroadcast'] if 'default_rebroadcast' in Settings else '' - default_episode = Settings['default_episode'] if 'default_episode' in Settings else '' - default_verbose = Settings['default_verbose'] if 'default_verbose' in Settings else '' + default_fetch_limit = Settings['default_fetch_limit'] if 'default_fetch_limit' in Settings else '2' + default_rebroadcast = Settings['default_rebroadcast'] if 'default_rebroadcast' in Settings else 'y' + default_episode = Settings['default_episode'] if 'default_episode' in Settings else 'y' + default_verbose = Settings['default_verbose'] if 'default_verbose' in Settings else 'n' + default_xmltvns = Settings['default_xmltvns'] if 'default_xmltvns' in Settings else 'n' except EnvironmentError: printError("epg2xml." + JSON_FILE_ERROR) sys.exit() @@ -1122,13 +1179,22 @@ else : printError("epg2xml.json 파일의 default_verbose항목이 없습니다."); sys.exit() +if default_xmltvns : + if not any(default_xmltvns in s for s in ['y', 'n']): + printError("default_xmltvns는 y, n만 가능합니다.") + sys.exit() + else : + addxmltvns = default_xmltvns +else : + printError("epg2xml.json 파일의 default_verbose항목이 없습니다."); + sys.exit() + if default_fetch_limit : if not any(str(default_fetch_limit) in s for s in ['1', '2', '3', '4', '5', '6', '7']): printError("default_fetch_limit 는 1, 2, 3, 4, 5, 6, 7만 가능합니다.") sys.exit() else : period = int(default_fetch_limit) - if period > 2 : period = 2 else : printError("epg2xml.json 파일의 default_fetch_limit항목이 없습니다."); sys.exit() @@ -1152,4 +1218,4 @@ elif output == "socket" : else : printError("epg2xml.json 파일의 default_xml_socket항목이 없습니다."); sys.exit() -getEpg() +getEpg() \ No newline at end of file