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

        비밀댓글입니다

    • Blacklabel
      2017.01.25 16:07 신고

      "Easy_install beautifulsoup" 와 "easy_install lxml" 설치는 ssh 접속후 admin 로그인후 root로 바꾸고
      Root@diskstation#: easy_install beautifulsoup 명령어 입력해 설치하면 되는건가요?

      • BlogIcon HappyChild
        2017.02.04 22:29 신고

        Dsm5.x는 ssh로 로그인시 root로 바로 로그인할수있습니다. 어드민 암호가 곧 루트암호입니다. 따라서 그냥 putty로 점속시 root 그리고 어드민 비번으로 로그인하시면 됩니다.
        그러고 슨서대로 하시면 됩니다

      • BlogIcon HappyChild
        2017.02.04 22:31 신고

        명령어는 글에 써놓았듯이 그렇게하거나
        pip install BeautifulSoup4
        로 pip명령으로 줘도 된다고 하였습니다. 둘중에 명령이 먹히는 것으로 하시면 됩니다

    • 박동수
      2017.02.04 14:13 신고

      usr/bin/python /volume1/pvr/epg2xml.py -i LG -s /volume1/@appstore/tvheadend-testing/var/epggrab/xmltv
      글 중간에 위 문구 입력하라고 하셨는데 어디에서 입력하나요?putty에서 입력하는건가요?

      • BlogIcon HappyChild
        2017.02.04 22:41 신고

        Putty에서... 해당 단계에서
        usr/bin/python /volume1/pvr/epg2xml.py -i LG -s /volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock

        명령입력 엔터했을때 그림과 같이 tvheadend 서버에 epgz정조가 제대로 올라오는지 보시라는것이고요. 제대로 나온다면

        그다음 단계로 위 그림과 같이
        이제 .py 파일을 열어서 해당 위치 값 xmltv.sock위치를 수정해주시고 저장한다음 putty 로 간단하게
        usr/bin/python /volume1/pvr/epg2xml.py -i LG -s 까지만 해도
        된다는 것입니다.

        Putty에서 잘된다면 마지막으로 자동으로 매일 혹은 며칠마다 이 명령이 실행되도록
        Xpenology 스케쥴러에 등록하라는 것입니다.

    • disk
      2017.02.09 23:40 신고

      우선 virtualbox로 돌리고 있습니다.
      1까지는 잘 따라했는데 2.부터 막히네요.
      root로 로그인하니까 xpenology 설치할때 관리자계정생성 맨 위에 쓴 서버이름> 이렇게 뜨네요. 이게 putty사진에서 하얗게 지운 부분인걸로 알고있고요.(이것도 갑자기 검은 사진이 나와서 뭔가 했는데 참고 블로그에서 telnet 쓰는거 보고 알았네요.)

      2. 에서 python 경로 적어주거나 path 주면 된다는것도 'python 경로'쳐서 찾아봤는데 어떻게 하라는건지 전혀 모르겠습니다.
      그리고 github에서 받은 epg2xml은 'putty 파일 전송'으로 찾아 pscp.exe 다운받고 cmd로 volume1/pvr에 전송했는데 그 다음 cd/volume1/pvr을 putty에서 치니까 not found라고 뜹니다.(cd /volume... 이렇게 치니까 can't cd to...라고 떠서 또 헤맸네요.)
      그냥 서버이름>dir 치니까
      drwx------ 4 root root 4096 Feb 9 22:31 .
      drwxr-xr-x 25 root root 4096 Feb 9 21:03 ..
      drwx------ 3 root root 4096 Feb 9 22:31 .cache
      drwx------ 2 root root 4096 Feb 9 22:27 .local
      -rw-r--r-- 1 root root 364 Nov 11 2015 .profile
      -rw-r--r-- 1 root root 1595408 Nov 7 04:30 get-pip.py
      -rw-r--r-- 1 root root 1595408 Nov 7 04:30 get-pip.py.1
      -rw-r--r-- 1 root root 0 Feb 9 22:29 wget
      이렇게 뜨는데 여기서는 경로가 안 보이는데 cmd에서 epg2xml은 잘 전송된걸로 떠서 뭐가 문제인지 모르겠습니다.

      설마 putty 끄고 한번에 안 했다고 나중에 안 되는건 아니겠죠?

      • BlogIcon HappyChild
        2017.02.10 11:43 신고

        그림에 보시면, python ~이렇게 제가 명령을 주었지요. 어느경로에서나 실행이 되니까 경로를 안준 것인데요.
        예를 들면 윈도우에서 D:\abc.exe 를 실행하는데 아래처럼 C:\에서 해도 되는것을 말합니다.
        C:\>abc.exe
        python을 설치를 하면 서버상에
        usr/bin/아래에 python 파일(폴더가 아니라 파일명이 이렇습니다)이 생성됩니다.
        (리눅스에서는 확장자가 없거나 윈도우랑 다르니 참고하시고요)

        따라서 epg생성 명령을 줄때
        usr/bin/python ~~~~~ 식으로 준다는 것입니다.
        그러니 위 대로 하시면됩니다.
        그리고 님의 나스 폴더스테이션에서
        보실때 기본 디스크가 Volume1입니다.
        거기에 최상위 공유폴더를 pvr로 만들었다는 가정하에 경로가 /volume1/pvr 이 되는것입니다.
        폴더도 없는데 전송을 하니 당연
        not found라고 나오겠지요.

        폴더스테이션에서 공유폴더 만드는 것은 아시나요?? 기본적으로 보시면 home, web등의 폴더가 보이실텐데 그런폴더를 말하는 것입니다.
        본인이 사용할 공유폴더를 만드셔야겠지요.

    • aroraror
      2017.02.17 17:36 신고

      python /volume1/homes/aroraror/epg2xml.py -i LG -s /volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock까지 입력했습니다
      원래 입력하에 아무런 메시지도 안나오는가요?
      엔터를 치니 수초정도 있다가 줄이 바뀌면서 커서가 나오네요.
      tvheadend에 가서 EPG를 봐도 새로 생긴 채널은 없고요... 좀 도와주세요. ㅠㅠ 어디가 잘못된걸까요?
      ---------------------
      자답합니다
      EPG grabber channels에 가면 채널들이 쭉~~ 나와있네요 ㅎㅎ
      정말 감사합니다 !!!!!!!!!!!!
      덕분에 성공했어요 ~~~~~~

    • kilvan
      2017.02.24 00:40 신고

      Error: xmltv.sock 파일을 찾을 수 없습니다. 라고 뜨는데 어떻게 해야 할까요 ㅜㅜ

      -d 옵션을주면 xml 형식으로 채널 정보가 와르르 뜨는데

      -s로 파일을 보내면 에러가 나고 윗분들 처럼 폴더를 지워도 동일하고 권한을 부여해보아도 동일하네요 ㅜㅜ

      • BlogIcon HappyChild
        2017.02.24 11:35 신고

        Tvh 설정 epg 모듈설정하시는데 가면 외부 xml xmltv.sock을 사용함 으로 녹색되게 변경하시고 저장하시고 해보시기바랍니다.
        모듈을 켜지않은 채 날리면 안날라갈거에요

티스토리 툴바