본문 바로가기

프로그래밍

tvheadend EPG xml데이타 소켓으로 밀어넣기

반응형
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv generator-info-name="epg2xml 2.0.0">   
  <channel id="1">
    <display-name>B쇼핑</display-name>      
    <icon src="https://i.imgur.com/8pwPc5R.png" />
  </channel>
  <programme start="20200707223600 +0900" stop="20200707233600 +0900" channel="1">
    <title lang="kr">[슬레진저] (혼)여성 아쿠아 와이어 트레일화 </title>
    <desc lang="kr"/>
    <category lang="kr">홈쇼핑</category>
    <rating system="KMRB">
   	 <value>전체 관람가</value>
    </rating>
  </programme>
</tv>

EPG자료는 알아서 구해주세요.. 위와같은 xml파일이 있다고 가정합니다.
여기서 중요한 부분은 display-name부분의 이름과 tvhead의 채널명이 동일해야 하며, channel id의 숫자와 programme 부분의 채널숫자가 동일해야 화면상에 나타납니다. 

위의 내용이  http://abcd.com/epg.xml 에 있을경우 서버에 파이썬3를 설치한 다음 아래 내용대로 파일을 작성후 
실행하시면 tvhead의 epg데이타에 강제로 밀어넣는 모습을 보실 수 있습니다.
실행하실때는 synology의 작업관리자에 매일 특정시간에 실행되도록 넣어두시면 좋습니다. 

import os
import urllib.request
import socket
uh = urllib.request.urlopen('http://abcd.com/epg.xml')
html = uh.read()


socketURL = "/volume1/@appstore/tvheadend-testing/var/epggrab/xmltv.sock"
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.connect(socketURL)
sock.sendall(html) 

 소켓 URL 은  tvheadend의 설정 - 채널/EPG - EPGS 그래버 모듈(안보일경우 설정 - 사용자에서 expert mode로 변경후 )
오른쪽 경로 부분의 주소입니다. 

반응형