Guides·8 min

লিখেছেন Rawnok Jahan

শুরু থেকে একটি M3U প্লেলিস্ট কীভাবে তৈরি করবেন (২০২৬)

M3U ফাইল নিয়ে লেখা প্রায় সবকিছুতেই ধরে নেওয়া হয় যে কেউ আপনাকে একটি ফাইল দিয়েছে। এটি তার বিপরীত ধরনের গাইড: আপনার কাছে কিছু স্ট্রিম URL আছে, অথবা কয়েকটি সোর্স এক জায়গায় রাখতে চান, আর প্লেলিস্টটি নিজেই তৈরি করতে চান।

সুখবর হলো, একটি M3U ফাইল সাধারণ টেক্সটের ফাইল। আপনি এটি নোটপ্যাড, টেক্সটএডিট বা আপনার কাছে থাকা যেকোনো এডিটরে লিখতে পারেন, আর M3U পড়তে পারে—এমন প্রতিটি প্লেয়ারেই এটি কাজ করবে। কোনো বিশেষ সফটওয়্যার, পেইড টুল বা অ্যাকাউন্টের দরকার নেই। ফাইল ফরম্যাট হিসেবে এটি যতটা সহজ হওয়া সম্ভব, প্রায় ততটাই সহজ।

শুরু থেকে শেষ পর্যন্ত পুরো বিষয়টি এখানে দেওয়া হলো।

বিষয়টি সঠিকভাবে বলা যাক: Tuneline হলো এমন কনটেন্টের জন্য একটি মিডিয়া প্লেয়ার, যা আপনি সরবরাহ করেন। এই গাইডে আপনার ব্যবহারের অধিকার থাকা সোর্স দিয়ে কীভাবে প্লেলিস্ট তৈরি করবেন, তা দেখানো হয়েছে। এর সঙ্গে কোনো তালিকা বা নিজস্ব কনটেন্ট দেওয়া থাকে না।

একটি M3U ফাইল আসলে কী

একটি M3U হলো সূচিপত্র, কোনো কনটেইনার নয়। এতে ভিডিও বা অডিও থাকে না। এটি নাম ও ঠিকানার তালিকা থাকা একটি টেক্সট ফাইল; প্লেয়ার এটি ওপর থেকে নিচ পর্যন্ত পড়ে এবং যা খুঁজে পায়, তা দিয়ে একটি লাইব্রেরী তৈরি করে। (সম্পূর্ণ ফরম্যাটের ব্যাখ্যা এখানে।)

তাই আপনি এটি হাতে লিখতে পারেন। ভুল হওয়ার মতো কোনো বাইনারি কাঠামো নেই, হেডার চেকসাম নেই, কমপ্রেশনও নেই। আপনি যদি একটি URL টাইপ করতে পারেন, তাহলে একটি প্লেলিস্ট তৈরি করতে পারবেন।

ন্যূনতম কার্যকর প্লেলিস্ট

সবচেয়ে সরল বৈধ M3U হলো প্রতি লাইনে একটি করে URL-এর তালিকা:

https://example.com/stream-one.m3u8
https://example.com/stream-two.m3u8

এটি সত্যিই কাজ করে। প্রতিটি প্লেয়ার এটি লোড করবে। তবে ব্যবহার করা ভীষণ অসুবিধাজনক, কারণ কোনো নাম নেই—আপনি শুধু কাঁচা URL-এর তালিকা পাবেন এবং কোনটি কী, তা বোঝার উপায় থাকবে না।

তাই বাস্তবে সবাই এক্সটেন্ডেড M3U ব্যবহার করে, যেখানে প্রতিটি এন্ট্রির আগে একটি অতিরিক্ত মেটাডেটা লাইন থাকে:

#EXTM3U
#EXTINF:-1,First Source
https://example.com/stream-one.m3u8
#EXTINF:-1,Second Source
https://example.com/stream-two.m3u8

তিনটি নিয়ম জানলেই পুরো ফরম্যাটটি বুঝে যাবেন:

  1. প্রথম লাইনে #EXTM3U এই একটিমাত্র লাইন প্লেয়ারকে জানায়, "নিচে মেটাডেটা আসছে"। এটি বাদ দিলে অনেক প্লেয়ার ওপরের খালি-URL মোডে চলে যায় এবং আপনার লেখা সব নাম হারিয়ে যায়।
  2. প্রতিটি এন্ট্রির আগে #EXTINF: কোলনের পরের সংখ্যাটি সেকেন্ডে সময়কাল। লাইভ বা অনির্দিষ্ট সময়ের কনটেন্টের জন্য -1 ব্যবহার করুন। কমার পর থাকবে প্রদর্শিত নাম।
  3. ঠিক পরের লাইনে ঠিকানা। একটি এন্ট্রির #EXTINF লাইনের ঠিক পরেই তার একটি ঠিকানা থাকবে।

লোগো, গ্রুপ ও গাইড আইডি যোগ করা

সাধারণ ফরম্যাটে একটি কার্যকর তালিকা তৈরি হয়। কয়েকটি ঐচ্ছিক অ্যাট্রিবিউট যোগ করলে তা ব্রাউজ করার জন্য আরও সুবিধাজনক হয়ে ওঠে। এগুলো কমার আগে #EXTINF লাইনের মধ্যে থাকবে:

#EXTM3U
#EXTINF:-1 tvg-id="source.one" tvg-logo="https://example.com/logo1.png" group-title="News",First Source
https://example.com/stream-one.m3u8
#EXTINF:-1 tvg-id="source.two" tvg-logo="https://example.com/logo2.png" group-title="Sport",Second Source
https://example.com/stream-two.m3u8

প্রতিটি অ্যাট্রিবিউটের সুবিধা:

অ্যাট্রিবিউটএটি কী করেসেট করা উচিত?
tvg-idএই এন্ট্রিকে একটি গাইডের (EPG) ফিডের সঙ্গে মিলিয়ে দেয়, যাতে সময়সূচির তথ্য সঠিকভাবে মিলে যায়শুধু গাইড ব্যবহার করলে। ব্যবহার করলে এটিই সবচেয়ে গুরুত্বপূর্ণ অ্যাট্রিবিউট।
tvg-logoনামের পাশে দেখানো আইকনের URLথাকলে ভালো। অবশ্যই এমন একটি ছবি URL হতে হবে, যেখানে পৌঁছানো যায়।
group-titleএই এন্ট্রিটি যে বিভাগে থাকবেহ্যাঁ। এটিই সমতল তালিকাকে ব্রাউজযোগ্য মেনুতে পরিণত করে।
tvg-nameগাইডের সঙ্গে মেলানোর জন্য ব্যবহৃত বিকল্প নামশুধু তখনই, যখন tvg-id পাওয়া যায় না এবং আপনার প্লেয়ার নামের ভিত্তিতে মিল করে।

group-title-ই আপনার দৈনন্দিন ব্যবহারের অভিজ্ঞতায় সবচেয়ে বেশি পরিবর্তন আনে। প্লেয়ারগুলো এটি থেকেই সরাসরি বিভাগের সাইডবার তৈরি করে। তাই যুক্তিসংগত গ্রুপসহ একটি প্লেলিস্ট সঙ্গে সঙ্গেই ব্যবহারযোগ্য, আর গ্রুপ ছাড়া প্লেলিস্টে অবিরাম স্ক্রল করতে হয়। (প্লেলিস্টকে বিভাগে সাজানো সম্পর্কে আরও জানুন।)

গাইড যুক্ত করার পরিকল্পনা থাকলে তৈরির সময়ই tvg-id সঠিকভাবে সেট করুন। পরে কয়েক ডজন এন্ট্রির ক্ষেত্রে হাতে হাতে প্লেলিস্টের সঙ্গে গাইড মেলানো সত্যিই ভীষণ ঝামেলার। (গাইড কীভাবে মেলানো হয়।)

ধাপে ধাপে: ফাইল তৈরি করা

উইন্ডোজে

  1. নোটপ্যাড খুলুন। ওয়ার্ড নয়, ওয়ার্ডপ্যাডও নয়—ফরম্যাটিংবিহীন একটি সাধারণ টেক্সট এডিটর দরকার।
  2. উপরের ফরম্যাট ব্যবহার করে আপনার প্লেলিস্ট লিখুন।
  3. File → Save As।
  4. Save as type-এ All Files (*.*) নির্বাচন করুন। এই ধাপটিই সবাই সবচেয়ে বেশি ভুলে যায়।
  5. ফাইলটির নাম দিন myplaylist.m3u—এক্সটেনশনটিও লিখতে হবে।
  6. Encoding হিসেবে UTF-8 নির্বাচন করুন।

৪ নম্বর ধাপ বাদ দিলে উইন্ডোজ নীরবে myplaylist.m3u.txt হিসেবে ফাইলটি সংরক্ষণ করবে এবং কোনো প্লেয়ার এটি চিনতে পারবে না।

ম্যাকওএসে

  1. TextEdit খুলুন।
  2. Format → Make Plain Text (⇧⌘T)। TextEdit শুরুতে রিচ-টেক্সট মোডে থাকে, যা ফাইলটি নষ্ট করে দেবে।
  3. আপনার প্লেলিস্ট লিখুন।
  4. File → Save, নাম দিন myplaylist.m3u
  5. ম্যাকওএস .txt যোগ করার প্রস্তাব দিলে Use .m3u নির্বাচন করুন।

অ্যান্ড্রয়েড বা আইওএসে

ফোনের টেক্সট এডিটরগুলো ফাইলের এক্সটেনশন নিয়ন্ত্রণের সুযোগ দেয় কি না, তা একেকটিতে একেক রকম। সাধারণত কম্পিউটারে ফাইলটি লিখে ফোনে স্থানান্তর করা, অথবা ইচ্ছামতো এক্সটেনশন দিয়ে সংরক্ষণ করতে পারে—এমন কোনো এডিটরে তৈরি করা কম ঝামেলার।

কোন এক্সটেনশন: .m3u নাকি .m3u8?

দুটিই কাজ করে। ব্যবহারিক পার্থক্য হলো টেক্সট এনকোডিং:

  • .m3u8 UTF-8 কনটেন্ট নির্দেশ করে, অর্থাৎ ইংরেজি-বহির্ভূত নাম, অ্যাকসেন্ট এবং অ-ল্যাটিন লিপি সঠিকভাবে সংরক্ষিত থাকে।
  • .m3u ঐতিহাসিকভাবে স্থানীয়, পুরোনো এনকোডিং বোঝাত এবং কিছু পুরোনো সফটওয়্যার এখনও সেভাবেই ধরে নেয়।

নির্দিষ্ট কোনো কারণ না থাকলে UTF-8 এনকোডিংয়ে .m3u8 হিসেবে সংরক্ষণ করুন। প্রতিটি আধুনিক প্লেয়ারই দুটো পড়তে পারে, আর এতে অক্ষর বিকৃত হওয়ার একটি পুরো ধরনের সমস্যা এড়ানো যায়। একমাত্র ব্যতিক্রম: কিছু পুরোনো টিভি অ্যাপ শুধু .m3u চিনতে পারে। তাই কোনো ডিভাইস আপনার ফাইল একেবারেই গ্রহণ না করলে এক্সটেনশন বদলে দেখা সহজ একটি চেষ্টা।

আপনার প্লেলিস্ট লোড করা

সংরক্ষণ করার পর এটি একটি প্লেয়ারে দিন।

ডেস্কটপে বেশিরভাগ প্লেয়ার সরাসরি স্থানীয় ফাইল খুলতে পারে। ম্যাকওএস, উইন্ডোজ বা লিনাক্সে Tuneline ব্যবহার করলে Add Source নির্বাচন করুন, স্থানীয় ফাইলটি বেছে নিন, আর এটি সঙ্গে সঙ্গেই লোড হবে।

ফোন ও টিভিতে স্থানীয় ফাইলের বদলে URL ব্যবহার করাই নির্ভরযোগ্য পদ্ধতি, কারণ মোবাইল ও টিভি অ্যাপগুলো সাধারণ ফাইল সিস্টেমের অবস্থান থেকে আলাদা স্যান্ডবক্সে থাকে। একই হাতে তৈরি প্লেলিস্ট টিভিতে ব্যবহার করতে চাইলে ফাইলটি এমন কোথাও হোস্ট করুন, যেখান থেকে HTTPS-এর মাধ্যমে এটি আনা যায়, তারপর ঠিকানা দিয়ে যোগ করুন। (স্থানীয় M3U-কে URL-এ পরিণত করার পদ্ধতি এখানে।)

হাতে তৈরি ফাইলে এক ঘণ্টা দেওয়ার আগে একটি বিষয় জেনে রাখা ভালো: স্থানীয় file:// প্লেলিস্ট ক্লাউডে সিঙ্ক করা যায় না। ক্লাউড সিঙ্কের জন্য অন্য ডিভাইস থেকেও পৌঁছানো যায়—এমন একটি ঠিকানা দরকার, আর আপনার নিজের হার্ড ড্রাইভের পথ তা নয়। এটিকে URL হিসেবে হোস্ট করলে আপনার মালিকানাধীন প্রতিটি ডিভাইসে ব্যবহার করা যাবে।

হাতে তৈরি প্লেলিস্ট নষ্ট করে দেওয়া পাঁচটি ভুল

কোনটি কত ঘন ঘন সমস্যার কারণ হয়, সেই আনুমানিক ক্রমে:

  1. ফাইলটি আসলে একটি .txt উইন্ডোজ ডিফল্টভাবে এক্সটেনশন লুকিয়ে রাখে, তাই এক্সপ্লোরারে playlist.m3u.txt-কে playlist.m3u-এর মতো দেখায়। View → File name extensions চালু করে পরীক্ষা করুন।
  2. #EXTM3U অনুপস্থিত, অথবা প্রথম লাইনে নেই। এর আগে একটি ফাঁকা লাইন বা অতিরিক্ত কোনো অক্ষর থাকলেই প্লেয়ার পুরো ফাইলটিকে খালি URL-এর তালিকা হিসেবে ধরে। আপনার টাইপ করা প্রতিটি নাম হারিয়ে যাবে।
  3. URL-টি তার #EXTINF-এর ঠিক পরের লাইনে নেই। মাঝখানে একটি ফাঁকা লাইন থাকলেও এন্ট্রিটি বিচ্ছিন্ন হয়ে যায়।
  4. সাধারণ টেক্সটের বদলে রিচ টেক্সট। ওয়ার্ডে বা TextEdit-এর ডিফল্ট মোডে তৈরি করা ফাইলে ফরম্যাটিংয়ের অতিরিক্ত বাইট থাকে। স্ক্রিনে ঠিক দেখালেও পার্স করার সময় তা আবর্জনা হিসেবে গণ্য হয়।
  5. কোনো অ্যাট্রিবিউটে স্মার্ট কোট। যে এডিটর "-কে স্বয়ংক্রিয়ভাবে "-এ বদলে দেয়, সেটি এমন অ্যাট্রিবিউট তৈরি করে যা কোনো পার্সার চিনতে পারে না। এটি সবচেয়ে ধূর্ত সমস্যা, কারণ ফাইলটি দেখতে একদম ঠিক থাকে। সাধারণ টেক্সট এডিটর এমন করে না; ওয়ার্ড প্রসেসর করে।

ফাইল লোড হলেও কিছু না দেখালে, চ্যানেল লোড না হওয়ার চেকলিস্ট অনুসরণ করুন—এই পর্যায়ে ফরম্যাট ঠিক আছে, সমস্যা ঠিকানাগুলোতে।

কপি করার মতো একটি টেমপ্লেট

#EXTM3U
#EXTINF:-1 tvg-id="example.news" tvg-logo="https://example.com/news.png" group-title="News",Example News
https://example.com/news/index.m3u8
#EXTINF:-1 tvg-id="example.sport" tvg-logo="https://example.com/sport.png" group-title="Sport",Example Sport
https://example.com/sport/index.m3u8
#EXTINF:-1 group-title="Local",Local Recording Folder Stream
http://192.168.1.50:8080/stream

ঠিকানাগুলোর জায়গায় নিজের ঠিকানা বসিয়ে UTF-8-এ .m3u8 হিসেবে সংরক্ষণ করুন, তাহলেই একটি কার্যকর প্লেলিস্ট পেয়ে যাবেন।

সোর্সগুলো কোথা থেকে পাবেন

এই গাইডে ইচ্ছাকৃতভাবেই ফাইল ফরম্যাট নিয়ে আলোচনা করা হয়েছে। ফাইলের মধ্যে দেওয়ার ঠিকানাগুলো কোথা থেকে পাবেন, সেটি আলাদা প্রশ্ন এবং এর উত্তর গুরুত্বপূর্ণ।

যেসব বৈধ সোর্স দিয়ে আপনি প্লেলিস্ট তৈরি করতে পারেন, তার মধ্যে রয়েছে আপনার নিজের হোম মিডিয়া সার্ভার, LAN-এ থাকা নেটওয়ার্ক ক্যামেরা ও এনকোডার, প্রকাশ্যে দেওয়া ফ্রি-টু-এয়ার ও FAST ফিড, এবং আপনার নেওয়া সাবস্ক্রিপশনের অংশ হিসেবে যে পরিষেবা আপনাকে একটি ঠিকানা সরবরাহ করে। (FAST চ্যানেল কী এবং কীভাবে যোগ করবেন।) (Jellyfin, Plex বা Emby থেকে প্লে করা।)

প্লেয়ার হলো এমন কনটেন্টের জন্য একটি টুল, যা দেখার অধিকার আপনার আছে। প্লেলিস্ট তৈরি করলে কনটেন্টটি কোথা থেকে এসেছে, তা বদলে যায় না।

মূল কথা

  • একটি M3U হলো সাধারণ টেক্সট। আপনার প্রয়োজনীয় সফটওয়্যার বলতে নোটপ্যাড বা টেক্সটএডিটই যথেষ্ট।
  • প্রথমে #EXTM3U, তারপর #EXTINF:-1,Name এবং তার ঠিক পরেই ঠিকানা।
  • group-title এটিকে ব্রাউজযোগ্য করে; tvg-id গাইডের সঙ্গে সঠিকভাবে মিলিয়ে দেয়।
  • UTF-8-এ .m3u8 হিসেবে সেভ করুন এবং আপনার এডিটরকে প্লেইন টেক্সট হিসেবে সেট করুন।
  • সবচেয়ে বড় সমস্যা হলো, কোনো ফাইল গোপনে .txt হয়ে থাকা।

প্লেলিস্ট তৈরি করেছেন, এখন এটি চালানোর জন্য কোনো জায়গা খুঁজছেন? Tuneline ডাউনলোড করুন — বিনামূল্যে, কোনো বান্ডেল করা কনটেন্ট নেই, এবং এটি macOS, Windows, Linux, iPhone, iPad, Android, Android TV, Google TV ও Apple TV-তে চলে।

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

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-তে করেন।