epg2xml icon indicating copy to clipboard operation
epg2xml copied to clipboard

EPG 정보를 XML로 만드는 프로그램

EPG2XML

웹상의 여러 소스를 취합하여 XML 규격의 EPG(Electronic Program Guide)를 만드는 프로그램

  • 2018년 3월 31일 이후로 삭제된 wonipapa/epg2xml을 fork하여 관리하고 있습니다. 기본적인 내용은 기존의 README를 참고하세요.

  • 1.2.7 이후로 python과 php가 동일한 결과물을 보장하지 않습니다. (php 마지막 버전은 1.2.7p1)

  • 1.2.8 이후로 python2.7에 대한 지원은 종료 되었습니다. python2.7 마지막 버전

  • 1.5.2 이후로 v1에 대한 지원은 종료 되었습니다. 새로운 저장소에서 v2로 개발을 이어가겠습니다.

지원 소스 및 각각의 특징

소스 채널 템플릿 프로그램 포스터 요청수 소요시간 정보량 추천
KT :heavy_check_mark: :x: #channels * #days :rage::rage::rage: :smiley::smiley:
LG :x: :x: #channels * #days :rage::rage::rage: :smiley::smiley:
~~SK~~1 :heavy_check_mark: :x: ~~#days~~ ~~:rage:~~ ~~:smiley::smiley::smiley:~~ ~~:+1::+1::+1:~~
SKB :heavy_check_mark: :x: #channels * #days :rage::rage::rage::rage: :smiley::smiley:
NAVER :x: :x: #channels * #days :rage::rage::rage: :smiley:
WAVVE :heavy_check_mark: :x:2 1 :smiley::smiley: :+1:
TVING :heavy_check_mark: :heavy_check_mark: #channels/20 * #days * 24/3 :rage::rage: :smiley::smiley::smiley::smiley: :+1::+1:

1 SK btv 사이트 개편으로 현재 지원되지 않습니다. 다른 소스로 변경하여 사용하세요.

2 프로그램 포스터와 함께 추가 정보를 가져오려면 epg2xml.jsonWAVVE_more_details 항목을 참조.

~~정보가 많고 적은 요청으로 한 번에 가져와서 서버에 부담이 적은 SK를 기본으로 쓰고~~ 부족한 채널은 다른 소스에서 추가해 쓰는 것을 권합니다.

사용법

WAVVE EPG 사용법

1.2.7p2 이후로 추가된 WAVVE EPG의 사용법은 기존의 것과 약간 다릅니다. Channel.json에 다음과 같이 Source와 ServiceId를 주면 그 채널을 EPG로 만듭니다.

{ "Source": "WAVVE", "ServiceId": "K01" },

그 외 Id, Name, Icon_url은 직접 Channel.json에서 지정하지 않으면 자동으로 정해집니다. Id는 wavve|ServiceId가 되고 Name과 Icon_url은 WAVVE api가 주는 값을 기본값으로 갖습니다.

어떤 채널이 서비스 되고 있는지 ServiceId를 알기 어려우므로 일단 한 채널만 올라가 있는 여기의 Channel.json로 epg2xml을 한번 실행하면 같은 폴더에 WAVVE 채널의 템플릿인 Channel_WAVVE.json이 생성됩니다. 내용은 대략 아래와 같습니다.

[
    {
        "last update": "2020/02/16 05:53:31",
        "total": 98
    },
    {
        "WAVVE Name": "KBS 1TV",
        "Icon_url": "https://img.pooq.co.kr/BMS/Channelimage30/image/KBS-1TV-1.jpg",
        "Source": "WAVVE",
        "ServiceId": "K01"
    },
    {
        "WAVVE Name": "KBS 2TV",
        "Icon_url": "https://img.pooq.co.kr/BMS/Channelimage30/image/KBS-2TV-1.jpg",
        "Source": "WAVVE",
        "ServiceId": "K02"
    },
    {
        "WAVVE Name": "MBC",
        "Icon_url": "https://img.pooq.co.kr/BMS/Channelimage30/image/M01.jpg",
        "Source": "WAVVE",
        "ServiceId": "M01"
    }
]

첫번째로 생성일과 전체 채널의 갯수가 명시되고 그 아래로 서비스되는 채널의 정보가 나열됩니다. 참고로 WAVVE는 자주 새로운 채널이 추가되고 있던 채널이 삭제될 뿐만 아니라 가져오는 시간에 따라 api에서 제공여부가 달라져 전체 채널수가 자주 변하는 편입니다. 이 내용은 사용자가 원하는 채널을 Channel.json에 추가하기 쉽게 하기 위한 것이며 실제 적용은 현재 Channel.json와 같이 직접 입력해주어야 합니다. (화이트리스트 방식) 예를 들어 위 세개의 채널을 추가하고 싶다면 Channel.json에 아래와 같이 추가해주면 됩니다.

[
{ "Source": "WAVVE", "ServiceId": "K01" },
{ "Source": "WAVVE", "ServiceId": "K02" },
{ "Source": "WAVVE", "ServiceId": "M01" }
]

앞에서 말했듯이 tvheadend에서 인식 가능하게 하는 Id나 Name 필드 그리고 Icon_url은 직접 입력하지 않으면 기본값이 들어갑니다.

  • 파이썬 버전만 WAVVE EPG가 가능합니다. PHP 버전 pull request 환영합니다.
  • ~~Plex 연동시 프로그램 포스터 입력이 됩니다. 그래서 조금 느립니다.~~ 포스터 입력은 epg2xml.jsonWAVVE_more_details 항목을 참조
  • 너무 자주 요청하지는 마세요. 하루에 1~2번이면 충분하지 않을까 싶습니다.

조금 더 나은 사용을 고민해보겠습니다. 좋은 방안 있으면 issue로 알려주세요.

TVING 사용법

WAVVE와 동일합니다.

라이센스

BSD 3-clause "New" or "Revised" License

변경사항