Education·8 min

লিখেছেন Shamir

একটি XMLTV EPG ফাইল আসলে কেমন দেখায় (উদাহরণ সহ)

প্রোগ্রাম গাইড নিয়ে বিভ্রান্ত না হওয়ার দ্রুততম উপায় হল একটি খুলে পড়া। XMLTV সাধারণ XML — বৃহৎ, কিন্তু জটিল নয় — এবং একটি বাস্তব উদাহরণের সাথে দশ মিনিট আপনাকে আপনার গাইড কেন খালি তা নিয়ে ঘন্টার পর ঘন্টা অনুমান করার থেকে বাঁচাবে।

এই পোস্টটি একটি বাস্তব ফাইল দেখায়, এটিকে ট্যাগ দ্বারা ট্যাগ ডিকোড করে, এবং তারপরে সেই বোঝাপড়া ব্যবহার করে সবচেয়ে সাধারণ গাইড ব্যর্থতা ব্যাখ্যা করে।

সৎ ফ্রেমিং: 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 অফসেট। তাই এটি ৬ আগ ২০২৬, ১৮:০০:০০ UTC।

অফসেটই গুরুত্বপূর্ণ অংশ। যদি একটি ফাইল এটি বাদ দেয় বা এমন একটি ঘোষণা করে যা বাস্তবতার সাথে মেলে না, আপনার গাইড নিখুঁতভাবে লোড হয় এবং সবকিছু ভুল সময়ে প্রদর্শন করে। এটি একটি খালি গাইড থেকে সম্পূর্ণ আলাদা সমস্যা, এবং এটি আপনার টাইমজোন সেটিংসে সংশোধন করা হয়, উৎস পরিবর্তন করে নয়। (ভুল সময় সংশোধন।)

যোগ: আপনার গাইড কেন খালি এমনকি ফাইল লোড হওয়া সত্ত্বেও

এখানে বোঝার যোগ্য জিনিস রয়েছে, কারণ এটি বেশিরভাগ গাইড অভিযোগ ব্যাখ্যা করে।

আপনার প্লেলিস্ট এবং আপনার গাইড হল দুটি আলাদা ফাইল যা মিলিয়ে নিতে হবে। মিলটি একটি আইডিতে ঘটে।

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 দিক।)

এই কারণেই "আমি একটি গাইড যোগ করেছি এবং কিছু ঘটেনি" সাধারণত প্লেলিস্টের দোষও নয় এবং গাইডের দোষও নয়। এটি যে কেউ তাদের শনাক্তকারীগুলিতে সম্মত হতে বাধ্য করেনি। একটি গাইড যা আপনার প্লেলিস্টের চেয়ে অন্য অঞ্চল কভার করে তা হাজার হাজার প্রোগ্রাম লোড করবে যা আপনার কোনও এন্ট্রির সাথে মেলে না।

একটি গাইড উৎস যোগ করা

বিশ্বাস করার আগে একটি গাইড উৎস কীভাবে পরিদর্শন করতে হয়

আপনার প্লেয়ারকে দোষ দেওয়ার আগে ফাইলটি দেখুন।

১। এটি সংকুচিত কি? অনেক উৎস .xml.gz শিপ করে। এটি স্বাভাবিক — বেশিরভাগ প্লেয়ার এটি পরিচালনা করে। যদি আপনি হাতে দ্বারা পরিদর্শন করছেন তবে প্রথমে সংকোচন মুক্ত করুন।

२। এটি আসলে আপনার উৎস রয়েছে কি? আপনার 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"

প্রথমটি আপনাকে বলে যে এটি কত উৎস ঘোষণা করে। দ্বিতীয়টি আপনাকে বলে আপনার একটি তাদের একটি কিনা।

३। এটি কি উপকারী সময় পরিসর কভার করে? সবচেয়ে তাড়াতাড়ি এবং সর্বশেষ start মান পরীক্ষা করুন। কিছু বিনামূল্যে গাইড শুধুমাত্র ২৪ ঘণ্টা বহন করে; কিছু দুই সপ্তাহ বহন করে। একটি গাইড যা গতকাল শেষ হয়েছিল তা একটি ভাঙা একটির মতো দেখায়।

४। এটি কত বড়? সম্পূর্ণ জাতীয় গাইডগুলি সংকুচিত অবস্থায় দশ বা শত শত মেগাবাইট পর্যন্ত চলে। এটি স্বাভাবিক এবং এই কারণেই প্রথম লোড একটি টিভি বক্সে মিনিট সময় নিতে পারে। (বিনামূল্যে XMLTV উৎসগুলি।)

সাধারণ বিকৃতি

বাস্তব-বিশ্বের গাইড ফাইলগুলি পূর্বাভাসযোগ্য উপায়ে ভাঙ্গে:

  • একটি HTML ত্রুটি পৃষ্ঠা .xml হিসাবে সংরক্ষিত। এটি খুলুন। যদি প্রথম লাইনটি <!DOCTYPE html> হয় তবে ডাউনলোড ব্যর্থ হয়েছে এবং ত্রুটি সংরক্ষিত হয়েছে।
  • অপ্রতিরোধ্য অ্যাম্পারস্যান্ডস। একটি শিরোনামে &amp; এর পরিবর্তে একটি খাঁটি & অবৈধ XML এবং সম্পূর্ণ বিশ্লেষণ বাতিল করতে পারে। একটি খারাপ শিরোনাম, কোনও গাইড নেই।
  • সদৃশ <channel id> এন্ট্রিগুলি। একই আইডির দুটি ঘোষণা; আচরণ প্লেয়ারের উপর নির্ভর করে।
  • মিলিত চ্যানেল ছাড়া প্রোগ্রামগুলি। সময়সূচী এন্ট্রিগুলি যাদের channel বৈশিষ্ট্য কোনও ঘোষিত <channel id> এর সাথে মেলে না। তারা নীরবে ড্রপ করা হয়।
  • হারিয়ে যাওয়া stop সময়। কিছু গ্র্যাবার তাদের বাদ দেয় এবং পরবর্তী প্রোগ্রামের শুরু শেষটি বোঝাতে আশা করে। কিছু প্লেয়ার এটি অনুমান করে না, ফাঁক রেখে যায়।

আমি নিজে একটি লিখতে বা সম্পাদনা করতে পারি কি?

হ্যাঁ। এটি XML, তাই যেকোনো টেক্সট এডিটর কাজ করে এবং একটি ছোট্ট কিউরেটেড সেটআপের জন্য এটি সম্পূর্ণ ব্যবহারিক।

উপকারী সম্পাদনাগুলি:

  • একটি <channel id> পরিবর্তন করুন আপনার প্লেলিস্ট ইতিমধ্যে ব্যবহার করে এমন tvg-id এর সাথে মেলাতে — প্রায়শই প্লেলিস্টের শত শত লাইন সম্পাদনা করার চেয়ে সহজ।
  • এটি ট্রিম করুন। <channel> এবং <programme> উপাদানগুলি মুছুন যা আপনার প্রয়োজন নেই। একটি ছোট্ট ফাইল সীমিত ডিভাইসে অনেক দ্রুত লোড হয়।
  • অফসেটটি ঠিক করুন যদি প্রতিটি সময় সমানভাবে ভুল হয়।

দুটি নিয়ম: UTF-8 হিসাবে সংরক্ষণ করুন এবং এটি সুগঠিত রাখুন — একটি অপ্রতিরোধ্য & আপনার সম্পূর্ণ গাইড খরচ করতে পারে।

FAQ

একটি EPG ফাইল কেমন দেখায়?

প্লেইন XML যার দুই ধরনের উপাদান রয়েছে: প্রতিটি উৎস ঘোষণা করে এমন <channel>, এবং প্রতিটি নির্ধারিত আইটেমের জন্য শুরু করার সময়, থামানোর সময় এবং শিরোনাম দেয় এমন <programme>

XMLTV কোন ফর্ম্যাটে রয়েছে?

XML, সাধারণত .xml বা gzip-সংকুচিত .xml.gz হিসাবে পরিবেশিত। টাইমস্ট্যাম্পগুলি YYYYMMDDHHMMSS এবং একটি UTC অফসেট।

আমার গাইড কেন লোড হয় কিন্তু কিছু দেখায় না?

প্রায় সবসময় কারণ আপনার প্লেলিস্টের tvg-id মানগুলি গাইডের <channel id> মানগুলির সাথে মেলে না। ফাইলটি ভালভাবে লোড হয়েছে; এতে যোগ করার কিছু ছিল না।

আমি কীভাবে পরীক্ষা করব যে একটি গাইড আমার উৎসগুলি কভার করে?

এটি ডাউনলোড করুন, প্রয়োজন হলে সংকোচন মুক্ত করুন এবং আপনার tvg-id স্ট্রিংগুলির একটি অনুসন্ধান করুন। যদি এটি ফাইলে না থাকে তবে সেই গাইড আপনার তালিকা বর্ণনা করে না।

আমার গাইড ফাইল এত বড় কেন?

শত শত উৎসের জন্য দুই সপ্তাহের সময়সূচী সহ একটি জাতীয় গাইড সত্যিকার অর্থে দশ বা শত শত মেগাবাইট। এটি প্রত্যাশিত এবং এই কারণেই প্রথম লোড ধীর।

আমি একটি XMLTV ফাইল সম্পাদনা করতে পারি কি?

হ্যাঁ, যেকোনো টেক্সট এডিটরে। UTF-8 হিসাবে সংরক্ষণ করুন এবং XML সুগঠিত রাখুন — একটি একক অপ্রতিরোধ্য & সম্পূর্ণ বিশ্লেষণ ভাঙ্গতে পারে।

নিচের লাইন

  • XMLTV ঠিক দুটি জিনিস ধরে রাখে: <channel> ঘোষণা এবং <programme> এন্ট্রিগুলি
  • টাইমস্ট্যাম্পগুলি YYYYMMDDHHMMSS + UTC অফসেট — একটি ভুল অফসেট মানে সঠিক ডেটা, ভুল সময়।
  • গাইডটি আপনার প্লেলিস্টে tvg-id = channel id, ঠিক যোগ দেয়। অমিল একটি খালি গাইডের শীর্ষ কারণ।
  • দোষ দেওয়ার আগে পরিদর্শন করুন: সংকোচন মুক্ত করুন, আপনার আইডির জন্য grep করুন, তারিখের পরিসীমা পরীক্ষা করুন।
  • একটি অপ্রতিরোধ্য & একটি সম্পূর্ণ গাইড ফাইল অবৈধ করতে পারে।

একটি প্লেলিস্ট এবং একটি গাইড URL আছে? ডাউনলোড Tuneline — উভয় যোগ করুন এবং গ্রিড পূরণ করুন। বিনামূল্যে এবং বিজ্ঞাপন-মুক্ত।

— Shamir

আর্টিকেলটি শেয়ার করুন

The fast fix

Get Tuneline free

A clean, no-account media player for macOS, Windows, Linux, Android, TV, and iOS. Bring your own playlist.

Download free

The cross-platform media player behind these answers — new platforms, sync updates, the honest build story. No spam, unsubscribe anytime.

এই আর্টিকেলটি অন্য ভাষায় পড়ুন

Tuneline একটি মিডিয়া প্লেয়ার অ্যাপ্লিকেশন। এটি কোনো কনটেন্ট সরবরাহ, হোস্ট বা বিতরণ করে না। আপনি নিজের প্লেলিস্ট নিয়ে আসেন, ঠিক যেমনটি VLC-তে করেন।