M3U8 Nedir? UTF-8 Oynatma Listesi ve HLS Yayın Dosyası Rehberi
Kısa cevap: M3U8, UTF-8 karakter kodlamasıyla kaydedilmiş M3U oynatma listesidir. İki farklı işte kullanılır: düz bir oynatma listesi olarak medya adreslerini sıralar, HLS yayınında ise yayının parçalarını ve kalite seçeneklerini tarif eden manifesto dosyası olur. Dosya medyanın kendisini taşımaz; Alpa Player gibi bir oynatıcı onu okuyup içeriği oynatır.
Öne çıkanlar
- M3U8, UTF-8 ile kodlanmış M3U'dur; Türkçe gibi ASCII dışı karakterleri güvenle taşır.
- Aynı .m3u8 uzantısı hem sıradan bir oynatma listesinde hem de HLS yayın manifestosunda kullanılır.
- HLS'de ana (master) liste kalite seçeneklerini, medya listesi ise ses ve görüntü parçalarını (segmentleri) sıralar.
- Dosyanın türünü etiketlerden anlarsınız: EXT-X-STREAM-INF ana listeyi, EXT-X-TARGETDURATION medya listesini gösterir.
- M3U8 yalnızca bir biçimdir; işaret ettiği içeriği kullanma hakkınız olup olmadığını kontrol etmek size aittir.
M3U8 nedir sorusunun kısa cevabı, uzantıdaki "8"in ne anlama geldiğinde saklıdır. Ama pratikte işler biraz karışıktır: aynı .m3u8 uzantısı bazen elle yazılmış bir müzik listesini, bazen de bir canlı yayının bütün kalite seçeneklerini anlatan dosyayı taşır. Bu yazıda M3U8'in ne olduğunu, M3U'dan farkını, HLS ile ilişkisini ve oynatılma yollarını örneklerle anlatıyoruz.
Konu, https://alpayazilim.com tarafından geliştirilen ücretsiz medya oynatıcı Alpa Player'ın da oynattığı biçimlerin merkezinde yer alır. Önce temelden başlayalım.
M3U8 nedir?
M3U8, UTF-8 karakter kodlamasıyla kaydedilmiş M3U oynatma listesi dosyasıdır; uzantıdaki "8" UTF-8'e gönderme yapar. Yapı M3U ile aynıdır: düz metin, satır satır adresler ve # ile başlayan etiketler.
Biçimin bugünkü en önemli kullanımı, Apple'ın geliştirdiği HLS (HTTP Live Streaming) teknolojisidir. RFC 8216, HLS oynatma listesi dosyalarının yolunun .m3u8 ya da .m3u ile bitmesi gerektiğini, bu dosyaların UTF-8 ile kodlanması ve bayt sırası işareti (BOM) taşımaması gerektiğini söyler. Dosyalar ayrıca application/vnd.apple.mpegurl ya da audio/mpegurl içerik türüyle sunulabilir.
Temel M3U'yu henüz görmediyseniz önce M3U dosyası nedir yazısına göz atmanız işinizi kolaylaştırır.
M3U ile M3U8 arasındaki fark nedir?
M3U ile M3U8 arasındaki asıl fark karakter kodlamasıdır; yapı ve etiketler aynı kalır. M3U dosyaları çoğunlukla sistemin eski kod sayfasıyla kaydedilir, M3U8 ise UTF-8'i garanti eder.
| Özellik | M3U | M3U8 |
|---|---|---|
| Karakter kodlaması | Belirsiz, çoğunlukla eski kod sayfası | UTF-8 |
| Türkçe karakterler (ğ, ş, ı) | Yanlış kodlamada bozulabilir | Güvenle taşınır |
| Uzantı | .m3u | .m3u8 |
| HLS yayınlarında | Uzantı olarak izinli ama seyrek | Standart seçim |
| Kullanım alanı | Ses ve video listeleri | Listeler ve HLS manifestosu |
| Yapı | #EXTM3U, #EXTINF, adresler | Aynısı; HLS'de ek etiketler |
Kısacası her M3U8 bir M3U sayılabilir, ama her M3U bir M3U8 değildir. Bir oynatıcı ikisini de açıyorsa, pratikte çoğu zaman aralarındaki fark yalnızca karakterlerin doğru görünüp görünmemesidir.
M3U8 dosyası hangi iki işi yapar?
M3U8 dosyası ya sıradan bir oynatma listesidir ya da bir HLS yayınının manifestosudur; ikisi de aynı uzantıyı kullanır. Ayrımı anlamak, bir adresi oynatamadığınızda neye bakacağınızı bilmenizi sağlar.
1. Oynatma listesi olarak
Bu kullanımda M3U8, farklı medya dosyalarının ya da yayınların sırayla listelendiği bir dosyadır. Her kayıt kendi başına oynatılabilir bir adrestir.
#EXTM3U
#EXTINF:-1,Örnek Yayın
https://live.example.com/ornek/index.m3u8
#EXTINF:215,Yaz Tatili
https://media.example.com/videolar/yaz-tatili.mp4
2. HLS manifestosu olarak
HLS'de M3U8 dosyası bir video listesi değil, tek bir videonun ya da yayının tarifidir. Video küçük parçalara (segmentlere) bölünür; M3U8 dosyası bu parçaların adreslerini ve sürelerini sırayla yazar. Oynatıcı parçaları art arda indirip birleştirir. Bu mekanizmayı HLS nedir yazısında ayrıntılı anlattık.
HLS'de ana liste ile medya listesi nasıl ayrılır?
HLS iki tür M3U8 dosyası kullanır: kalite seçeneklerini sıralayan ana liste (master playlist) ve parçaları sıralayan medya listesi (media playlist). Yeni Apple belgeleri ana listeye "multivariant playlist" de der.
Ana liste, aynı içeriğin farklı kalitelerini tanıtır. Her kalite için #EXT-X-STREAM-INF satırı, hemen altında o kalitenin medya listesinin adresi bulunur:
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=800000,RESOLUTION=640x360,CODECS="avc1.42c01e,mp4a.40.2"
https://cdn.example.com/video/360p/playlist.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2800000,RESOLUTION=1280x720,CODECS="avc1.4d401f,mp4a.40.2"
https://cdn.example.com/video/720p/playlist.m3u8
Medya listesi ise gerçek parçaları listeler. Aşağıdaki örnek, bitmiş bir videoyu (VOD) anlatan sade bir medya listesidir:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6.000,
https://cdn.example.com/video/720p/segment0.ts
#EXTINF:6.000,
https://cdn.example.com/video/720p/segment1.ts
#EXTINF:4.200,
https://cdn.example.com/video/720p/segment2.ts
#EXT-X-ENDLIST
| Etiket | Görevi |
|---|---|
#EXT-X-STREAM-INF | Ana listede bir kalite seçeneğini tanımlar; BANDWIDTH alanı zorunludur. |
#EXT-X-TARGETDURATION | En uzun parçanın saniye cinsinden süresi; medya listesinde zorunludur. |
#EXT-X-MEDIA-SEQUENCE | Listedeki ilk parçanın sıra numarası. |
#EXTINF | Sonraki parçanın süresi. |
#EXT-X-ENDLIST | Başka parça gelmeyecek; yani bu bir bitmiş video. |
Canlı yayında #EXT-X-ENDLIST yoktur ve sunucu listeyi yeni parçalarla sürekli günceller. Oynatıcı listeyi tekrar tekrar yükleyerek yeni parçaları yakalar. Kalitenin neden bir anda değiştiğini merak ediyorsanız adaptif bit hızı yazısı bu konuyu anlatıyor.
Bir M3U8 dosyasının türü nasıl anlaşılır?
Bir M3U8 dosyasının türünü metin düzenleyicide açıp birkaç etikete bakarak anlayabilirsiniz. Dosya sizin için bir kara kutu olmaktan çıkar.
#EXT-X-STREAM-INFgörüyorsanız bu bir HLS ana listesidir; adreslerin hepsi başka .m3u8 dosyalarıdır.#EXT-X-TARGETDURATIONve .ts ya da .m4s adresleri görüyorsanız bu bir HLS medya listesidir.- Yalnızca
#EXTINFsatırları ve tam medya adresleri (örneğin .mp4) görüyorsanız bu sıradan bir oynatma listesidir.
Bu ayrım önemlidir. Sıradan bir liste "şunların hepsini sırayla oynat" demektir; HLS dosyası ise "bu tek yayını şu parçalarla oynat" demektir. Bir oynatıcı ikisini farklı şekilde ele alır.
UTF-8 neden önemli ve BOM nedir?
UTF-8, dünyadaki hemen her harfi ve işareti tek bir kodlamayla yazabilen karakter kodlamasıdır; M3U8'in "8"i de buradan gelir. Başlıklarda ğ, ş, ı, ö gibi harfler kullanıyorsanız, dosya UTF-8 değilse bu harfler bozuk görünür.
Dikkat edilecek bir ayrıntı da BOM'dur. BOM (bayt sırası işareti), bazı editörlerin dosyanın başına eklediği görünmez bir işarettir. RFC 8216 HLS oynatma listelerinde BOM bulunmamasını ister; BOM'lu bir dosyanın ilk satırı #EXTM3U olarak tanınmayabilir ve liste hiç açılmayabilir. Kaydederken "UTF-8" seçin, "BOM ile" seçeneğini işaretlemeyin.
M3U8 dosyası nasıl oynatılır?
M3U8 dosyasını oynatmak için HLS ve oynatma listesi desteği olan bir medya oynatıcı gerekir; dosyayı tarayıcıda doğrudan açmak çoğu zaman işe yaramaz. Safari HLS'yi kendiliğinden oynatabilir, diğer tarayıcılar ise genellikle hls.js gibi bir oynatıcı kitaplığına ihtiyaç duyar. Adresi bir sekmeye yapıştırdığınızda video yerine metin ya da bir indirme penceresi görmeniz bu yüzden normaldir.
Güvenli yol, bir medya oynatıcıdır:
- Bilgisayar: VLC gibi yaygın oynatıcılar .m3u8 adreslerini açar.
- Android, TV ve Windows: Alpa Player, M3U ve M3U8 oynatma listelerini ve HLS yayınlarını oynatır.
- Tarayıcıda deneme: Alpa Player tarayıcı denemesi açık lisanslı örnek yayınlarla çalışır; kendi listenizi eklemezsiniz.
Alpa Player'da adresi Kaynak Ekle ekranından oynatma listesi adresi ya da tek yayın bağlantısı olarak eklersiniz. Adım adım anlatım için M3U listesi nasıl eklenir yazısına bakabilirsiniz. Uygulama; Android telefon ve tablet, Android TV ve Google TV, Samsung TV (Tizen 2020 ve sonrası), LG TV (webOS 2020 ve sonrası) ve Windows'ta çalışır. Alpa Player'ı ücretsiz indirin.
Android'de varsayılan motor ExoPlayer (Media3) tabanlıdır; VLC motoru ve harici oynatıcı da seçilebilir. Bir yayın bir motorda takılırken diğerinde akıcı çalışabilir. Farklar için ExoPlayer ve VLC yazısına bakın.
Oynatıcıyı ilk kez deniyorsanız, kullanım hakkı serbest örnekler için açık lisanslı test videoları yazısı işe yarar.
M3U8 oynatılmıyorsa ne yapmalısınız?
M3U8 oynatılmıyorsa sorun çoğunlukla adreste, parçalarda ya da bağlantıda çıkar. En sık nedenler şunlardır.
| Belirti | Olası neden | Ne yapmalı? |
|---|---|---|
| Tarayıcıda metin görünüyor | Tarayıcı HLS'yi kendiliğinden oynatmıyor | Bir medya oynatıcıda açın |
| Liste açılıyor, görüntü gelmiyor | Parça adresleri ulaşılamıyor ya da süresi dolmuş | Listeyi metin düzenleyicide açıp bir parça adresini deneyin |
| Türkçe karakterler bozuk | Dosya UTF-8 değil | UTF-8 olarak kaydedin |
| Kalite sürekli düşüyor | Bağlantı hızı dalgalanıyor | Video donma çözümlerine bakın |
| Yalnızca bir yayın oynamıyor | Süresi dolmuş anahtar, kapalı sunucu | Kaynağın sahibine ya da sağlayıcınıza danışın |
M3U8 kullanırken yasal ve güvenlik açısından nelere dikkat edilir?
M3U8 yalnızca bir dosya biçimidir ve kullanımı yasaldır; sorun, işaret ettiği içeriğin kullanım hakkında çıkar. Çoğu ülkede olduğu gibi Türkiye'de de izinsiz ya da lisanssız içerik yayımlamak ve izlemek yasa dışıdır; genel olarak 5846 sayılı Fikir ve Sanat Eserleri Kanunu ile 6112 sayılı Kanun anılabilir. Bu yazı hukuki tavsiye değildir.
Alpa Player'da hazır kanal, film, dizi ya da liste yoktur; uygulama bir yayın hizmeti değildir. Eklediğiniz adresler ve şifreler cihazın güvenli deposunda AES-256 ile şifreli tutulur, ekranda gösterilmez ve Alpa Yazılım'a gönderilmez. Siteden liste yüklemesini kullanıcı kendisi yapar, sorumluluk kullanıcıdadır ve her yükleme IP ve MAC adresiyle kayıt altına alınır. Ayrıntılar için yasal uyarı sayfasına bakabilirsiniz.
HLS ile DASH arasında kalıyorsanız MPEG-DASH ve HLS farkı yazısı da işinize yarayacaktır.
Adım adım: Elle bir M3U8 oynatma listesi hazırlama
- Düz metin düzenleyici açın ve ilk satıra #EXTM3U yazın.
- Her kayıt için bir #EXTINF satırı ve hemen altına medya adresini ekleyin.
- Dosyayı BOM'suz UTF-8 kodlamasıyla ve .m3u8 uzantısıyla kaydedin.
- Dosyayı bir oynatıcıda açıp her kaydın çalıştığını deneyin.
Sık sorulan sorular
M3U8 ile M3U arasındaki fark nedir?
Yapı aynıdır; fark karakter kodlamasıdır. M3U8, UTF-8 ile kaydedilmiş M3U'dur ve Türkçe gibi ASCII dışı karakterleri güvenle taşır. Üstelik HLS yayınlarının oynatma listeleri de .m3u8 uzantısı taşır. M3U ise çoğunlukla sistemin eski kod sayfasıyla kaydedilir.
M3U8 dosyası nasıl açılır?
Metin düzenleyiciyle açarak içeriğine bakabilir, bir medya oynatıcıyla açarak oynatabilirsiniz. Tarayıcıya yapıştırmak çoğu zaman video göstermez. Alpa Player, VLC gibi HLS ve oynatma listesi destekleyen oynatıcılara dosya ya da adresi tanıtmanız yeterlidir.
M3U8 bir video formatı mıdır?
Hayır. M3U8 bir video formatı değil, bir liste ya da tarif dosyasıdır. HLS'de görüntü ve ses, ayrı küçük parçalar (çoğunlukla .ts ya da .m4s) olarak durur; M3U8 yalnızca bu parçaların sırasını ve adreslerini yazar. Dosyanın içinde video verisi bulunmaz.
Her .m3u8 adresi HLS yayını mıdır?
Hayır. Aynı uzantı hem sıradan bir oynatma listesi hem de HLS manifestosu için kullanılır. Dosyayı metin düzenleyicide açıp bakarsanız #EXT-X-STREAM-INF ya da #EXT-X-TARGETDURATION varsa HLS, yalnızca #EXTINF ve tam medya adresleri varsa sıradan bir listedir.
M3U8 dosyasını telefon ya da TV'de nasıl oynatırım?
M3U8 ve HLS destekleyen bir medya oynatıcı kurun ve adresi oynatıcıya ekleyin. Alpa Player Android telefon, Android TV, Samsung ve LG TV ile Windows'ta çalışır; adresi Kaynak Ekle ekranından eklersiniz. TV'de kumandayla yazmak istemezseniz siteden uzaktan yükleme yöntemi de vardır.
M3U8 güvenli midir?
Dosya düz metindir ve kod çalıştırmaz. Güvenlik, içindeki adreslerin gittiği sunuculara bağlıdır. Kaynağını bilmediğiniz bir M3U8 adresini eklemekten kaçının; adreste kullanıcı adı ya da şifre varsa dosyayı başkalarıyla paylaşmayın.
M3U8 dosyasının içeriği zamanla değişir mi?
Sıradan bir listeyi siz değiştirmedikçe aynı kalır. HLS'de ise duruma göre değişir: bitmiş bir videonun (VOD) medya listesi sabittir, canlı yayının medya listesi ise sunucu tarafından yeni parçalar eklenerek sürekli güncellenir ve oynatıcı onu tekrar tekrar yükler.