wonipapa님의 epg2xml.py 


    https://github.com/wonipapa/epg2xml


     

     BeautifulSoup설치를 위한 참고

    https://primalcortex.wordpress.com/2016/01/25/synology-installing-python-pip-package-installer/

     

    http://codingdojang.com/scode/367

     

     

     

    wonipapa님이 잘 만들어주셨네요. 1.0.5버전으로 올라섰군요. 

    1.08로 업데이트 되었습니다. 

    1.08부터 공식 github로 옮겨졌습니다.


    많이 개선되길 바라며 유저분들의 피드백이 잘 이루어졌음 좋겠습니다.

    여러가지 EPG를 사용하고 있습니다. naver ms Btv_Java 등등..
    오늘은 Wonipapa님의 EPG를 설치해봅니다.

     

    1. NAS 혹은 리눅스 운영체제에 따른 필요요건설치(Beautifulsoup, lxml)설치가 다양함으로 잘 연구하여 설치가 필요함.

    저의 환경: 시놀로지 배경의 Xpenology 5.2.5967.2

    1)Python설치
    설명서에 있는 easy_install beautifulsou(p가 빠졌습니다), easy_install lxml 의 설치를 위해 기본적으로 패키지 센터에서 python설치
    패키지센터에서 Python을 검색하면 2가지가 나옵니다. 파이선 모듈, 그리고 파이선3


    두가지를 다 설치합니다.

    epg2xml.py를 그냥 실행하면 Beautifulsoup 오류가 뜨므로 이제 다음과 같이 설치합니다.

     

    2)easy_install beautifulsoup, easy_install lxml 설치

    설명서에 있는대로 해보면 설치는 되는걸로 나오나,
    Epg2xml.py를 해보면 BeautifulSouup를 머머 ~~ 할수없다느니 또 에러가 뜹니다.
    설치를 분명히 했는데 왜???
    순간 멍때립니다.


    구글 검색합니다. 그래서 다음과 같이 설치해야함을 깨닫게됩니다.

    -pip다운로드
    wget https://bootstrap.pypa.io/get-pip.py

    -pip 인스톨러설치
    python get-pip.py

    시간이 좀 걸립니다. 인내합니다.

     

     

    -뷰티플소프설치(이부분은 아래처럼 파이프로 하셔도 되고 easy_install BeautifulSoup4 이렇게 명령하셔도 될듯합니다.)
    pip install BeautifulSoup4

    -lxml설치
    pip install lxml

    이제 EPG를 실행할 준비를 마쳤습니다.

     

     

     

    2. EPG2XML.PY  로 xmltv.sock로 날리기
    저는  grab_file 보다는 xmltv.sock를 선호하므로 다음과 같이 합니다.

    python이 모든 경로에서 구동 가능하지 않다면 python이 있는 경로를 적어주든가, 모든경로에서 실행가능하도록
    Path를 주면됩니다.

     

    - epg2xml.py는 /volume1/pvr폴더에 위치시키고 SSH에서 경로로 이동합니다.

    cd /volume1/pvr

     

    실행가능하도록 권한을 줍니다.
    chmod -x epg2xml.py

     

    그리고 channel.json도 혹시나 못읽을까봐 권한을 다음과같이 755로 줍니다.
    chmod 755 channel.json

     

    설치된 경로는 /usr/bin/python 입니다. 따라서 다음과 같이 적어서 실행합니다. (우리집은 GTV이므로..)
    usr/bin/python /volume1/pvr/epg2xml.py -i LG -s /volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock

     

    2일치 받는데도 시간이 좀 걸립니다. 기존 Btv JAVA방식이나 msxml이나 빠른편인데요.

    이렇게 일단 TVHeadend 서버에 EGP정보가 잘 전달되엇고 나옵니다

     


    5일치로 수정해봅니다.

    설명서 4번을 참고하여 epg2xml.py를 다음과 같이 수정합니다.

    21번줄부터 다음과 같은 값입니다.

    # Set My Configuration
    default_icon_url = '' # TV channel icon url (ex : http://www.example.com/Channels)

    default_fetch_limit = 5 # epg 데이터 가져오는 기간

    default_xml_filename = 'xmltv.xml' # epg 저장시 기본 저장 이름 (ex: /home/tvheadend/xmltv.xml)

    default_xml_socket = '/volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock' # External XMLTV 사용시 기본 소켓 이름 (ex: /ho
    me/tvheadend/xmltv.sock)


    EPG데이타 가져오는기간을 5 로,  기본  xml_socket경로를 저의 나스의 xmltv.sock경로로 적어둡니다. 이렇게 적어두면 실행시에 뒷줄을 생략할 수있으니 편하겠죠?

     

     

    수정저장하고 다음과 같이 다시 합니다.

    usr/bin/python /volume1/pvr/epg2xml.py -i LG -s

     

    간단하죠? -s 뒤의 xmltv.sock경로는 epg2.xml.py에서 기본경로로 적어두었으므로 생략하면됩니다.

    python실행이 제가 둔 /volume1/pvr에서도 가능하므로 더 짧게 다음과 같이 합니다.

    python /volume1/pvr/epg2xml.py -i LG -s

     

    3. 작업스케쥴러에 등록하기
    제어판 작업스케쥴러에 이제 등록합니다. 어떻게요??

    사용자정의스크립트, 이름은 wonipapa xml 로 주고, 실행명령어는 다음과 같이
    python /volume1/pvr/epg2xml.py -i LG -s

     

    간단하게..

    날수는 매일로 했습니다. 본인에 맞게 효율적으로 하면되겠지요.


    그림은 많아서 하나로 했습니다. 확대해서 참고해서 보세요.

     

     

     

     

     

     

     

     

     

    저작자 표시 비영리 변경 금지
    신고
    Posted by HappyChild
    • 아이피티비
      2016.12.23 21:30 신고

      글 잘 보았습니다. 헤놀로지 같은 환경에서

      Nas> python /volume1/pvr/epg2xml.py -i LG -s /volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock
      Traceback (most recent call last):
      File "/volume1/pvr/epg2xml.py", line 529, 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 2] No such file or directory
      Nas>
      이와 같이 오류 메시지가 나오는데 어떻게 해야 하나요? ㅜ

    • evan
      2016.12.29 04:50 신고

      저도 아이피 타임님과 같은 오류가 나는데 뭐가 문제일까요 ㅠㅠ

      :~# python /volume1/Apps/epg2xml.py -i KT -s /volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock
      Traceback (most recent call last):
      File "/volume1/Apps/epg2xml.py", line 529, in <module>
      sock.connect(args.socket)
      File "/usr/lib/python2.7/socket.py", line 228, in meth
      return getattr(self._sock,name)(*args)
      socket.error: [Errno 2] No such file or directory

    • 아이피티비
      2016.12.29 10:43 신고

      자문자답 합니다.epggrab 폴더 삭제한 후 명령어 다시 입력 하니 정상적으로 폴더 생성 후 epg 데이타 불러왔네요.

    • Peace
      2017.01.14 09:33 신고

      여기저기 돌아다니다가 여기까지왔는데...... 저도 윗분들처럼 나오네요... epggrab 폴더 삭제해봐도 안되네용. 참 저는 SK 사용합니다.
      :/# usr/bin/python /volume1/pvr/epg2xml.py -i SK -s /volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock
      Traceback (most recent call last):
      File "/volume1/pvr/epg2xml.py", line 529, in <module>
      sock.connect(args.socket)
      File "/usr/lib/python2.7/socket.py", line 228, in meth
      return getattr(self._sock,name)(*args)
      socket.error: [Errno 2] No such file or directory

      • peace
        2017.01.14 15:26 신고

        저도 자문자답이네용...
        tvheadend 에서 configuration - channel/epg - epg grabber modules - external : XMLTV 를 enabled 로 바꾸니 정상작동합니다.

      • BlogIcon HappyChild
        2017.01.15 20:02 신고

        네 잘 해결되어서 다행입니다. 기본적으로 모듈설정에서 xmltv 를 녹색으로 enable 해주어야겠죠. 해당부분의 설명이 부족했나봅니다.

    • mysti
      2017.01.21 19:07 신고

      에휴.. 따라서 해봤는데

      volume1$ /usr/bin/python /volume1/pvr/epg2xml.py -i SK -s
      File "/volume1/pvr/epg2xml.py", line 119
      hour = int(cell.text.strip().strip('??))

      이런 에러가 나오네요..-_-

      • BlogIcon HappyChild
        2017.01.24 14:16 신고

        -s 에서 뒷부분 sock경로를 생략하셨는데
        그럼 .py 소스에 있는 sock 기본값과 같은 경로입니까?

        경로가 다르다면 sock 경로값을 제대로 적어주셔야 할 것이고요.

        그리고, tvheanded 모듈설정에서,, xmltv 녹색으로 활성화 해주셔야하고요.


      • 2017.01.24 14:18

        비밀댓글입니다

티스토리 툴바