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-cur 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서버를 구축하면서 겪었던 여러 시행착오와 애로 사항을 정리할 수 있었고 무엇보다 여러분께 작은 정보라도 드릴 수 있어 나름 보람 있었습니다. 이상 입니다.


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

탑이슈

IT정보, 제품 리뷰, 소프트웨어

    이미지 맵

    이전 글

    다음 글

    리눅스&우분투 다른 글

    댓글 5

      • 고생하셨습니다. 기술적인 포스트가 인기가 없군요 ㅠㅠ,저는 이런페이지를 좋아해서뤼 ㅋㅋㅋ따라하다봄 막히는게 꼭있고 해결하다봄 깨달음이 오고 ,응용도 가능한지라... ㅎㅎ
        인기는 없어도 구글링하다가 들오오시는 분들도 많을거에요 ^^ 저도 첨에는 TV라는 키워드로 여기까지 와 있는것 처럼요^^;
        아무튼 고생하셨습니다.
        포스트하신거 푹 한번보고 지적질할만한곳있음 지적질도 하도록하겠습니다. ㅎㅎ
        그럼 포스트 잘보고 갑니다^^ 굿잡입니다, 탑이슈님 ㅎ

      • 네 지적 질 환영합니다. 제 포스트들이 구글 친화적이긴해요. 앞전에 운영했던 블로그도 몇몇 글은 아직도 방문자가 많아요. 구글은 1순위 랭크한번되면 장기집권이 가능하거던요. 혹시 다루어 줬음하는 주제의 분야는 없는지요? 뭐 제가 다 방면으로 지식이 많은건 아니지만 참고해 보겠습니다.

      • tvheadend를 사용하고싶었는데 nas가 없어서 포기했다가 탑이슈님 글을 보고 시도해볼수있게되어 영광입니다. 그런데 이런류의 글이 인기가 없다는건 아쉽네요 ㅠㅠ

      • 저 또한 님과 같은 이유로 이 연재를 시작하였고 제 개인적 기질이 아무도 도전하지 않은 분야에 (맨땅에 헤딩 하기) 도전하기를 좋아합니다. 과정이 어려울수록 성취감은 배가되죠. 이렇게 인기(?)를 표해 주시니 감사할 따름입니다.ㅋㅋ

    *

    *

    해외에서 한국 실시간 방송(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채널이 등록되었습니다.

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

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

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

    국내 이용자를 위한 고화질 실시간 방송 구현에 대해 다 방면으로 생각해본 결과 tvheadend PVR, HTSP 방식은 개인 네트워크로는 많은 수의 접속자 트랙픽을 감당 할 수 없고 안정적인 서비스를 지속적으로 유지 할 수 없다는 결론입니다. 따라서 각 통신사에서 직접 송출하는 신호를 이용한 m3u를 코디(kodi)의 애드온인 'PVR IPTV Simple Client'에 등록해서 사용하는 방식을 택했습니다. 이 방식은 각 통신사의 고품질 네트워크(회선)을 사용함으로 UHD포함 고화질.고음질의 TV시청이 가능해 지며 각 통신사의 판매되는 IPTV 상품과 구현되는 원리도 똑같습니다. 즉, 본인의 인터넷 환경만 좋다면 버퍼링 없는 영상으로 TV시청이 가능합니다.

    외부 접속 및 모바일 환경에서 LTE 데이터 등 무선접속 시 TV시청이 어려운 점을 감안, 외부 접속시 사용할 수 있는 공용(http방식, TCP 프로토콜) m3u가 따로 제공됩니다. 이 m3u 경우 하루 2, 3개 정도는 항시 연결가능한 상태로 유지될 수 있도록 제가 꾸준히 업데이트 합니다. 이 파일은 통산사 구분을 하지 않으며 유/무선 인터넷 연결가능한 상태이면 원할한 TV시청이 가능합니다.

    아울러 탑이슈에서 공개(외부) EPG url 등록을 통해 EPG정보까지 완벽 구현됩니다. 이를 위해 본 자료실의 제공되고 있는 통신 3사 m3u의 대대적인 작업이 있었으며 코디(kodi)등의 플레이어를 통해 각 통신사 IPTV 상품을 이용하듯 사용 가능합니다.

    EPG기능은 코디(kodi)는 물론이고 m3u 재생 가능한 관련 플레이어에서 EPG정보를 지원하는 경우 해당 플레이어에 EPG정보도 표시됩니다.

    현재 통신 3사 KT(70ch), LG(190ch), SK(180ch) 업데이트된 m3u와 외부 EPG 접속을 위한 url이 제공되고 있습니다.

    특히 kt의 경우 일부 종편 및 몇몇 채널이 시청이 불가하나 타 통신사 TV채널로 대체하여 서비스 되고 있는점 참고바랍니다.


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

    이 서비스는 여러분의 후원을 통해 이루어집니다.

    이 서비스는 일정금액 후원 후 이용 할 수 있습니다. 후원은 최소 5천 원부터 가능하며, 후원금은 장비 업그레이드와 유지 비용으로 사용됩니다. 후원은 절때 강제 사항이 아니며 보다 안정적인이고 지속가능한 서비스 유지를 위한 방안이니 늘리 이해해 주시기 바랍니다.

    SC제일은행 : 77720390237
    카카오뱅크 : 3333063200547

    예금주 : 서승종


    자료실 미리보기


    현재 운영 중인 자료실 캡처 화면

    현재 운영 되고 있는 페이지 일부분을 캡처한 화면입니다. 기본적으로 IPTV를 시청하기 위한 m3u파일을 제공하며 여러 멤버들과의 이 주제의 다양한 의견 교환과 정보 공유도 할 수 있습니다.

    또한 tvheadend 스트리밍 서버에 관심이 있고 구축을 계획하고 있다면 이에 필요한 여러 사항들도 자문해 드리고 도울 수 있는 범위 내에서 도와 드립니다.

    이 서비스는 한번 후원으로 기간 제한 없이 이용 할 수 있습니다.

    후원 후 hots01@daum.net으로 입금자 성함, 후원금액, 사용 중인 통신사를 기제, 메일 주시면 자세한 설명과 이용 방법을 제공합니다.