M3U8 / HLS
Apple icat etti, her Apple cihazı oynatıyor ve hiçbiri kaydetmiyor.
Bir .m3u8 dosyası video değil, listedir: sırayla indirilecek binlerce parçayı sayan birkaç kilobaytlık metin. HLS’in her Apple cihazında kusursuz oynaması da “bu dosyayı kaydet” dediğinde eline bir metin belgesi geçmesi de bu tasarımdan. Birini indirmek, her parçayı tek tek çekip hiç var olmamış bir dosyayı kurmak demek.
30 Temmuz 2026
Kendi başına açan
HLS Apple’ın kendi şartnamesi ve her yerde birinci sınıf destekleniyor — Safari, AVPlayer, AirPlay. Sistemin hiçbir yerinde desteklenmeyen şey, canlı bir yayını diskte bir dosyaya çevirmek. Oynatmak ile saklamak bambaşka iki problem.
Künye
| Tam adı | HTTP Live Streaming; listenin kendisi UTF-8 bir M3U’dur |
|---|---|
| Türü | Akış protokolü; metin liste olarak dağıtılır |
| Uzantılar | .m3u8 (liste), .ts ya da .m4s (işaret ettiği parçalar) |
| Yayım | 2009, Apple; 2017’de RFC 8216 olarak standartlaştırıldı |
| Tipik parça uzunluğu | Her biri 2–10 saniye — bir saatlik video yüzlerce, hatta binlerce dosya eder |
| Ana liste ve medya listesi | Ana liste kalite seviyelerini sayar; her biri gerçek parçaların medya listesine işaret eder |
| Parçaların içindeki görüntü | H.264 ya da HEVC, ara sıra AV1 |
| Canlı yayınlar | Liste birkaç saniyede bir yeniden çekilir ve yayın sürdükçe uzar |
Kitap değil, içindekiler sayfası
Bir .m3u8’i metin düzenleyicide aç; birkaç düzine satır görürsün: bir başlık, birkaç parametre ve uzun bir adres listesi. Dosyanın tamamı bu. Video başka yerde, birkaç saniyelik parçalara bölünmüş hâlde, sunucuda binlerce ayrı küçük dosya olarak duruyor.
Oynatıcı listeyi okur, ilk birkaç parçayı çeker, oynatmaya başlar ve hep kendinden önde indirmeye devam eder. Bağlantın yavaşladığında ana listede yazan daha düşük kaliteli bir sürüme geçer — farklı bit hızında, farklı bir parça kümesi — ve bunu iki parçanın arasında yaptığı için sen duraklama değil kalite değişimi görürsün. Bu uyarlanabilir geçiş, biçimin kazanmasının sebebi.
Aynı zamanda insanları şaşırtan bir şeyi de açıklıyor: elde edilecek tek bir dosya yok. İzlediğin film hiçbir yerde bir nesne olarak durmuyor. Bin parça ve bir talimat listesinden ibaret.
Kaydedince neden metin dosyası geliyor
Çünkü kaydettiğin şey o. Web tarayıcısı verdiğin adresi istedi, dört kilobaytlık listeyi aldı ve diske yazdı. Asıl izlediğin her şey, o kaydetme işleminin haberi bile olmayan bin ayrı istekle geldi.
HLS’i düzgün indirmek, oynatıcının yaptığını diske yapmak demek: listeyi oku, bir kalite sürümü seç, bütün parçaları sırayla çek ve sonra tek bir kapsayıcıda birleştir. Bu son adımın adı remux — görüntü ve ses yeniden kodlanmaz, yalnızca düzgün bir dizinle tek bir MP4’e yeniden yazılır; sonuç da böylece ileri geri sarılabilir olur.
İki şey bunu kulağa geldiğinden zorlaştırıyor. Parça adresleri çoğu zaman göreli ve oturuma bağlıdır; bir saat önce alınmış bir liste çoktan ölmüş olabilir. Bir de yayınlar sıklıkla şifrelidir: anahtar listede gösterilir, ayrı bir yerden gelir ve oynatma sırasında değiştirilir.
Bir yayını cihaza almak
Yalnızca saklama hakkın olan yayınlar için — kendi kaydın, kendi IPTV aboneliğin, indirme sunan bir yayıncı. Aşağıdaki, mekanizmanın nasıl çalıştığı; herhangi bir yere yöneltme izni değil.
- Parçaları bir indirme motoruna bırak
Bin dosyayı çekip remux etmek, FoxDL’in indiricisinin bir HLS kaynağıyla yaptığı işin tam olarak kendisi: listeyi baştan sona yürür, parçaları paralel çeker ve normal bir dosya gibi sarılabilen tek bir MP4 yazar. Eline klasör dolusu parça değil, tek bir dosya geçer.
- Doğrudan dosya varsa onu al
Çoğu site hem HLS hem de düz bir MP4 sunar. MP4 tek istek, tek dosya ve hiç yeniden kurma demek — sunulduğu her yerde daha iyi seçenek.
- Bazılarının saklanamayacağını kabul et
DRM ile korunan yayınlar — FairPlay, Widevine — uçtan uca şifrelidir ve tasarım gereği indirilemez. Hiçbir araç bunu değiştirmez; değiştirdiğini söyleyen bir şey konusunda yalan söylüyordur.
HLS indirmeleri nerede ters gider
Remux edilmeden uç uca eklenen parçalar, oynayan ama dizini olmayan bir dosya üretir. Baştan oynar ve hiçbir yere atlamaz. Remux, bunu düzelten dizini yazar.
Canlı bir listenin sonu yoktur; uzamaya devam eder. Onu indirmek kayıt almak demektir ve dosya bittiğinde değil, sen durdurduğunda durur.
Liste adresleri genelde imzalıdır ve süresi sınırlıdır. Sabah kaydettiğin bir .m3u8, öğleden sonra sıklıkla hiçbir şeye işaret etmez.
Bu format hakkında sorulanlar
Bu bilgiler nereden geliyor
- RFC 8216 — HTTP Live Streaming IETF
- HTTP Live Streaming Apple Developer
Yakın formatlar
Kütüphanen sonunda tek yerde.
İndirmesi ücretsiz. Hesap yok, kayıt yok, verecek hiçbir bilgi yok.