글 Shamir
XMLTV EPG 파일이 실제로 어떻게 생겼는지 (예제 포함)
프로그램 가이드에 대한 혼동을 빠르게 해결하는 가장 빠른 방법은 열어서 읽는 것입니다. XMLTV은 순수 XML입니다 — 장황하지만 복잡하지는 않습니다 — 실제 예제로 10분을 투자하면 가이드가 비어있는 이유를 추측하는 데 수 시간을 낭비하는 것을 절약할 수 있습니다.
이 글은 실제 파일을 보여주고, 태그별로 분석한 후, 그 이해를 바탕으로 가장 흔한 가이드 실패를 설명합니다.
솔직한 설명: Tuneline는 당신이 제공하는 콘텐츠를 위한 미디어 플레이어입니다. 당신이 제공하는 일정 소스의 가이드를 표시합니다. 가이드나 콘텐츠 없이 제공됩니다.
한 문장으로 설명하는 구조
XMLTV 파일에는 정확히 두 가지가 들어있습니다: 무엇이 존재하는지 선언하는 <channel> 요소와 언제 무엇이 방송되는지 나타내는 <programme> 요소입니다.
이게 전부입니다. 나머지는 모두 세부사항입니다.
최소한의 완전한 예제
<?xml version="1.0" encoding="UTF-8"?>
<tv generator-info-name="example-grabber">
<channel id="example.news.us">
<display-name>Example News</display-name>
<icon src="http://logos.example/news.png" />
</channel>
<programme start="20260806180000 +0000"
stop="20260806190000 +0000"
channel="example.news.us">
<title lang="en">Evening Report</title>
<desc lang="en">The day's headlines and analysis.</desc>
<category lang="en">News</category>
</programme>
</tv>
이것은 한 소스와 한 시간의 일정을 설명하는 유효하고 완전한 가이드입니다. 실제 파일은 같은 두 가지 형태가 수천 번 반복됩니다.
태그별 분석
| 요소 | 기능 |
|---|---|
<tv> | 루트입니다. 모든 것이 내부에 있습니다. |
<channel id="…"> | 소스를 선언합니다. id이 중요한 부분입니다 — 이것이 조인 키입니다. |
<display-name> | 가이드에 표시되는 사람이 읽을 수 있는 이름입니다. |
<icon src="…"> | 로고 URL입니다. |
<programme start stop channel> | 예약된 하나의 항목입니다. channel은 <channel id>과 일치해야 합니다. |
<title> | 프로그램 이름입니다. |
<desc> | 시놉시스입니다. |
<category> | 장르입니다. 이것이 보호자 제어와 필터가 작동하는 대상입니다. |
타임스탬프 형식이 모두를 헷갈리게 합니다
start="20260806180000 +0000"
YYYYMMDDHHMMSS 뒤에 UTC 오프셋이 따르는 것으로 읽습니다. 그래서 이것은 2026년 8월 6일 18:00:00 UTC입니다.
오프셋이 중요한 부분입니다. 파일이 이를 생략하거나 현실과 맞지 않는 오프셋을 선언하면, 가이드는 완벽하게 로드되지만 모든 것이 잘못된 시간에 표시됩니다. 이는 빈 가이드와 완전히 다른 문제이며, 소스를 변경하지 않고 타임존 설정에서 수정됩니다. (잘못된 시간 수정.)
조인: 파일이 로드되었는데도 가이드가 비어있는 이유
이것이 이해할 가치가 있는 것입니다. 왜냐하면 대부분의 가이드 불만을 설명하기 때문입니다.
당신의 플레이리스트와 가이드는 일치시켜야 하는 두 개의 별도 파일입니다. 일치는 ID를 기반으로 발생합니다.
M3U에서:
#EXTINF:-1 tvg-id="example.news.us" tvg-logo="…",Example News
http://example.com/news.m3u8
XMLTV에서:
<channel id="example.news.us">
tvg-id은 channel id과 같아야 합니다. 정확히 — 대소문자와 구두점을 포함하여.
일치하면 항목이 일정을 표시합니다. 일치하지 않으면 빈 가이드가 있는 항목을 얻으며, 파일은 결코 잘못되지 않았습니다. (이것의 M3U 쪽.)
이것이 "가이드를 추가했는데 아무 일도 일어나지 않았습니다"가 보통 플레이리스트의 잘못도 가이드의 잘못도 아닌 이유입니다. 누구도 식별자에 동의하도록 하지 않은 것입니다. 플레이리스트와 다른 지역을 다루는 가이드는 항목과 일치하지 않는 수천 개의 프로그램을 로드합니다.

신뢰하기 전에 가이드 소스를 검사하는 방법
플레이어를 비난하기 전에 파일을 확인하세요.
1. 압축되어 있나요? 많은 소스가 .xml.gz로 제공됩니다. 이는 정상입니다 — 대부분의 플레이어가 처리합니다. 직접 검사하는 경우 먼저 압축을 해제하세요.
2. 실제로 당신의 소스를 포함하나요? 파일에서 당신의 tvg-id 값 중 하나를 검색하세요. 파일에 없으면, 그 가이드는 당신의 목록을 포함하지 않으며, 어떤 설정도 이를 변경하지 않습니다.
curl -s "https://example.com/guide.xml.gz" | gunzip | grep -c "<channel "
curl -s "https://example.com/guide.xml.gz" | gunzip | grep "example.news.us"
첫 번째는 선언하는 소스의 개수를 알려줍니다. 두 번째는 당신의 소스가 그 중 하나인지 알려줍니다.
3. 유용한 시간 범위를 다루나요? 가장 빠른 것과 가장 최근의 start 값을 확인하세요. 일부 무료 가이드는 24시간만 제공합니다. 일부는 2주를 제공합니다. 어제 끝난 가이드는 깨진 것과 동일하게 보입니다.
4. 크기는 얼마인가요? 전체 국가 가이드는 압축하지 않은 상태에서 수십 또는 수백 메가바이트입니다. 이는 정상이며, TV 박스에서 첫 로드가 몇 분이 걸릴 수 있는 이유입니다. (무료 XMLTV 소스.)
흔한 오류
실제 가이드 파일은 예측 가능한 방식으로 손상됩니다:
.xml로 저장된 HTML 오류 페이지. 엽니다. 첫 번째 줄이<!DOCTYPE html>이면, 다운로드가 실패하고 오류를 저장했습니다.- 이스케이프 처리되지 않은 앰퍼샌드. 제목에
&대신 단순한&이 있으면 잘못된 XML이며 전체 파싱을 중단할 수 있습니다. 하나의 잘못된 제목으로 인해 가이드가 전혀 없습니다. - 중복
<channel id>항목. 같은 ID의 두 선언; 동작은 플레이어에 따라 다릅니다. - 일치하는 채널이 없는 프로그램.
channel속성이 선언된<channel id>과 일치하지 않는 일정 항목입니다. 이들은 자동으로 삭제됩니다. stop시간 누락. 일부 그래버는 이를 생략하고 다음 프로그램의 시작이 끝을 암시할 것으로 예상합니다. 일부 플레이어는 이를 추론하지 않아 간격이 남습니다.
직접 작성하거나 편집할 수 있나요?
예. XML이므로 모든 텍스트 편집기가 작동하며, 작은 선별된 설정의 경우 완전히 실용적입니다.
유용한 편집:
<channel id>을 변경하여 플레이리스트가 이미 사용하는tvg-id과 일치하도록 하세요 — 종종 수백 개의 플레이리스트 줄을 편집하는 것보다 쉽습니다.- 간단히 하세요. 필요 없는
<channel>과<programme>요소를 삭제하세요. 더 작은 파일은 제약이 있는 장치에서 훨씬 빠르게 로드됩니다. - 오프셋을 수정하세요 모든 시간이 균일하게 잘못된 경우.
두 가지 규칙: UTF-8로 저장하고 올바른 형식을 유지하세요 — 하나의 이스케이프 처리되지 않은 &이 전체 가이드를 잃게 할 수 있습니다.
자주 묻는 질문
EPG 파일은 어떻게 생겼나요?
두 가지 요소 종류가 있는 순수 XML: 각 소스를 선언하는 <channel>과 각 예약된 항목에 대해 시작 시간, 종료 시간, 제목을 제공하는 <programme>입니다.
XMLTV은 어떤 형식입니까?
XML, 일반적으로 .xml 또는 gzip 압축 .xml.gz로 제공됩니다. 타임스탬프는 YYYYMMDDHHMMSS에 UTC 오프셋을 더한 것입니다.
가이드가 로드되는데 아무것도 표시하지 않는 이유는 무엇인가요?
거의 항상 플레이리스트의 tvg-id 값이 가이드의 <channel id> 값과 일치하지 않기 때문입니다. 파일은 잘 로드되었습니다. 조인할 것이 없었습니다.
가이드가 내 소스를 포함하는지 확인하려면 어떻게 하나요?
다운로드하고 필요하면 압축을 해제한 후 tvg-id 문자열 중 하나를 검색하세요. 파일에 없으면, 그 가이드는 당신의 목록을 설명하지 않습니다.
내 가이드 파일이 왜 이렇게 큰가요?
수백 개의 소스에 대해 2주 일정이 포함된 국가 가이드는 진정으로 수십 또는 수백 메가바이트입니다. 이는 예상되며, 첫 로드가 느린 이유입니다.
XMLTV 파일을 편집할 수 있나요?
예, 모든 텍스트 편집기에서 가능합니다. UTF-8로 저장하고 XML을 올바른 형식으로 유지하세요 — 하나의 이스케이프 처리되지 않은 &이 전체 파싱을 깰 수 있습니다.
결론
- XMLTV는 정확히 두 가지를 포함합니다:
<channel>선언과<programme>항목입니다. - 타임스탬프는
YYYYMMDDHHMMSS+ UTC 오프셋입니다 — 잘못된 오프셋은 올바른 데이터, 잘못된 시간을 의미합니다. - 가이드는 **
tvg-id=channel id**에서 정확히 플레이리스트에 조인됩니다. 불일치는 빈 가이드의 최상의 원인입니다. - 비난하기 전에 검사하세요: 압축 해제, ID 검색, 날짜 범위 확인.
- 하나의 **이스케이프 처리되지 않은
&**이 전체 가이드 파일을 무효화할 수 있습니다.
플레이리스트와 가이드 URL이 있으신가요? Tuneline 다운로드 — 둘 다 추가하면 그리드가 채워집니다. 무료이고 광고 없습니다.
— Shamir
이 글 공유하기
Get Tuneline free
A clean, no-account media player for macOS, Windows, Linux, Android, TV, and iOS. Bring your own playlist.
Download free다른 언어로 이 글 읽기
- EnglishWhat an XMLTV EPG File Actually Looks Like (With Examples)
- AfrikaansHoe lyk 'n XMLTV EPG Lêer Eintlik (Met Voorbeelde)
- العربيةكيف يبدو ملف XMLTV EPG فعليًا (مع أمثلة)
- বাংলাএকটি XMLTV EPG ফাইল আসলে কেমন দেখায় (উদাহরণ সহ)
- DeutschSo sieht eine XMLTV EPG-Datei wirklich aus (mit Beispielen)
- ΕλληνικάΠώς μοιάζει στην πραγματικότητα ένα αρχείο XMLTV EPG (με παραδείγματα)
- فارسیفایل XMLTV EPG واقعاً چگونه به نظر می رسد (با نمونه ها)
- SuomiMiltä XMLTV EPG -tiedosto oikeasti näyttää (esimerkkien kera)
- हिन्दीXMLTV EPG फ़ाइल वास्तव में कैसी दिखती है (उदाहरणों के साथ)
- ItalianoChe aspetto ha davvero un file XMLTV EPG (Con esempi)
- 한국어XMLTV EPG 파일이 실제로 어떻게 생겼는지 (예제 포함)
- Bahasa MelayuRupa Sebenar Fail XMLTV EPG (Dengan Contoh)
- NorskHvordan en XMLTV EPG-fil faktisk ser ut (med eksempler)
- РусскийКак выглядит файл XMLTV EPG на самом деле (с примерами)
- СрпскиKako zapravo izgleda XMLTV EPG fajl (sa primerima)
- SvenskaSå här ser en XMLTV EPG-fil faktiskt ut (med exempel)
- TürkçeBir XMLTV EPG Dosyası Gerçekte Neye Benziyor (Örneklerle)
Tuneline은 미디어 플레이어 애플리케이션입니다. 어떤 콘텐츠도 제공하거나 호스팅하거나 배포하지 않습니다. 재생목록은 VLC와 마찬가지로 사용자가 직접 준비합니다.