epg2xml 소스는 wonipapa github자료를 이용합니다.
5.22일자 현재 최신버전은 1.1.9 입니다.
변화점이있다면 xml-web.php 가 추가되었고,
epg2xml.php는 PHP 5.6이상에서 동작합니다.5.3.6 에서는 동작이 안됩니다. (Xpenology 5.2.5971 의 PHP버전입니다).
따라서 1.1.5 버전 정도를 사용하던지 아니면 xpenology 를 6.x 대로 업그레이드를 하든지 ...
1. epg2xml 소스 수정 및 업로드
자, 따라서 기존처럼 그냥 python기반인 epg2xml.py 를 사용하겠습니다.
기본적으로 python은 설치되어 있어야 동작합니다.
이전 게시물을 참고하세요.
python 및 easy_install beautifulsoup, easy_install lxml 설치
https://github.com/wonipapa/epg2xml
에서 download zip버튼으로 소스를 다운받으신후,
압축을 풀어봅니다.
epg2xml 폴더이름으로 풀었다면, 내용물을 봅니다.
Channel.json
epg2xml-web.php
epg2xml.json
epg2xml.php
epg2xml.py
README.md
readme.txt
채널정보.xlsx
에서 epg2xml.json을 수정하겠습니다.
{
"###_COMMENT_###" : "",
"###_COMMENT_###" : "epg 정보를 가져오는 설정 파일",
"###_COMMENT_###" : "사용하는 ISP 선택 (ALL, KT, LG, SK)",
"MyISP": "LG",
"###_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": "y",
"###_COMMENT_###" : "#### 제목에 회차정보 출력 ###",
"default_episode" : "n",
"###_COMMENT_###" : "### EPG 정보 추가 출력 ###",
"default_verbose" : "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_###" : ""
}
ISP 부분 - 본인의 IPTV통신사,
epg가져올 기간 - 원하는 기간으로 수정합니다. 저는 보통 5일치 가져옵니다. 녹화예약을 위해설..
위에서는 LG, 2일치가 되겠습니다.
나머지는 그대로 두고 저장합니다.
폴더째 나스에 업로드 합니다.
업로드후 나스에서도 우클릭 - 텍스트 편집기로 열기로 눌러서 수정하시고 저장이 가능하니 참고하세요.
저는 /volume1/pvr/wonipapa/epg2xml 폴더로 업로드 하였습니다.
혹시 권한이 안되어 있다면, epg2xml 폴더의 권한을 755로 줍니다. (항상 기본이죠..)
putty로 접속해서 권한 변경해봅니다.
chmod -R 755 /volume1/pvr/wonipapa/epg2xml
이렇게 주면 폴더 하위의 모든 파일에 대해 755로 됩니다.
2. tv_grab_file 수정 및 업로드
내부(internal) grabber 를 사용하기 위해서는 이 파일이 필요합니다.
TVHeadend 설정에서 보면 /usr/bin/tv_grab_~~~ 로 된 이름이 있으면 이 파일을 내부그래버로 쓰는 것입니다.
( 첨언을 하자면 tv_grab_ 은 유지하되 뒷부분은 내맘대로 여러개도 만들 수 있습니다. tv_grab_LG 머 이런식...)
첨부한 파일을 수정합니다.
제가 수정을 해서 다음과 같은 내용으로 있을 것입니다.
메모장을 열어서 본인이 업로드한 epg2xml 소스 폴더위치로 잡아주세요
cd /volume1/pvr/wonipapa/epg2xml
/usr/bin/python epg2xml.py
빨간 부분의 위치만 바꾸시면됩니다. 저의 경우 아래 경로입니다.
수정한 tv_grab_file을 /volume1/pvr 폴더에 업로드 합니다.
이제 준비는 되었습니다.
3. tv_grab_file 권한 수정 및 복사
이 업로드한 파일은 /usr/bin 폴더에 존재해야하므로 복사를 해봅니다.
만약, WinSCP를 사용하실 수 있으시다면, 위 처럼 pvr폴더에 복사하지 말고 바로, /usr/bin에 복사하셔서 권한 수정 작업을 하셔도 됩니다.
putty 콘솔에서 다음과 같은 명령을 합니다.
적어볼께요
cd /volume1/pvr 폴더로 이동
ls 파일 확인 ( 저기 원래 회색인데 권한이 지정되어서 녹색으로 보입니다)
chmod +x tv_grab_file tv_grab_file이 실행파일이 되도록 권한을 줍니다. 녹색으로 색깔이 바뀝니다.
cp tv_grab_file /usr/bin /usr/bin 폴더로 복사합니다.
4. Tvheadend 내부 그래버 설정
이제 Tvh에서 내부그래버를 설정해보겠습니다.
그전에..
====================================================
저 같은 경우 보여드리기 위해서 기존 외부xml, 즉 xmltv.sock 부분을 사용안함, 그리고 불러온 epg 그래버를 삭제하는 작업을 다음과 같이 하였습니다.
그러므로 아무정보도 없으신 분은 이부분을 넘어가주세요.
내부 외부 그래버를 중복으로 할 필요가 없기때문에 혹시라도 중복으로 쓰시는 분이 있다면 하나만 쓰는게 좋을 것입니다.
기존 정보입니다. 해당 위치로 가시고
우측 하단에 보이는 리스트를 "모두" 로 바꾸시고
CTRL+A눌러서 전제선택을 한후 삭제 하면 됩니다.
기존 외부 XMLTV부분을 끕니다. 켜짐 부분 체크해제 - 저장
=========================================================================
4-1) 내부 XMLTV부분을 켜서 활성화
해당 위치로 가서 켜짐에 체크 - 저장
4-2) 내부그래버 크론 설정
EPG 그래버 부분에서 이부분을 설정을 해야 주기적으로 EPG 를 업데이트 하게 됩니다.
테스트를 위해서 아래 부분에 값을 2분마다 실행으로 줘서 잘 되는지 봅니다.
크론 다중 행간(Cron multi - line )에 대한 명령옵션은 다음과 같습니다.
참고 http://docs.tvheadend.org/webui/config_epggrab/
* * * * * (분 시 일 월 요일 순서입니다.)
/ 는 매번 의 의미입니다.
# 은 주석처리입니다
*/2 * * * * 는 매2분마다
4 */12 * * * 는 매12시간마다 정시 4분 따라서 12시 4분이 되겠네요.
5 */3 * * * 는 3시간 간격으로 5분에 ..
적절히 쓰시면되겠습니다.
저는 하루에 한번 하니
1 1 * * * 새벽 1시1분마다 가 되겠네요.
수정후 저장 버튼을 누르면 아래 로그에 나오듯이 자동으로 한번 업데이트를 하게됩니다.
지금까지의 순서에 문제가 없다면 아래처럼 epg 내용을 잘 가져올 것입니다.
2일치 설정을 하였으므로 시간은 얼마 걸리지 않아 나올것입니다.
설정후 EPG 그래버 채널을 보시면 경로와 업데이트 됨에 표시가 잘 되어있을 것입니다.
확인만 하시고 다음과같이 다시 수정하고 저장합니다.
4 */12 * * *
#*/2 * * * *
12시간마다 정각 4분에 그랩동작하겠다 입니다.
2분마다는 주석처리하였다 입니다.
이제 패키지센터에서 Tvheadend 서비스를 중지하셨다가 재시작 혹은 NAS를 재부팅해주세요.
위에서 크론 스케줄에 적용하였는데도 잘안된다면 마찬가지로 패키지 서비스 중지했다가 재시작, 혹은 NAS를 재부팅해주세요
외부 XMLTV SOCK방식과 비교했을때 편한 방법으로 하면 되겠습니다.