epg2xml/README.md
2017-07-04 14:44:53 +09:00

119 lines
5.0 KiB
Markdown

# 부탁드립니다.
https://www.facebook.com/%ED%99%94%ED%95%99%EA%B3%B5%ED%95%99%EC%86%8C%EC%9E%AC%EC%97%B0%EA%B5%AC%EC%A0%95%EB%B3%B4%EC%84%BC%ED%84%B0-379118755815148/
페이스 북 사용하시면 이 페이지 좋아요 좀 눌려주세요. 회사에서 페이스북으로 뭔가를 해보자고 해서 그나마 페이스북에 가입만 했다는 이유만으로 총대를 메었습니다.
좋아요가 몇개 이상이어야 페이지를 수정할 수 있고 하더군요.
시간되시면 부탁드려요
# EPG2XML
이 프로그램은 EPG(Electronic Program Guide)를 웹상의 여러 소스에서 가져와서 XML로 출력하는 프로그램으로 python2.7 및 php5.4.45 이상에서 사용 가능하도록 제작되었다.
python3과 php 5.4.45 이하에서는 정상적인 작동을 보장하지 못한다.
또한 외부의 소스를 분석하여 EPG 정보를 가공하여 보여주는 것이므로 외부 소스 사이트가 변경되거나 삭제되면 문제가 발생할 수 있다.
## 필요 모듈
### epg2xml.py
BeautifulSoup(bs4), lxml, requests 모듈이 추가로 필요하다.
설치 OS별로 모듈을 설치하기 위한 사전 설치 방법이 다를 수도 있으므로 검색해서 설치하도록 한다.
pip install beautifulsoup4, pip install lxml, pip install requests 로 추가할 수 있다.
* easy_install로 설치시 모듈이 인식되지 않는 경우가 있으므로 pip로 설치하기를 권한다.
### epg2xml.php
json, dom, mbstring, openssl, curl 모듈이 필요하다. 일반적으로 PHP가 설치되어 있다면 대부분 설치되어 있는 모듈이나 설치되어 있지 않을 경우 추가로 설치해야 한다.
### epg2xml-web.php
epg2xml.php와 동일
## 설정방법
### epg2xml.json
epg2xml.json 안의 항목이 설정 가능한 항목이다.
<pre>
MyISP : 사용하는 ISP를 넣는다 .(ALL, KT, LG, SK가 사용가능하다)
default_icon_url : 채널별 아이콘이 있는 url을 설정할 수 있다. 아이콘의 이름은 json 파일에 있는 Id.png로 기본설정되어 있다.
default_rebroadcast : 제목에 재방송 정보 출력
default_episode : 제목에 회차정보 출력
default_verbose : EPG 정보 상세 출력
default_fetch_limit : EPG 데이터 가져오는 기간이다.
default_xml_filename : EPG 저장시 기본 저장 이름으로 tvheadend 서버가 쓰기가 가능한 경로로 설정해야 한다.
default_xml_socket : External XMLTV 사용시 xmltv.sock가 있는 경로로 설정해준다.
</pre>
### Channel.json
Channel.json 파일을 텍스트 편집기로 열어보면 각채널별 정보가 들어 있다.
이중 Enabled:1로 되어 있는 부분을 Enabled:0으로 바꾸면 EPG정보를 가져오지 않는다.
필요없는 채널정보를 가져오지 않게 하는 것으로 EPG 정보 수집시 시간을 단축할 수 있다.
삭제된 채널등으로 인해서 오류 발생시에도 Enabled:0으로 변경하면 오류 발생을 차단할 수 있다.
## 옵션 소개
### epg2xml.py, epg2xml.php 옵션
실행시 사용가능한 인수는 --help 명령어로 확인이 가능하다
epg2xml.json의 설정을 옵션의 인수를 이용하여 변경할 수 있다.
<pre>
-h --help : 도움말 출력
--version : 버전을 보여준다.
-i : IPTV 선택 (ALL, KT, SK, LG 선택가능) ex) -i KT
-d --display : EPG 정보를 화면으로 보여준다.
-o --outfile : EPG 정보를 파일로 저장한다. ex) -o xmltv.xml
-s --socket : EPG 정보를 xmltv.sock로 전송한다. ex) -s /var/run/xmltv.sock
-l --limit : EPG 정보 가져올 기간으로 기본값은 2일이며 최대 7일까지 설정 가능하다. ex) -l 2
--icon : 채널 icon 위치 URL ex) --icon http://www.example.com
--rebroadcast : 제목에 재방송정보 표기 ex) --rebroadcast y
--episode : 제목에 회차정보 표기 ex) --episode y
--verbose : EPG 정보 상세하게 표기 ex) --verbose y
</pre>
### epg2xml-web.php 옵션
실행시 사용가능한 인수는 epg2xml.php?help 명령어로 확인이 가능하다
epg2xml.json의 설정을 옵션의 인수를 이용하여 변경할 수 있다.
ex : http://domain/epg2xml.php?i=ALL&l=2
## 사용방법
### tv_grab_file 사용시 (https://github.com/nurtext/tv_grab_file_synology)
tv_grab_file 안의 cat xmltv.xml 또는 wget 부분을 아래와 같이 변경해준다.
#### PYTHON의 경우
<pre>
/usr/bin/python /home/hts/epg2xml.py 또는
/home/hts/epg2xml.py
</pre>
#### PHP CLI의 경우
<pre>
/usr/bin/php /home/hts/epg2xml.php 또는
/home/hts/epg2xml.php
</pre>
#### PHP WEB의 경우
<pre>
http://domain/epg2xml.php 또는
http://domain/epg2xml.php?i=ALL&l=2
</pre>
### XMLTV SOCKET 사용시
**xmltv.sock 사용시 socat 등을 사용하지 않고 바로 socket에 쓰기가 가능하다**
#### PYTHON의 경우
<pre>
/usr/bin/python /home/hts/epg2xml.py 또는
/home/hts/epg2xml.py
</pre>
#### PHP CLI의 경우
<pre>
/usr/bin/php /home/hts/epg2xml.php 또는
/home/hts/epg2xml.php
</pre>
## 라이센스
BSD
## WIKI
https://github.com/wonipapa/epg2xml/wiki
## FAQ
https://github.com/wonipapa/epg2xml/wiki/FAQ