tvheadend 외부(공개) EPG, xmltv.xml 생성을 위한 웹서버 구축 - 우분투 NAS ⑤

tvheadend에 아파치(Apache) 웹서버를 설치하여 외부에서 접근(공개) 가능한 EPG 정보 xmltv.xml url 설정 - 우분투 NAS ⑤

지난 포스트에서 운분투를 설치하고 각종 설정과 tvheadend를 설치해 TV채널을 등록하고 EPG정보 출력하는 작업까지 알아보았습니다.



오늘 이 시간에는 우분투 + tvheadend 통한 HTSP(Home Tv Streaming Protocol, TV 스트리밍 프로토콜)서버 구현 마지막 시간으로 epg정보를 사용하기 위해 외부에서 접근 가능한 xml을 생성하는 과정을 소개합니다. 우분투 + tvheadend에 대한 연재는 마치지만 우분투에서 멀티미디어 활용을 위한 여러가지 방법 등은 계속해서 포스팅 할 계획입니다.

아파치(Apache) 웹서버와 mysql설치

$sudo apt-get install apache2
$sudo apt-get install mysql-server

위 명령으로 아파치를 설치할 수 있습니다. mysql-server는 별도 계정 설정을 해야 사용 가능합니다 만, 이 시간에는 다루지 않겠습니다. 차 후 Apache + mysql + PHP에 관한 포스팅을 계획 중임으로 그때 자세히 다뤄보겠습니다.

http://localhost/로 접속해 봅니다. 아래와 같은 화면이 나온다면 잘 설치된 것입니다.

PHP 설치

$sudo apt-get install php php-mysql

epg2xml.php에서 필요로 하는 PHP 모듈설치

$sudo apt-get install php-curl php-json php-dom php-mbstring

아파치 웹서버를 재 시작해 줍니다.

$sudo service apache2 restart

PHP작동 유무와 설치된 모듈에 대한 확인을 위해 다음의 php파일을 생성해 줍니다.

$cd /var/www/html
$sudo nano info.php

나노 텍스트 편집기에서 다음의 내용을 추가하고 저장합니다.

<?php phpinfo(); ?>

웹브라우저에서 http://localhost/info.php 입력해 봅니다.

위와 같이 php정보와 관련 모듈이 설치되었음을 확인합니다. 이상으로 모든 설치는 끝났습니다.

외부에서 접근 가능한 공개 xmltv.xml 생성하기

이제 지난번 포스트에서 설정했던 /home/mypc(자신의계정)/epg2xml-master로 이동합니다.

$cd /home/mypc/epg2xml-master

이제 다음의 명령으로 xmltv.xml을 생성합니다.

$sudo php epg2xml.php -i LG -o /var/www/html/xmltv.xml

지난번 포스트에서는 epg2xml.json을 수정해 아무런 옵션을 주지 않고 python으로 EPG정보를 갱신하였으나 이번에는 '-i LG -o /var/www/html/xmltv.xml'라는 옵션을 주었습니다. 아무런 옵션을 주지 않으면 epg2xml.json에 설정된 내용(옵션)을 참고해 EPG정보를 생성합니다. 즉, hvheadend의 internal grabber는 epg2xml.json의 내용을 참고해 EPG정보를 생성하고, 위의 옵션을 준 것은 epg2xml.json를 수정하지 않고 EPG정보를 생성하기 위함입니다.

옵션 '-i LG'는 통신사 ISP를 뜻하며 '-o /var/www/html/xmltv.xml'는 /var/www/html위치에 xmltv.xml이라는 파일을 출력(-o)하기 위한 옵션입니다.

사실 오늘 설치한 php는 설치하지 않아도 지난번 포스트의 python을 이용해 xmltv.xml을 생성할 수 있습니다.

$sudo python epg2xml.py -i LG -o /var/www/html/xmltv.xml

그럼에도 불구하고 오늘 php를 설치한 건 이왕 웹서버를 운영하기로 한 거, 앞으로 다른 웹서비스를 위한 웹페이지 생성 및 데이터 처리에 있어 php와 mysql을 이용하면 여러모로 도움이 되기 때문입니다. 그리고 epg2xml는 python외 php도 지원하고 있다는 걸 여러분에게 알려주기 위함입니다. 또 한 가지, 필자의 경험으로 볼 때 python보다 php가 epg정보를 더 잘 받아 온다는 느낌이 들어서 입니다. 실제 python을 사용할 때 표시되지 않던 epg정보가 php로 사용하면 표시되는 경험이 있습니다.

우분투 crontab, 예약 작업(schedule) 등록하기

internal grabber는 hvheadend에서 자동으로 갱신 됩니다. 하지만 위에서 생선한 xmltv.xml는 자동으로 갱신 되지 않습니다. 물론 hvheadend에 또 하나의 grabber를 생성해 이를 구현 할 수도 있으나 우분투 리눅스에는 crontab이라는 예약 작업을 도와주는 툴이 있기 때문에 구지 hvheadend의 도움을 받을 필요가 없습니다.

$sudo crontab -e

위의 명령을 실행하면 사용할 텍스트 에디터를 선택하라는 메세지가 나옵니다. nano에디터를 선택해 줍니다. 다음의 라인을 추가해 줍니다.

0 2 * * * php /home/mypc/epg2xml-master/epg2xml.php -i LG -o /var/www/html/xmltv.xml

crontab은 매일 새벽 2시에 위의 명령을 수행합니다. 즉, 예약 작업을 등록한 것이지요.

관리 상, 좀 더 편리하게 사용하려면 쉘(shell) 스크립트(script)를 하나 만들어 주면 편합니다.

$sudo nano /usr/bin/epg_uptate.sh

#!/bin/sh
php /home/mypc/epg2xml-master/epg2xml.php -i LG -o /var/www/html/xmltv.xml

위의 내용을 추가하고 적당한 권한을 줍니다.

$sudo 755 /usr/bin/epg_update.sh

이렇게 만든 스크립트는 아래의 명령만 주면 위의 내용이 실행됨으로 매우 편리합니다.

$/usr/bin/epg_uptate.sh

다시 crontab을 수정해 줍니다. 0 2 * * * php /home/mypc/epg2xml-master/epg2xml.php -i LG -o /var/www/html/xmltv.xml 이 라인을 지우고 아래와 같이 입력합니다.

0 2 * * * /usr/bin/epg_update.sh

참고로 crontab의 예약 작업(목록)확인은 crontab -l 명령으로 확인할 수 있습니다.

모든 작업은 끝났습니다. EPG를 지원하는 플레이어에서 외부 url을 등록하면 EPG정보를 사용할 수 있습니다. 위 작업 기준으로 외부 url은 http://[자신의 서버 ip]/xmltv.xml 입니다. 즉, 자신의 공인 ip가 222.111.333.444라면 http://222.111.333.444/xmltv.xml 이 최종 외부 url이 되겠습니다. 이렇게 생성된 외부 공개 url은 다른 지인 등 여러 이용자와 공유할 수 있습니다.

마치면서..

우분투와 tvheadend 조합의 HTSP서버 구성은 여기가 끝입니다. 그동안 많은 일이 있었지만 이 포스트를 준비하면서 과거 한 5년 정도 서버 보안 회사에서 일했던 기억들이 새록새록 합니다. 그 당시 유닉스(UNIX) 서버 운영했던 경험이 있어 이 포스트를 무사히 마칠 수 있었고 참 다행으로생각합니다.

이런 류의 기술적인 내용을 닮고 있는 포스트는 조회수도 안 나오고 인기가 별로 없습니다.ㅠㅠ 하지만 제가 tvheadend서버를 구축하면서 겪었던 여러 시행착오와 애로 사항을 정리할 수 있었고 무엇보다 여러분께 작은 정보라도 드릴 수 있어 나름 보람 있었습니다. 이상 입니다.


※   저작권 관련 안내
본 블로그의 모든 글과 사진 및 영상은저작권 보호를 받는 게시물 입니다. 본 블로그의 내용을 링크 및 인용 할 때에는 꼭 출처를 밝혀주세요. 게시자 허락없는 무단도용은 당신을 불행하게 만들 수도 있습니다.

해외에서 한국 실시간 방송(TV)를 보기 위해서 이 페이지를 방문했다면 바로아래 링크를 이용하세요. 간단한 설정으로 고화질 TV서비스를 받을 수 있습니다.

코디(kodi)로 해외→한국(TV) 실시간 방송 보기

새롭게 시작하는 코디(kodi) 실시간 TV 이용 안내

IPTV 코디(kodi) 한국 실시간 방송 테스트 종료와 함께 국내 이용자는 더 이상 코디 tvheadend PVR, HTSP 클라이언트를 이용할 수 없게 됩니다.

국내 이용자를 위한 고화질 실시간 방송이 새로운 방식으로 서비스됩니다. 이 방식은 코디(kodi)의 애드온인'PVR IPTV Simple Client'설정으로 사용 가능하며 탑이슈에서 제공하는 공개(외부) EPG url 등록을 통해 EPG정보까지 완벽 구현됩니다. 자세한 정보는 새롭게 시작하는 코디(kodi) 실시간TV 이용 안내와 아래 동영상을 참고하십시오.

위의 내용과 별개로 기존 자료실(이 페이지)은 계속 운영됩니다.


코디(kodi) m3u등록 및 외부EPG설정 / 탑이슈제공 영상

새롭게 시작하는 코디(kodi) 실시간TV 이용 안내

한국 IPTV - kodi(코디), 팟플레이어, tvheadend(티비헤드엔드) 자료실

본 자료실에는 KT 올레(olleh)TV, LG 유플러스(U+)TV, SK B(broadband)TV에서 시청 가능한 m3u dpl 파일 등이 제공 됩니다.

본 자료실에 접근 가능한 권한을 얻기 위해서는 PC에서 TV보기 포스트 본문의 하단 '마치면서...' 부분을 살펴 주십시오.


PC로 TV보기! 무료시청 (실시간, HD, UHD, 케이블, 유료채널) / 탑이슈제공 영상


TV셋톱박스(KT 올레TV, LG 유플러스TV, SK BTV)에서 유료 채널 무료로 보기 / 탑이슈제공 영상

PC로 TV보기! 무료 (HD, 케이블, 유료채널, 해외→한국)

2018.10.22 - KT 방송 신호가 암호화 방식으로 바뀌어 전송되어 일부 종편을 포함한 채널이 시청 불가 하다고 합니다. 여기 공용 채널(153ch)도 영향을 받아 몇몇 채널이 나오지 않고 있습니다. 지속 가능한 채널 확보를 위해 노력해보겠습니다.

2018.10.04 - 해외 거주 한국 동포 및 거주자를 위한 한국 실시간 방송 테스트 중입니다. 31일 종료 예정

2018.09.01 - 각 통신사 구분없이 해외에서 한국 실시간 HD방송을 바로 볼 수 있는 153개 의 채널이 등록 되었습니다. 물론 국내 이용자도 시청 할 수 있습니다.

2018.09.01 - 세계 주요 방송 128채널이 등록되었습니다.

국내외 코디(kodi) 실시간 TV 통합 서비스 이용 안내

그동안 해외 서비스와 국내(한국) 서비스를 구분해서 운영해왔던 서비스를 앞으로는 아래(링크) 페이지에서 통합해서 운영해서 운영합니다. 이미 통신 3사의 공중파와 종편을 제외한 대부분의 채널이 스크램블에 막힌 상태에서 제가 제공해 왔던 m3u를 이용한 국내 서비스는 더 이상 의미가 없다는 판단에서 입니다. 아래 서비스 페이지에 제공되는 서비스는 국내외 모든 회원님이 이용 가능합니다. 이에 내국(한국)인의 Basic계정 신청도 가능하고 월 단위의 후원도 가능합니다.

국내 해외, 통합 서비스 실시

그리고 기존 제공하던 m3u자료와 EPG XML 자료는 일정기간 계속 유지할 계획이며, 기존 서비스의 후원과 통합 서비스의 후원은 따로 구분하여 운영하니 이점 양해바랍니다. 즉, 국내 서비스를 후원과 통합 서비스 후원은 별개이며 아무런 연관성이 없습니다.