EPG 정보를 이용하는 몇가지 방법.

2016. 8. 23. 23:08프로그램개발/Tvheadend

이글에서는 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 현재 신규 버젼 작업중입니다.



간만에  글 길게 적었네요.

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


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

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

달지도 마세요 --;

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

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


잘 이용하시기를..

  


 

반응형

'프로그램개발 > Tvheadend' 카테고리의 다른 글

EPG정보갱신. (2016.08.08)  (30) 2016.08.08
EPG 정보 설정방법 (수정판)  (5) 2016.07.29
m3u 파일 만들기.  (6) 2016.07.26
라즈베리파이에 TVHeadend설치하기  (9) 2016.07.25
EPG 정보 설정방법.  (0) 2016.07.25
EPG의 구조(Electronic program guide)  (0) 2016.07.19