日常茶飯事

이글에서는 EPG정보를 이용하는 방법들에 대하여 설명을 하고자 합니다.


일단 사전지식 공부를 조금 하시자면...


먼저 전자 프로그램 안내(Electronic Program Guide, EPG - 이하 EPG)는 텔레비전 방송 프로그램의 편성표를 텔레비전 화면 상에 표시하는 것으로, 텔레비전을 시청하는 사람은 이 편성표를 통해 원하는 프로그램을 선택하거나 시간, 제목, 채널, 장르 등의 기준을 통해 원하는 프로그램을 검색할 수 있는 서비스를 말한다. (위키백과에서)


라고 되어 있습니다.


뭐 간단하게 방송정보안내라고 생각하시면 됩니다.


일단 제가 사용하는 방법은 각 방송사들에 공시된 방송정보를 수집해서 IPTV 3개사 (SK, KT, LG)의 채널에 맞춰서 송출해주는 방식입니다. 

물론 통합으로도 되구요. (어차피 있는 정보 한방에 쏴주는 건데 ..)


이게 불법인지 아닌지 판단이 잘안서기는 하는데 일단은 방송정보 자체는 저작권이 없는것 같고. 방송정보 뿌려주는것도 모회사에서 특허권이 있었으나 2006년 패소 하면서 없어진것 같습니다.


불법이라면 서비스는 내려야되는게 맞는것 같고 불법이 아니더라도 상업적이용은 절대 불가입니다. 


이걸로 돈버실꺼면 고액연봉으로 저를 데려가세요.


 (이런 저런문제때문에 조만간 개인 인증 키 시스템으로 변경할예정입니다. - 해봐야 페이지 전환하는게 귀찮아서 한참 걸릴듯 --;)


암튼 뻘소리는 여기서 그만하고 사용법 설명을 들어 갑니다.


일단 제가 송출하고 있는건 xmltv시스템 입니다.  (안에 내용은 dtd문서 보면.. - 그냥 알고만 계세요.)


기본적으로 파일 다운로드 => 가상소켓으로 전송  이 tvheadend가 가지고 있는 시스템입니다.


이제 몇가지 방법을 소개해드리겠습니다.


여기서 설명하는 기본시스템은 tvheadend 4.1.x + 라즈베리파이 시스템 기준입니다.

나머지 시스템들도 별반 다르지 않을것 같습니다.



[xmltv를 이용하는 방법]


먼저 XMLTV설정이 필요합니다.


[tvheadend 4.0.x]



[tvheadend 4.1.x]




저기 나오는 Path부분을 잘 기억하셔야됩니다.


SSH로그인 해서 아래와 같이 입력해 줍니다. ($는 콘솔 또는 커맨드에서라는 의미로 생각하시면 됩니다.)



$ sudo wget -o - http://epg,neo365.net/xmltv/[서비스회사 : ALL / LG / SK / KT] |  socat - UNIX-CONNECT:[XMLTV sock경로]


예제)


$ sudo wget -o - http://epg,neo365.net/xmltv/LG |  socat - UNIX-CONNECT:/home/hts/.hts/tvheadend/epggrab/xmltv.sock



Wget이 설치가 안되어 계시면 


$ curl http://epg,neo365.net/xmltv/LG |  socat - UNIX-CONNECT:/home/hts/.hts/tvheadend/epggrab/xmltv.sock


저 명령어가 잘먹었으면 tvheadend 로그화면에 아래와 같이 올라옵니다.




[직접받아서 넣기]


아래링크를 이용해서 반드시 브라우져에서 파일을 받습니다.


지원하는 모든 채널 : http://epg.neo365.net/XMLTV/ALL

KT(Olleh)채널 : http://epg.neo365.net/XMLTV/KT

LG(tvG) 채널 : http://epg.neo365.net/XMLTV/LG

SK(Btv) 채널 : http://epg.neo365.net/XMLTV/SK


아니면 wget을 이용하서도됩니다.


$ wget --content-disposition http://epg.neo365.net/XMLTV/LG


아님 

그런 다음 소켓으로 밀어 넣습니다.


$ sudo cat epg_LG.xml |  socat - UNIX-CONNECT:/home/hts/.hts/tvheadend/epggrab/xmltv.sock


하시면 됩니다. sudo로 안되시면 su로 직접 로그인 하신다음에 진행하시면 됩니다.


wget쓰실꺼면 반드시 이전 파일 삭제후 진행해 주세요.  안그러면 epg_LG.xml.1  epg_LG.xml.2....  이런식으로 파일을 계속 생성합니다.




[TV Grab를 이용하기]


https://github.com/neo365/tvheadend-for-Korea 에서 tv_grab 파일을 받아서 /usr/src에 넣어주면 나머지는 알아서 합니다.


반드시 shell환경에서 wget이 설치가 되어 있어야 됩니다.


없으시면 아래 명령을 이용해서 wget과 git를 까시면 됩니다.


$ sudo apt-get install wget git



github에서 소스를 가져옵니다.  뭐 해당 파일을 직접 받아서 넣으셔도 됩니다.


$ git clone https://github.com/neo365/tvheadend-for-Korea.git


각 모듈은 아래와 같습니다.


tv_grab_kr_btv : BTV (SK) 용

tv_grab_kr_olleh : Olleh (KT) 용

tv_grab_kr_tvG : tvG (LG) 용

tv_grab_kr_ko : 전체 채널 용


/usr/bin 에 복사후 실행 권한을 줍니다.


$ cp tvheadend-for-Korea/TV_grab/src/tv_grab_kr_ko /usr/bin

$ chmod +x  /usr/bin/tv_grab_kr_ko


다됐으면 tvheadend 서비스 재시작 (또는 리부팅)


이제 환경설정에 보입니다.



enable설정만 해주시면 나머지는 지가 알아서 합니다.


스케줄 설정은 아래에서 하시면 됩니다.




저기 시간은 그냥 두시 마시고 59이하에서 랜덤하게 바꿔주세요 제발!!

사람몰려서 제가 작업이 안되면 전 막는수 밖에 없어요 --;


예를 들어 15분으로 바꾸시고 싶으시면  4 */12 * * *  ===> 15 */12 * * *  이런식으로 바꾸시면 됩니다.


알려진 문제점


- qnap에서는 /usr/bin 이 리부팅 하면 리셋되서 끄시면 새로 설정해야 됩니다. (qnap은 방법을 열심히 찾는 중입니다 --;  저도 qnap씁니다.)

- 시놀리지에서는 업뎃하면 리셋되서 새로 설정하셔야 됩니다.




[epg2xml을 이용하기]


역시나 https://github.com/neo365/tvheadend-for-Korea  에서 파일을 받습니다.

아래와 같이 실행 해주시면 됩니다.


[파일 저장]


$ epg2xml.py -w [파일경로] -i [서비스회사 : ALL / LG / SK / KT]


예제)

$ epg2xml.py -w -i LG

$ epg2xml.py -w epg.xml -i LG


[바로쓰기]


$ epg2xml.py -s [xmltv path] -i [서비스회사 : ALL / LG / SK / KT]


예제) 

$ epg2xml.py -s /home/hts/.hts/tvheadend/epggrab/xmltv.sock -i LG


2016.08.23 현재 신규 버젼 작업중입니다.



간만에  글 길게 적었네요.

잘모르시는 부분은 댓글 남겨 주세요.


---------------

그리고 비밀댓글은 개인프라이버시 문제 아닌이상 절대 답변 안합니다. 

달지도 마세요 --;

자기 문제는 다른분들께도 공유해야지 참고가 되죠.

그렇게 비밀스러운 거면 메일로 주세요 --;


잘 이용하시기를..

  


 

Comment +35

  • 이전 댓글 더보기
  • 은수저1 2016.08.24 14:13 신고

    ASUSTOR 꺼 나스 쓰고 있는데..
    덕분에 EPG 데이터 잘 떙겨 쓰고 있습니다~ 감사합니다~

  • eatsteak 2016.08.24 19:41 신고

    epg 데이터를 정상적으로 불러오긴 하는데(tv_grab_kr_sk Internal Grabber 사용)

    채널밖에 불러오지 못하고 프로그램 정보는 그냥 0개가 돼네요.

    로그엔 이렇게 나옵니다:
    2016-08-24 19:39:09.189 /usr/bin/tv_grab_kr_btv: grab /usr/bin/tv_grab_kr_btv
    2016-08-24 19:39:09.198 spawn: Executing "/usr/bin/tv_grab_kr_btv"
    2016-08-24 19:39:36.491 /usr/bin/tv_grab_kr_btv: grab took 27 seconds
    2016-08-24 19:39:36.950 /usr/bin/tv_grab_kr_btv: parse took 0 seconds
    2016-08-24 19:39:36.950 /usr/bin/tv_grab_kr_btv: channels tot= 200 new= 0 mod= 0
    2016-08-24 19:39:36.950 /usr/bin/tv_grab_kr_btv: brands tot= 0 new= 0 mod= 0
    2016-08-24 19:39:36.951 /usr/bin/tv_grab_kr_btv: seasons tot= 0 new= 0 mod= 0
    2016-08-24 19:39:36.954 /usr/bin/tv_grab_kr_btv: episodes tot= 0 new= 0 mod= 0
    2016-08-24 19:39:36.957 /usr/bin/tv_grab_kr_btv: broadcasts tot= 0 new= 0 mod= 0

    어떻게 해결 방법이 없을까요?

  • 맑은이 2016.08.25 11:14 신고

    먼저 좋은 프로그램 사용할 수 있게 해주셔 감사합니다.

    본문 가이드의 tv grab 이용하는 방법으로 설정을 해 보았습니다.

    다른 밑작업 하나 없이 단순하게

    tv_grab 파일을 가져와서 /usr/bin 에 넣고
    실행 권한 준 뒤 synology 를 재 부팅 했습니다만,

    tvh epg grabber modules에서 internal 이 안보입니다.

    그래서 external:XMLTV 를 enable 시켜놓고 다시 시작해봐도
    internal 모듈은 안보입니다.

    댓글에서 xmltv 로 직접 밀어 넣어보라 코멘트 하신 걸보고
    $ wget -o - http://epg.neo365.net/xmltv/SK | socat - UNIX-CONNECT:/volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock

    처럼 해 보았더니 socat 이 설치가 안되 있다는군요..

    socat 등 설치 없이 단순히 tv_grab 파일만 넣어주면 되는 것 아니었나요?

    어렵군요.

    ps. 이제보니 internal 모듈은 하나도 없네요.

    • 아기양 2016.08.25 23:58 신고

      internal 이 하나도 없으시다니 tvheadend 다시 설치하셔야될듯하네여 그리고 socat쓰실려면 네이버에
      Synology iPKGui 이용하여 socat 설치하기
      검색하셔서 이용하시면될듯해여

    • 맑은이 2016.08.26 12:06 신고

      자답입니다.

      grabber 파일을 synol 터미널에서 wget 으로 링크를 바로 가져와서 작업했더니,
      해당 파일들이 정상파일이 아니고 git 홈페이지 소스파일입니다.ㅠ.ㅠ

      내용 확인 후 다운받은 사이트 우측위에 있는 download 버튼을 이용하여 다운 받으니 .zip 파일이 받아 지더군요.
      해당 zip 내의 grabber 파일은
      shell script 파일로 되어있었습니다.

      다시 받은 파일을 본문 가이드대로 /usr/bin 에 올리고 따라해보니
      정상적으로 epg정보 표시합니다.

      잠탱님은 위대하다~!~~.

      위 가이드 두번째 방법이 가장 수월하군요..

      다시한번 잠탱님 감사합니다.

  • 망구 2016.08.25 12:48 신고

    잠탱님은 위대하다~
    잠탱님은 위대하다~
    잠탱님은 위대하다~

    만들어주신 내용으로 잘 사용하고 있습니다. 감사드립니다.

    우선 저는 큐냅TS-451 사용자구요..
    다른 큐냅 사용자분들 참고하시라고 제가 사용하는 방법 남깁니다.

    QNAP은 OS가 압축되어 있고 풀리면서 부팅이 되는데 시스템 파일은 대부분 덮어 씁니다. 그래서 사용자가 건드린건 대부분
    초기화 된다고 합니다. 그래서 부팅시간도 꽤 길구요..

    그런이유로 /usr/bin 폴더에 파일을 복사해둬도 재부팅 하면 사라지더군요..

    전 스케쥴로 24시에 꺼지고 06시에 부팅되도록 전원 설정해뒀구요..
    재부팅 하면 다시 설정을 해줘야 EPG정보가 나옵니다.

    socat을 이용한 방법으로 사용합니다. socat파일은 컨터이너 스테이션 어플 설치하면 그안에 들어있구요..
    컨테이너 스테이션 설치후 putty로 로그인후

    wget http://epg.neo365.net/XMLTV/LG

    cat LG | /share/CACHEDEV1_DATA/.qpkg/container-station/usr/bin/socat - UNIX-CONNECT:/share/CACHEDEV1_DATA/.qpkg/TVHeadend/config/epggrab/xmltv.sock


    실행하면 잘 나옵니다.

    저같은 경우엔 6시에 부팅스케쥴을 걸어놔서 크론탭에 부팅후 20분뒤 실행되도록

    20 6 * * * wget http://epg.neo365.net/XMLTV/LG && cat LG | /share/CACHEDEV1_DATA/.qpkg/container-station/usr/bin/socat - UNIX-CONNECT:/share/CACHEDEV1_DATA/.qpkg/TVHeadend/config/epggrab/xmltv.sock && rm /share/CACHEDEV1_DATA/homes/admin/LG

    이렇게 걸어두었더니 잘 되네요..




    처음에 putty로 접속해서 다운 받을땐 root에 LG파일이 저장되어서 재부팅시 지워지는데.. 크론탭으로 스케쥴 걸어놓으면 /share/CACHEDEV1_DATA/homes/LG로 저장되고 재부팅되어도 지워지지 않더군요.. 그래서 뒤에 rm /share/CACHEDEV1_DATA/homes/admin/LG 한줄 더 적었더니 잘되네요..

    적으면서도 왜그런건지 잘 이해는 안되지만..
    저같이 아무것도 모르는 초보분들 참고하시라고 댓글 남김니다.

  • 꽃순이 2016.08.26 19:33 신고

    안녕하세요 덕분에 잘 이용하고 있습니다.
    다름이 아니라 최근에 L사에 JTBC3 채널이 추가되었습니다.
    혹시 업데이트 가능할까요? 부탁드립니다.

    항상 감사합니다.

  • vega000 2016.08.27 17:44 신고

    정보 감사합니다.

    TV Grab를 이용해서
    QNAP에서 EPG 성공했습니다.

    제가 한건

    https://github.com/neo365/tvheadend-for-Korea/archive/master.zip 다운로드

    zip 파일 안에 있는 tv_grab_kr_tvG 파일 을 나스 /Public 에 복사

    ssh 접속

    나스 /Public 로 이동

    cp tv_grab_kr_tvG /usr/bin

    chmod +x /usr/bin/tv_grab_kr_tvG


    하고 tvheadend 정지,시작

    저는 LG라 tv_grab_kr_tvG 파일로 한거고 다른분들은 서비스 회사에 맞는 파일 사용하시면 될것 같습니다.

    자동으로 채널 이름에 맞춰서 EPG 들어가는데 몇개 안들어간건 컨피크-채널탭에서 수동으로 추가했습니다.
    (컨피크-채널-EPG Grabber 에 '리런 인터널 EPG Grabber' 누르면 추가된 EPG 반영됩니다)

  • vega000 2016.08.27 17:53 신고

    잠탱님 다시 한번 감사합니다. ^^


    EPG 설정을 잘 하긴했는데

    qnap에서는 /usr/bin 이 리부팅 하면 리셋 된다해서 좀 걸리네요 ㅎㅎㅎ


    'epg2xml을 이용하기'

    를 qnap 나스에서 사용하는건 힘들까요?

    가능하시면 설명 조금만 더 자세히 부탁드립니다.

    앱센터에서 파이썬(Python) 이란걸 설치해야하나요?

  • 에스파뇰 2016.08.29 03:00 신고

    잠탱님 안녕하세요

    xmltv 를 이용한 방법과 직접 받아넣기 모두 아래 로그처럼 나오면서

    채널만 불러와지고 ㅠㅠ 에피소드 내용이 없습니다.
    이경우 어떻게 해야할까요.

    조언 부탁드립니다


    Loglevel debug: enabled
    2016-08-29 02:57:31.000 /usr/bin/tv_grab_kr_ko: grab /usr/bin/tv_grab_kr_ko
    2016-08-29 02:57:31.008 spawn: Executing "/usr/bin/tv_grab_kr_ko"
    2016-08-29 02:57:46.235 /usr/bin/tv_grab_kr_ko: grab took 15 seconds
    2016-08-29 02:57:46.932 /usr/bin/tv_grab_kr_ko: parse took 0 seconds
    2016-08-29 02:57:46.932 /usr/bin/tv_grab_kr_ko: channels tot= 271 new= 271 mod= 271
    2016-08-29 02:57:46.932 /usr/bin/tv_grab_kr_ko: brands tot= 0 new= 0 mod= 0
    2016-08-29 02:57:46.933 /usr/bin/tv_grab_kr_ko: seasons tot= 0 new= 0 mod= 0
    2016-08-29 02:57:46.933 /usr/bin/tv_grab_kr_ko: episodes tot= 0 new= 0 mod= 0
    2016-08-29 02:57:46.933 /usr/bin/tv_grab_kr_ko: broadcasts tot= 0 new= 0 mod= 0

    • 윌리 2016.09.14 21:36 신고

      저도 동일한 증상이 나타나네요....ㅠ.ㅠ
      2016-09-14 21:33:34.180 /usr/bin/tv_grab_kr_tvG: grab /usr/bin/tv_grab_kr_tvG
      2016-09-14 21:33:34.183 spawn: Executing "/usr/bin/tv_grab_kr_tvG"
      2016-09-14 21:33:34.599 /usr/bin/tv_grab_kr_tvG: grab took 0 seconds
      2016-09-14 21:33:34.603 /usr/bin/tv_grab_kr_tvG: parse took 0 seconds
      2016-09-14 21:33:34.603 /usr/bin/tv_grab_kr_tvG: channels tot= 177 new= 0 mod= 0
      2016-09-14 21:33:34.603 /usr/bin/tv_grab_kr_tvG: brands tot= 0 new= 0 mod= 0
      2016-09-14 21:33:34.603 /usr/bin/tv_grab_kr_tvG: seasons tot= 0 new= 0 mod= 0
      2016-09-14 21:33:34.603 /usr/bin/tv_grab_kr_tvG: episodes tot= 0 new= 0 mod= 0
      2016-09-14 21:33:34.603 /usr/bin/tv_grab_kr_tvG: broadcasts tot= 0 new= 0 mod= 0

  • hinmir 2016.08.31 16:58 신고

    안녕하세요.

    epg서버를 만들 능력은 안되고... 올려주신 방법으로 데비안+tvheadend 에 epg를 설치하여
    PLEX, Tvhclient 에서 잘 사용하고 있습니다.

    감사합니다. ^^

    • 상아짱 2016.08.31 22:39 신고

      안녕하세요 정말 감사합니다.
      wget를 사용하는것은 socat 명령어가
      없다고 하여서 계속 실패하였고
      TV Grab를 이용하기를 통하여
      셋팅하여 성공했습니다.
      잘 나오고 있습니다.
      감사합니다.

  • 손님 2016.09.02 04:25 신고

    안녕하세요 잠탱님 늘 수고하십니다.
    KT 채널에 sky uhd와 sky uhd2 편성표가 동일합니다.
    sky uhd (uhd one) 편성 정보가 잘못된 것 같습니다.
    이 부분 수정이 필요할 것 같습니다^^

  • 현토리 2016.09.05 20:13 신고

    잠탱님 안녕하세요 ^^

    혹시 복구 다 되셨나요?

    grab 쓰고 싶어요...

  • gnap를 쓰지는 않지만, /usr/bin에 넣어두면 지워진다면 tvheadend가 쓸 수 있는 storage영역에 있는 path에 넣어보세요.
    제가 쓰는 라즈베리파이의 openelec 버전인데,
    tvheadend를 unofficial를 이용해서 설치할 수 있습니다. 이녀석은 /usr/bin , /usr/local/bin 다 쓸 수가 없는 ro 영역입니다.
    하지만, /storage/ 아래 add-on/userdata 영역을 만들고 그 아래 설치도 하고, 실제 실행할 때 path에 /storage/~~/*tvheadend/bin/ 이 포함되어 있고 tvheadend 서비스 스타트도 bin/ 안에 같이 존재합니다. 여기에 파일을 넣어두면 (tv_grab_kr_ko ...) tvheadend 에서 잘 인식됩니다.

    그러니 비슷하게 적당한 path가 잡힌 곳에 넣어두면 지워지지 않고 실행될 겁니다.

  • tvh 2016.09.20 16:27 신고

    안녕하세요.
    채널 리스트만 있고 프로그램 데이터는 안내려오는것 같습니다.
    저만 그런것일까요? ㅜㅜ

  • jjyun 2016.09.28 14:45 신고

    TS140DSM> /usr/bin/python /volume2/@appstore/debian-chroot/var/chroottarget/home/hts/.hts/tvheadend/epggra
    b/epg2xml.py -i SK -s /volume2/@appstore/debian-chroot/var/chroottarget/home/hts/.hts/tvheadend/epggrab/xm
    ltv.sock
    Traceback (most recent call last):
    File "/volume2/@appstore/debian-chroot/var/chroottarget/home/hts/.hts/tvheadend/epggrab/epg2xml.py", line 354, in <module>
    sock.connect(args.socket)
    File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
    socket.error: [Errno 111] Connection refused

    몇일째 고생하고 있습니다. 해당폴더 권한 다 주고 root로 ssh 접근해도 동일하네요.
    물론 configuration - channel/epg - epg grabber modules
    에 external:xmltv 에 enabled 했습니다....

    조언 부탁드립니다.

  • 2016.10.06 12:01 신고

    OSMC 버젼으로 1년전에 마이크로 소프트 버젼으로 EPG 잠깐 사용하다가 최근에서야 잠탱님이 올려주신으로 EPG로 작업을 몇일에 걸쳐 고생하여 인식까지는 하였습니다. 저역시 아래의 문제가 발생하는군요....
    채넬에 EPG소스에 보면 마소 내용도 같이보이는게 문제가 아닌가 하는 추측을 해봅니다...
    초짜라 더 이상 진행이 안되어 질문을 올립니다...

    화면 캡쳐사진 링크 걸었습니다.
    https://1drv.ms/i/s!AoNMy1tWzrtXgYRP1ksuKEYmtJvZ8Q

    2016-10-06 11:49:17.314 /usr/bin/tv_grab_kr_tvG: grab /usr/bin/tv_grab_kr_tvG
    2016-10-06 11:49:17.322 spawn: Executing "/usr/bin/tv_grab_kr_tvG"
    2016-10-06 11:49:17.832 /usr/bin/tv_grab_kr_tvG: grab took 0 seconds
    2016-10-06 11:49:17.834 /usr/bin/tv_grab_kr_tvG: parse took 0 seconds
    2016-10-06 11:49:17.834 /usr/bin/tv_grab_kr_tvG: channels tot= 177 new= 0 mod= 0
    2016-10-06 11:49:17.834 /usr/bin/tv_grab_kr_tvG: brands tot= 0 new= 0 mod= 0
    2016-10-06 11:49:17.834 /usr/bin/tv_grab_kr_tvG: seasons tot= 0 new= 0 mod= 0
    2016-10-06 11:49:17.834 /usr/bin/tv_grab_kr_tvG: episodes tot= 0 new= 0 mod= 0
    2016-10-06 11:49:17.834 /usr/bin/tv_grab_kr_tvG: broadcasts tot= 0 new= 0 mod= 0

  • 똥멍충이 2016.11.16 21:48 신고

    질문이있습니다.

    Configuration-Channel/EPG/Channels 정보에 가면 EPG Source와 매칭이 안되어 있습니다.
    이걸 수동으로 매칭하는 방법밖에 없는건가요?
    EPG Grabber Channels에 가도 Channels 정보가 매칭이 안되어 있습니다.
    방법은 아루룽 님이 만들어주신 m3u 생성기를 이용해 Automatic network 등록하는걸로 하였고
    EPG Grabber 설치는 나스모어 님껄 참고하였습니다.

  • 루팡 2017.01.27 11:10 신고

    socat[983] E exactly 2 addresses required (there are 0); use option "-h" for help

    메세지가 나오면서 안올라오는데, 어디가 잘못됐을까요?

  • magham 2017.04.11 21:02 신고

    혹시 epg.neo365.net 작동하고있나요 계속 서버에 연결 실패한다고 뜨는데융

  • magham 2017.04.11 22:18 신고

    TV Grab를 이용하는 방법으로 진행중인데 파일을 /usr/bin 에 넣고 관리자 권한을 주는것 까지 성공했습니다.
    그래도 환경설정에서 보이지 않는 이유는 뭘까요??

  • 조현호 2017.05.15 03:24 신고

    좋은 정보 감사합니다. 그런데 저는 아무리 저 위에 방법 다 해봐도 아무것도 안뜨네요 ㅠㅠ 도대체 몇번을 다시 설치 했다가 지웠는지...이렇게 아무것도 안뜨는건 뭘까요ㅠㅠ

한동안 서버가 죽어서 제대로 업데이트가 안되는 문제가 있었습니다. T.T


이전에 받으신 분들은 아래파일로 교체해주시기 바랍니다.

epg2xml.py

가장최신 버전은 [여기]  에서 받으시면 됩니다.

[바뀐점]

- 채널로고 지원 (주소가 바뀌어도 알아서 자동으로 올라옵니다.)

- 에피소드 출력안되는 문제 수정.

- 중간에 방송일정이 바뀌는 경우 오류 검증 추가 (서버쪽)

- 기타 오류 수정.


[사용법]

$ ./epg2xml.py -s -i (LG|SK|KT)

ex) epg2xml.py -s -i LG

./epg2xml.py -w -i KT   <- 저장

./epg2xml.py -s -i KT  < - 소켓에 쏘기 인데....   옵션을 잘못알려 드렸더라구요 T.T

 

저장하실때..

 

./epg2xml.py -w [파일경로]  -i [통신사]

=> ./epg2xml.py -w test.xml -i KT  또는 ./epg2xml.py -w -i KT 

 

정보를 올리실때.

./epg2xml.py -s [xmltv.sock 경로] -i [통신사]  입니다.

= > sudo ./epg2xml.py -s /home/hts/.hts/tvheadend/epggrab/xmltv.sock -i LG


정보만 올리실꺼면 -s 옵션만 하시면 됩니다.


직접 XML로 받으실분은 아래 주소를 이용해 주세요. (주소 변경 가능성있음)

전체 : http://epg.neo365.net/XMLTV/ALL 또는 http://epg.neo365.net/downloads/xmltv/epg_all.xml

KT : http://epg.neo365.net/XMLTV/KT 또는 http://epg.neo365.net/downloads/xmltv/epg_kt.xml

LG : http://epg.neo365.net/XMLTV/LG 또는 http://epg.neo365.net/downloads/xmltv/epg_lg.xml

SK : http://epg.neo365.net/XMLTV/SK 또는 http://epg.neo365.net/downloads/xmltv/epg_sk.xml


기타 커스터마이징 방법

[타이틀 형식 바꾸기]

중간에 96라인쯤 보시면 아래와 같은 부분이 있습니다. 이부분들을 조금씩 바꾸시면 됩니다. (#은 주석처리 입니다.)

#prog.append('\t\t<title lang="kr">%s</title>\n' %(stripString(pr_programName)))

#prog.append('\t\t<title lang="kr">%s</title>\n' %(stripString(pr_title)))


prog.append('\t\t<title lang="kr">%s' %(stripString(pr_title)))

if pr_extrainfo:

prog.append('(%s)' %(stripString(pr_extrainfo)))


prog.append('</title>\n')


#prog.append('\t\t<title lang="kr">%s</title>\n' %(stripString(pr_mainTitle)))

#if pr_subTitle:

# prog.append('\t\t<sub-title lang="kr">%s</sub-title>\n' %(stripString(pr_subTitle)))


만약 프로그램 명이 " 특종! 생생정보통 <오늘의 맛집> (237화) (재)(자막) " 이렇게 되어 있다고 할때

아래와 같이 분리되어 나옵니다.


pr_programName = 특종! 생생정보통 <오늘의 맛집> (237화) (재)(자막)

pr_title = 특종! 생생정보통 <오늘의 맛집> (237화) 

pr_mainTitle = 특종! 생생정보통 

pr_subTitle = 오늘의 맛집

pr_extrainfo = 재방송|자막방송


이걸 잘 조합해서 쓰시면됩니다. 대충 주석 풀고 막고만 잘하면 됩니다.  



Comment +30

  • 오금렬 2016.08.08 18:15 신고

    안녕하세요,

    방금 sudo ./epg2xml.py -s -i LG 를 적용해 보았더니 149라인에서 에러가 발생하는 것 같습니다. python2.7버전 사용 중인데, 어떤 방법이 있을까요?

    감사합니다.

  • 한글로 2016.08.08 19:08 신고

    만들어 주신 epg 파일 받아서 잘 사용하고 있습니다. 감사합니다.
    서버에 부담이 많은 것 같아서 직접 만들어 볼까하는데 윗 분과 같은 증상이 있습니다.

    Traceback (most recent call last):
    File "./epg2xml.py", line 149, in <module>
    xmlfp.connect(args.socket)
    File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
    socket.error: [Errno 2] No such file or directory

    이 경우엔 어떻게 해야 할까요?
    현재 우분투에 올려서 사용중입니다.

  • 후니아빠 2016.08.10 21:08 신고

    초보가 LG 걸로다가 xml을 직접 받아오는 방식으로 성공해서 덕분에 잘 보고 있습니다만
    크게 불편하진 않지만 로고 불러오기만이 아직 잘 적용이 안됩니다.
    저절로 적용이 되야 되는거 같은데 저는 딱 3개 채널만 받아오네요.
    뭘 좀 건드려 보면 될런지요.

  • 유저 2016.08.12 08:19 신고

    항상 좋은 정보 감사드립니다.

    커스터마이징에서
    특종! 생생정보통 <오늘의 맛집> (237화) (재)(자막)

    타이틀은 특종! 생생정보통 (237화) (재)(자막) 이렇게만 남기고 <오늘의 맛집>은 부제로 가게하게 할 수 있을까요?
    말씀하신 주석을 만졌는데 부제는 잘 나오는데 타이틀은 부제가 분리되지 않고 pr_programName 그대로 나옵니다.

  • 황정원 2016.08.13 12:29 신고

    안녕하세요~
    tvheadend 채널등록을 완료하고 epg 등록을 하는데 아래와 같은 에러가 발생됩니다. 다른곳을 참조해서 http://cafe.naver.com/mk802/16558 해보도 동일하네요!

    덕분에 설치는 완료했는데 여기서 막혀 도움 요청드립니다.^^

    root@raspberrypi:/home# sudo ./epg2xml.py -w -i LG
    Traceback (most recent call last):
    File "./epg2xml.py", line 126, in <module>
    channels = channelList(args.ips)
    File "./epg2xml.py", line 30, in channelList
    j = json.loads(data)
    File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
    return _default_decoder.decode(s)
    File "/usr/lib/python2.7/json/decoder.py", line 365, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "/usr/lib/python2.7/json/decoder.py", line 383, in raw_decode
    raise ValueError("No JSON object could be decoded";)
    ValueError: No JSON object could be decoded

    • 서버연결 에러 난걸로 보이는데요. 집에서 가내수공업으로 돌리다 보니 서버가 가끔 죽습니다. --;

      다시한번 시도 해보세요.

  • 안녕하세요. 잠탱이님 너무 잘 쓰고 있습니다.
    전 LG인데 epg 정보가 어긋나는 부분이 더러 있더라고요. 근데 이상하게도 http://epg.neo365.net 여기에는 현재 방송정보가 정확하게 나오는데 실제 가져온 epg 정보는 제대로 안나오던데 이유가 뭘까요?
    그리고 대교어린이TV는 epg정보를 못가져오던데 제가 뭘 잘못한건지 알수가 없네요. ㅠ.ㅠ.

    • 갱신이 너무 빈번해서 발생하는 문제입니다.
      epg.neo365.net은 가장 최신 정보가 반영됩니다.

      그리고 xml로 다운받지 마시고 epg2xml 로 하시면 사이트와 동일 정보를 가져옵니다.

    • epg2xml로 다시 정보 갱신만 해봐야 겠네요. 항상 감사드립니다.

    • 이름으로 매핑을 한번 해보세요. 안되시는 분들중 수동매핑 하시거나 표준이름으로 Mutex를 사용안하신 분들이 계시더라구요.

  • estevalis 2016.08.17 00:47 신고

    안녕하세요

    - 채널로고 지원 (주소가 바뀌어도 알아서 자동으로 올라옵니다.)

    라고 되어 있는 부분에 대해 궁금한점이 있습니다.

    저는 tvheadend 에서 채널 아이콘에 http://iptv.neo365.net/Resource/104.png 등과 같이 아이콘을 지정해 두었습니다.

    하지만 저 리소스에 접근시 404 not found 가 나오면서 아이콘이 나오지 않는 상태 입니다.

    epg2xml.py를 사용하여도 채널 아이콘이 나오지 않는데요,

    아이콘을 사용하려면 어떻게 해야 할까요?

    • http://epg.neo365.net/Images/Channels/xx.png로 주소가 변경되었습니다.

      Autoepg 사용체크하면 자동 매핑되지 않는지요?

      그럼 매핑을 일일이 손으로 하신경우 인데. 표준 이름으로 매핑하시면 자동으로 올라 옵니다.

    • estevalis 2016.08.17 12:26 신고

      auto epg 에 체크 되어 있어 epg 는 수동 매칭없이 자동으로 읽어 옵니다.

      mux 등록시 m3u file 을 이용하는데요, 여기에는 수동으로 png 파일 경로를 잡아 두었습니다.

      이미 채널이 다 등록된 상태에서 png 파일 경로가 삭제되지 않는군요.

      m3u에서 png 파일 관련을 제거해보고 아이콘이 올라오는지 확인해보겠습니다.

      감사합니다

  • 무한비행 2016.08.18 11:35 신고

    감사합니다,
    일전에 C# 으로 작성하신 것으로 들었습니다만,
    혹시 http://epg.neo365.net/downloads/xmltv/epg_sk.xml 생성하는 코드를 공개해 주시면 안되시는지요?

  • 망구 2016.08.18 11:41 신고

    잘 사용하다가 몇일전부터 epg가 나오질 않습니다.
    직접 XML다운 받아 사용중인데요..
    EPG Grabber Channels 보면 업데이트는 다 되어 있는데 프로그램들이 하나도 나오질 않습니다. ..



    epg2xml파일을 다운받아 해보려 해도 제가 쓰는 QNAP나스 에서는 작동되질 않는거 같네요..
    SUDO명령어가 아예 안먹네요..
    혹시 다른 방법 없을까요? 감사한마음으로 사용하다가 갑자기 안되니 염치불구 하고 여쭤봅니다.

  • Paulyoo 2016.08.18 15:44 신고

    안녕하세요. 많은 도움을 받고 있습니다.
    다만, EPG 내용을 내려 받아 적용시켜보는데, TVheadend에서
    내용이 나오지 않아 xml 파일을 열어보니, 8/16일 방송 내용까지만
    나오네요. 혹시 제가 잘못 한건지, 아님 현재 업데이트가 안된 것인지 궁금합니다.

    • 거북 2016.08.18 17:19 신고

      저도 며칠 전부터 갑자기 적용이 안되네요. 업데이트가 안된 것 같아요.ㅜㅠ

      ps. 구글링하시면 epg를 xml로 생성해주는 exe파일이 있을겁니다. 일단 그걸로 xml 생성하셔서 대체하시면 됩니다.

    • Paulyoo 2016.08.18 21:19 신고

      정말 감사합니다.

    • 현재 xml부분은 파일 생성에 문제가 있는것 같습니다. 지금 작업중입니다.
      오늘 내일쯤 정상 동작합니다.

  • 궁금합니다. 2016.08.21 10:17 신고

    안녕하세요? 덕분에 EPG정보를 잘 셋팅해서 몇일 사용하였습니다만..
    최근 EPG정보를 받아올려고 하다보니 계속 에러가 나네요..

    ./epg2xml.py -w -i SK
    를 실행하면

    Traceback (most recent call last):
    File "./epg2xml.py", line 156, in <module>
    channels = channelList(args.ips)
    File "./epg2xml.py", line 32, in channelList
    channels = j["Channels"]
    KeyError: 'Channels'

    위와 같은 메시지가 나오네요

    이전엔 별 문제 없이 사용이 되었던것 같은데 이상하네요 ㅡㅜ

    혹시 어찌해야 해결이 될까요?

  • 따라쟁이 2017.01.23 02:35 신고

    root@DiskStation:/volume1/pvr# python epg2xml.py -i LG -w ./test.xml
    Traceback (most recent call last):
    File "epg2xml.py", line 156, in <module>
    channels = channelList(args.ips)
    File "epg2xml.py", line 32, in channelList
    channels = j["Channels"]
    KeyError: 'Channels'

    ->요런 에러와..

    root@DiskStation:/volume1/pvr# python epg2xml.py -i LG -s /volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock
    Traceback (most recent call last):
    File "epg2xml.py", line 149, in <module>
    xmlfp.connect(args.socket)
    File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
    socket.error: [Errno 111] Connection refused
    root@DiskStation:/volume1/pvr#

    ->요런 에러


    요런 에러가 뜨는데 라즈베리파이나, 시놀로지나 동일하게 뜨네요.?

좀더 빠르고 편하게 EPG를 받아 오는 방법 공유합니다.


epg2xml.py


위 파일을 다운받으신후에 아래와 같이 하시면 됩니다.


[실행방법]

파일생성

$ sudo ./epg2xml.py -w -i LG

epg정보 갱신

$ sudo ./epg2xml.py -s /home/hts/.hts/tvheadend/epggrab/xmltv.sock


일단은 각통신사가 아닌 전체 채널을 가져옵니다.


추후 통신별 파일을 만들수 있게 지원 할예정입니다.


Comment +5

  • 우신 2016.08.04 17:28 신고

    요새 브로그 매우 정독하며 tvheadend 세팅중에 있습니다.
    올려주신 epg2xml.py 관련하여 질문이 하나 있습니다.

    sudo ./epg2xml.py -w -i LG
    위 커맨드를 입력하면 아래와 같은 에러가 보여지며 실행이 되지 않습니다.
    Traceback (most recent call last):
    File "epg2xml.py", line 126, in <module>
    channels = channelList(args.ips)
    File "epg2xml.py", line 30, in channelList
    j = json.loads(data)
    File "/usr/lib/python2.7/json/__init__.py", line 338, in loads
    return _default_decoder.decode(s)
    File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
    raise ValueError("No JSON object could be decoded";)
    ValueError: No JSON object could be decoded

    하기 코드의 json.loads 에서 나는것 같아 보입니다.
    url = ('http://iptv.neo365.net/api/iptv/epg/channellist/%s' % ( ips ) )
    u = urllib.urlopen(url)
    data = u.read()
    j = json.loads(data)

    먼가 조치를 취할 수 있는 방안이 있을까 하여 문의드립니다~

  • 2016.08.05 16:59

    비밀댓글입니다

  • 2016.08.10 10:20

    비밀댓글입니다

  • 김재우 2017.08.16 12:44 신고

    데비안 8.8 + openmediavault + tvheadend4.2.3 설치했습니다.

    epg2xml.py

    위 파일을 다운받으신후에 아래와 같이 하면 된다고 하셨는데 ssh에서 다운을 어떻게 받고 어느 디렉토리에 저장을 하고 다음과 같이 해야하나요?

    즐거운 하루보내세요.

TVHeadendUtil.zip


엄청난 기능이 있는건 아니고 TVHeadend 서버에서 채널리스트를 읽어서 PC 에서 사용가능한 .m3u파일로 만들어 줍니다.

이렇게 생성된 파일은 VLC등을 이용하셔서 PC에서 보시면 됩니다.

 

아이디/패스워드 포함할꺼냐고 뭍는데  아니고 하시면  채널 변경시마다 아이디 패스워드 입력하셔야됩니다.

어차피 혼자쓰실꺼 그냥 포함하시면 편합니다.

 

자기 환경에 맡춰서 환경설정 하셔야 됩니다.

[TVHeadendClient.exe.config] 파일을 열으셔서 

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

  <startup>

    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />

  </startup>

  <appSettings>

    <add key="SERVER" value="your.domain.com or ip" />

    <add key="PORT" value="9981" />

    <add key="USER_ID" value="your id" />

    <add key="PASSWORD" value="your password" />

  </appSettings>

</configuration>

 

위에 3군데만 수정하시면 됩니다.

 

.net 4.6.1 이 필요합니다.

 

혼자쓸려고 만든거라 대충 만들었습니다. 불편하시더라도 양해해주세요.


==>


http://XXX.XXX.XXX:9981/playlist/channels.m3u    로 하시는게 더편합니다.

Comment +6

라즈베리파이에 TVHeadend설치하기


$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 379CE192D401AB61 


apt 경로 추가

$ echo "deb https://dl.bintray.com/tvheadend/deb DISTRO BUILDTYPE" | sudo tee -a /etc/apt/sources.list

$ sudo apt-add-repository "https://dl.bintray.com/tvheadend/deb DISTRO BUILDTYPE" 

위에껄로 에러 나면 아래와 같이 추가. 일부 항목을 고정해서 넣습니다.

(TVHeadend만드는 애들이 경로를 제대로 안넣어놔서 그렇습니다.)


$ echo "deb https://dl.bintray.com/tvheadend/deb/ jessie release" | sudo tee -a /etc/apt/sources.list

$ sudo apt-add-repository "deb https://dl.bintray.com/tvheadend/deb/ jessie release" 


소스리스트에 아래와 같이 나오면 됩니다.

같은거 두개있으면 하나 삭제!!


pi@raspberrypi:~ $ cat /etc/apt/sources.list

deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi

# Uncomment line below then 'apt-get update' to enable 'apt-get source'

#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi

deb https://dl.bintray.com/tvheadend/deb/ jessie release


$ sudo apt-get update

$ sudo apt-get install tvheadend


대충 설치가 끝났으면 확인을 해봅시다.


http://[설치주소]:9981/


잘뜨면 OK!


자 이제 잘되는지 확인을 한번 해봅시다.


1. 네트웍 생성.

네트웍명은 암거나 넣어도 됩니다.


2. Muxes설정.

위에서 만든 네트웍을 선택합니다.


아래와 같이 설정 합니다.

설정시 URL은 아래를 사용합니다.

LG : rtp://233.14.202.41:60000

KT : rtp://233.18.158.78:5000

SK : udp://239.192.47.7:49220


3.  방송정보(EPG) 출력을 위한 사전 작업

xmltv라고 되어 있는 부분 Path를 잘 봐둡니다.

나중에 써먹어야 됩니다.

4. EPG정보 설정

SSH로그인 해서 아래와 같이 입력해 줍니다.


$ rm epg*.xml* 

$ wget http://iptv.neo365.net/epg.xml 

$ cat epg.xml | socat - UNIX-CONNECT:/home/hts/.hts/tvheadend/epggrab/xmltv.sock

위에 xmltv경로만 자신에 맞게 바꾸시면 됩니다.


저렇게 하면 웹디버깅창에 아래와 같이 올라 옵니다.

이게 나와야 EPG정보가 잘 인식된겁니다.


똑같은 명령을 한 2~4번 정도 반복해서 입력해줍니다.

처음은 채널등록  두번째는 프로그램등록 .....  뭐 이런식으로 적용되므로 반복을 좀 해줘야 됩니다.


아래 링크를 참조해서 주소랑 맞춰주세요. 

http://blog.neo365.net/2678581


5. 채널 설정

위에서 EPG정보 설정이 잘되었으면 Name부분은 따로 입력안하고 Services만 잡고 Enable, auto epg 설정만 해도 잘올라 옵니다.


6. 잘되었는지 확인

위와 같이 방송정보들이 막 올라와야 EPG 채널설정 둘다 잘된것으로 볼수 있습니다.


7 epg정보를 주기적으로 받아 오도록 설정.

4번의 동작을 주기적으로 할수 있도록 설정해 줍니다. 하루 1번 1:00~2:00 사이 추천


고생하셨습니다.

Comment +9

  • 2016.07.28 00:16

    비밀댓글입니다

    • 전 iplist만 확보후에 tcpdump로 잡았습니다.
      맥에서 작업하였습니다.

      OMVS검색해 보시고 이용해보세요.

  • 감사합니다

  • 2016.07.30 17:27

    비밀댓글입니다

    • 일단 IP만 찾아서 VLC에다가 걸어 놓고
      tcpdump를 해보시면 icmp나간다음 들어오는 포트가 있습니다.

      그걸 검색해보시면 됩니다.

  • 황정원 2016.08.09 09:38 신고

    도움주셔서감사합니다 주말에작업해봐야겠습니다

  • v뉴v 2016.08.10 23:14 신고

    클리앙에 댓글이 안달려서 블로그에 남깁니다.
    라즈베리파이 구입 후 열심히 달리는데 TVheadend에서 막히네요.
    도움 좀 부탁 드립니다.

    Kodi에서 YTN 방송만 나옵니다.
    위에 YTN URL만 추가해서 그런건가요?
    클리앙 EPG 최근 글대로 설정 후 Configuration - Channel/EPG - EPG Grabber Channels에서 채널은 다 보이는 상황입니다.
    Electronic Program Guide에는 아무것도 안보이네요. 정상이라면 보여야되는지요?

    방송사 IP/Port 캡처 - MUX를 방송사마다 생성
    Configuration - Channel/EPG - Channels - ADD - Services 항목을 수작업으로 만들어줘야되는지요?

    너무 초보라 질문하는 저도 쑥스럽습니다. ^^;

  • 2016.08.20 21:56

    비밀댓글입니다

EPG 정보를 제공합니다. 

(추후 주소변경이 있을수 있습니다.)


제공 채널은 첨부 파일 참조. 

Channels.csv


 

전체채널 : http://iptv.neo365.net/epg.xml

   LG전용 : http://iptv.neo365.net/epg_LG.xml

   KT전용 : http://iptv.neo365.net/epg_KT.xml

   SK전용 : http://iptv.neo365.net/epg_SK.xml

 

채널별 아이콘 : http://iptv.neo365.net/Resource/[채널번호].png 



대충 채널 가져오고 어쩌고 하면 10~20분 정도 걸립니다.

따라서 스케줄 거실려면 00:30~01:00분정도가 좋습니다.


[제공 샘플]

  <programme start="2016072615000000 +0900" stop="2016072616000000 +0900" channel="8">

    <title lang="kr">1993 판관포청천 찰미안(4회)(재)</title>

    <desc lang="kr">1993 판관포청천 찰미안(4회)(재)


출연 : 금초군,하가경,범홍헌

연출 : 양개정

등급 : 15세이상 관람가</desc>

    <episode-num system="xmltv_ns">4</episode-num>

    <category lang="ko">드라마</category>

    <credits>

      <director>양개정</director>

      <actor>금초군,하가경,범홍헌</actor>

    </credits>

    <rating system="VCHIP">

      <value>15세이상 관람가</value>

    </rating>

  </programme>



추후 json으로도 제공해드리도록 하겠습니다.

그러면 개별서버에서 돌리시기 더 좋습니다.




Comment +0

EPG의 구조(Electronic program guide)


말그대로 TV Guide이다 

여러가지 정보를 담고 있으며 아래와 같은 XML로 많이 표현된다.



// SampleXML

<tvgenerator-info-name="mylistingsgenerator">

<channelid="3sat.de">

<display-namelang="de">3SAT</display-name>

</channel>

<channelid="das-erste.de">

<display-namelang="de">ARD</display-name>

<display-namelang="de">DasErste</display-name>

</channel>

<programmestart="200006031633"channel="3sat.de">

<titlelang="de">blah</title>

<titlelang="en">blah</title>

<desclang="de">BlahBlahBlah.</desc>

<credits>

<director>blah</director>

<actor>a</actor>

<actor>b</actor>

</credits>

<date>19901011</date>

<country>ES</country>

<episode-numsystem="xmltv_ns">2.9.0/1</episode-num>

<video>

<aspect>16:9</aspect>

</video>

<ratingsystem="MPAA">

<value>PG</value>

<iconsrc="pg_symbol.png"/>

</rating>

<star-rating>

<value>3/3</value>

</star-rating>

</programme>

<programme>...</programme>

...

</tv>


에피소드 번호 별점등등등  여러가지 정보를 담고 있으며 TVHeadEnd라는 넘을 많이 쓰면서 많이들 사용한다.


TVHeadEnd 에서 EPG 맵핑을 하게되면 아래와 같은 화면을 볼수 있다.



뭐 대강 그렇다 EPG만드는 건 각자 알아서..


Comment +0