본문 바로가기
방송-통신/Tvheadend

우분투 TVHeadend에 EPG 설정하기 ②

by Junhyeok 2018. 9. 4.
2018-09-04

검색으로 들어오는 트래픽이 종종 있어서 최신버전에 맞게 수정

 EPG 제공 사이트에 과도한 트래픽으로 개발자분께서 2018년3월31일부로 epg2xml 공개를 중단한다고 합니다. 마지막 버전 사용시 현재는 작동하지만, 차후 변경이 생길 경우 대응은 어려울 것 같습니다. 자세한 내용은 아래 링크를 참고하세요.

https://www.clien.net/service/board/cm_nas/11940109?po=15&od=T31&sk=&sv=&category=&groupCd=&articlePeriod=default&pt=0

https://github.com/wiserain/epg2xml

http://3jini.tistory.com/109 글을 참고해서 업데이트 된 부분을 추가하고 우분투에 맞게 적용해본 가이드입니다.

우분투에서 https://github.com/wonipapa/epg2xml에 접속해 Clone or download -> Downlaod ZIP을 하면 /home/tv/다운로드 폴더에(tv는 우분투 계정명) 압축파일이 받아진다. 압축을 풀고 몇 가지 수정할게 있다.

1. epg2xml.json

{
"###_COMMENT_###" : "",
"###_COMMENT_###" : "epg 정보를 가져오는 설정 파일",
"###_COMMENT_###" : "사용하는 ISP 선택 (ALL, KT, LG, SK)",
"MyISP": "KT",
"###_COMMENT_###" : "### # My Channel EPG 정보 가져오는 채널 ID ###",
"###_COMMENT_###" : "### 채널 ID를 , 로 구분하여 입력 ###",
"MyChannels" : "60, 110, 111, 122, 164",
"###_COMMENT_###" : "output 셋팅은 (d, o, s) 셋중에 하나로 선택한다",
"###_COMMENT_###" : " d - EPG 정보 화면 출력",
"###_COMMENT_###" : " o - EPG 정보 파일로 저장",
"###_COMMENT_###" : " s - EPG 정보 소켓으로 출력",
"output": "d",
"###_COMMENT_###" : "### TV channel icon url (ex : http://www.example.com/Channels) ###",
"default_icon_url": "",
"###_COMMENT_###" : "### 제목에 재방송 정보 출력 ###",
"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" : "xmltv.xml",
"###_COMMENT_###" : "### # External XMLTV 사용시 기본 소켓 이름 (ex: /home/tvheadend/xmltv.sock) ###",
"default_xml_socket" : "xmltv.sock",
"###_COMMENT_###" : ""
}

 빨간색 글자 부분에서 위쪽은 본인의 통신사, 아래 부분은 EPG 정보를 가져올 기간을 일(日)단위로 입력한다. MyChannels 부분의 숫자는 EPG정보를 가져올 채널의 ID이다. Channel.json 파일을 열어서 채널의 ID를 확인하고 숫자를 넣어준다.

2. Channel.json

[
{ "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": "SK", "ServiceId": "191" },
{ "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": "NAVER", "ServiceId": "815374" },

.

.

.

]

 권한 문제가 있을 수 있으니 터미널에서 chmod -R 755 /home/tv/다운로드/epg2xml 라고 입력해둔다. (epg2xml 디렉토리 하위 파일에 대해서 파일 소유자는 읽기, 쓰기, 실행, 다른 사용자에게는 읽기 및 실행 권한 부여)


  epg2xml을 internal grabber로 사용하려면 아래 파일이 /usr/bin/ 디렉토리에 존재해야 한다. /usr/bin  디렉토리를 살펴보면 tv_grab_~~ 형식의 파일들이 많이 있는데 모두 grabber 들이다. 사용하지 않는 파일들은 지워도 무방하다.

tv_grab_file

#!/bin/sh

if [ "x$1" = "x" ]; then
         cd /home/tv/다운로드/epg2xml
         /usr/bin/python epg2xml.py
    exit 0
fi

case "$1" in
    --description)
    echo "My custom grabber"
    ;;
    --version)
    echo "1.0"
    ;;
    --capabilities)
    echo "baseline"
    ;;
esac

 빨간색 부분을 자신이 epg2xml 프로그램을 다운받은 경로로 바꿔준다. 아래 My custom grabber는 tvheadend 관리자 페이지에서 보여질 이름이다. 원하면 다른 이름으로 바꾼다.

 chmod +x tv_grab_file (실행파일이 되도록 권한을 줌) 을 입력하고

 cp tv_grab_file /usr/bin (/usr/bin 디렉토리로 복사)

(루트 계정이 아닐 경우 cp 명령어 앞에 sudo를 입력해야 한다.)



 tvheadend 웹페이지 설정에 들어가서 내부 그래버 (My custom grabber)를 사용하도록 Enabled에 체크. 저 부분이 안나타나면 우분투를 재부팅 해본다. (tvheadend만 정지했다 다시 실행하면 될거 같은데 우분투에서는 어떻게 하는지 모르겠음)  터미널에서 다음 명령어를 입력해서 Tvheadend를 재시작한다.

 sudo service tvheadend restart

EPG Grabber 탭으로 옮겨가서 Cron multi-line : 부분을 보면 매일 언제 정보를 가져올지 설정할 수 있다. 위의 캡처 화면은 10시15분, 22시15분에 작동되도록 설정한 모습. 여기까지 해놓고 조금 기다리면 EPG 정보를 가져오게 된다. (설정 변경시마다 새로 작동)

댓글