Bir sağlayıcı sana "Xtream Codes girişi" — bir sunucu, kullanıcı adı ve parola — gönderdiğinde sana biçim olarak yeni hiçbir şey vermiyordur. Xtream girişi, bir M3U URL'sinin zaten içerdiği her şeyi düzenli biçimde yazmanın yoludur.

Bu rehber dönüşümü iki yönde de açıklıyor, nelere dikkat etmen gerektiğini ve kimlik bilgilerini bir yabancının okuyabileceği bir yere yazmadan bunu nasıl yapacağını anlatıyor. Bu sitedeki Xtream ↔ M3U URL dönüştürücü dönüşümü tamamen tarayıcında yapar — o sayfanın arkasında sunucu uç noktası yoktur.

Yukarıda etiketli üç bilgi yongası — sunucu, kullanıcı adı, parola — renkli atımlar aşağıdaki get.php URL formülünün ilgili kısımlarına damlıyor.

M3U URL'si sabit bir şablondur; Xtream girişi ise sadece bu şablona yerleştirilen üç kimlik bilgisidir.

Dönüşüm neden gündeme gelir

Aynı sağlayıcı neredeyse her zaman iki biçimi de destekler, ama kurduğun oynatıcı yalnızca birini ister. Uygulamalar birkaç noktada ayrışır:

  • Xtream'i bilen oynatıcılar (Klipa dahil çoğu modern IPTV uygulaması) kimlik bilgisi üçlüsünü tercih eder. Bunu canlı kanal listesini, VOD kütüphanesini, dizi katalogunu ve EPG'yi ayrı belgeler olarak çekmek için kullanır — daha güzel kategorileme, dinamik yenileme, M3U dışa aktarımının temsil edemediği isteğe bağlı bölümler.
  • Eski tarz, yalnızca M3U destekleyen oynatıcılar (VLC, temel akıllı TV uygulamaları, özel IPTV kutuları) tek bir URL alır. Xtream'in API uç noktalarından haberi yoktur; düz bir oynatma listesi dosyası indirir ve içindeki yayınları oynatır.

Sağlayıcın sana birini verdiyse ve oynatıcı diğerini istiyorsa, dönüşüm 30 saniyelik bir işlemdir. Sağlayıcıdan "diğer biçimi" istemene gerek yok — ikisini de zaten veriyorlar, sadece tek bir biçimde.

Formül: Xtream'den M3U'ya

Her Xtream sağlayıcı aynı URL şablonunu kullanır. Bunu bildikten sonra, M3U URL'sini kimlik bilgilerinden elle inşa edebilirsin:

[SUNUCU]/get.php?username=[KULLANICI_ADI]&password=[PAROLA]&type=m3u_plus&output=mpegts

Kimlik bilgileri server: http://server.example:8080, username: ABC, password: XYZ olduğunda üç somut örnek:

  • Canlı + VOD + Diziler (M3U Plus): http://server.example:8080/get.php?username=ABC&password=XYZ&type=m3u_plus&output=mpegts
  • Sadece Canlı Kanallar: http://server.example:8080/get.php?username=ABC&password=XYZ&type=m3u&output=mpegts
  • EPG (XMLTV rehberi): http://server.example:8080/xmltv.php?username=ABC&password=XYZ

İzlenecek ana noktalar:

  • get.php oynatma listesi uç noktasıdır. Her zaman get.php olarak adlandırılır — burada sağlayıcıya özgü bir adlandırma yoktur.
  • type=m3u_plus kanal logoları ve grup başlıkları içeren genişletilmiş M3U biçimini ister. Düz type=m3u de çalışır ama daha sade bir oynatma listesi verir; neredeyse her zaman m3u_plus istersin.
  • output=mpegts ham MPEG-TS olarak oynayan yayınlar ister. Diğer yaygın seçenek output=hls'dir; bu HLS (.m3u8) URL'leri üretir — tarayıcılar ve bazı Apple cihazları için yararlıdır, TV kutularında daha az evrensel desteklenir. Oynatıcın titizse, ilk denenecek şey output'u değiştirmektir.
  • xmltv.php EPG uç noktasıdır. Aynı kimlik bilgileri, ayrı belge. Çoğu oynatıcı bu URL'yi farklı bir alana ("EPG URL" ya da "XMLTV URL") alır.
  • player_api.php JSON API'sidir. "Xtream'i doğal konuşan" oynatıcılar canlı/VOD/dizi ağaçlarını ve kanal logolarını almak için bunu kullanır.

Tersi: M3U'dan Xtream'e

Yukarıdaki formüle benzeyen bir M3U URL'si verildiğinde, üç Xtream alanını doğrudan geri okuyabilirsin:

http://server.example:8080/get.php?username=ABC&password=XYZ&type=m3u_plus
  • Sunucu ana bilgisayardan sonraki ilk eğik çizgiden önceki her şeydir: http://server.example:8080. /get.php'yi ve sonrasındaki her şeyi at.
  • Kullanıcı adı username sorgu parametresinin değeridir.
  • Parola password sorgu parametresinin değeridir.

Bir sorgu parametresi yoksa, URL standart Xtream biçiminde değildir. Bazı sağlayıcılar, içinde hiç kimlik bilgisi olmayan düz M3U URL'leri gönderir — genelde URL'nin kendisinin sır olduğu statik ya da belirteç tabanlı oynatma listeleri. Bunlardan çıkarılacak bir şey yoktur; URL'yi olduğu gibi M3U destekleyen herhangi bir oynatıcıda kullanırsın.

Özel durumlar ve tuzaklar

Parolalarda özel karakterler

Parolan &, =, +, #, % ya da / gibi karakterler içeriyorsa, bunların URL içinde yüzde kodlanması gerekir. Parolanın ortasındaki gerçek bir &, URL ayrıştırmasını bozar — oynatıcı, sonrasındaki her şeyi ayrı bir sorgu parametresi sanır.

Çoğu sağlayıcı kontrol paneli bunu senin için yapar. URL'yi elle kuruyorsan ve parolanda tuhaf bir şey varsa, parolayı önce herhangi bir "URL kodla" aracından geçir. Ya da tamamen atla ve tarayıcı içi dönüştürücünün senin için yapmasına izin ver.

Bağlantı noktaları ve HTTPS

Xtream sağlayıcıları çok nadiren 80 ya da 443 varsayılan bağlantı noktalarında çalışır. Yaygın olanlar 8080, 25461, 8000 ya da rastgele yüksek bir bağlantı noktasıdır. Bağlantı noktası sunucu URL'sinin parçasıdır, isteğe bağlı değildir. Bağlantı noktası olmadan http://server.example/get.php?… görüyorsan, ya 80 numaralı bağlantı noktasını kullanıyordur (nadir) ya da sağlayıcının önünde bir ters proxy vardır (yine nadir). Çoğu zaman bağlantı noktası eksiktir çünkü biri URL'yi elle kopyalarken düşürmüştür.

Çoğu Xtream sağlayıcısı HTTPS değil HTTP sunar. Sunucu hiçbir şekilde TLS bağlamadığı için https:// formu genellikle bir sertifika hatası ya da 404 döndürür. Sana https:// olan bir sunucu URL'si verildiyse ve çalışmıyorsa, düz http:// dene. Bunun karşılığı parolanın şifrelenmeden seyahat etmesidir; bu ne yazık ki IPTV sağlayıcıları için norm haline gelmiştir.

M3U URL'sinde özel yol

Bazı sağlayıcılar yönlendirmelerini özelleştirir — /get.php yerine /playlist.m3u, /m3u.php, ya da /index.php?type=m3u bile görebilirsin. Bu URL'lerin içindeki kimlik bilgileri hala Xtream API'sinin beklediği şeyle eşleşir, bu yüzden dönüştürücü bunları doğru şekilde çıkaracaktır, ama sağlayıcının kullandığı oynatma listesi URL'si standart değildir. Standart /get.php yolunu kullanarak kendi M3U URL'ni kurarsan, sağlayıcı bunu reddedebilir. Bu durumlar için, sağlayıcının sana verdiği orijinal URL'yi sakla — onu "düzeltmeye" çalışma.

Kimlik bilgilerinde sondaki boşluklar

Bir e-postadan veya forum gönderisinden yapıştırmak düzenli olarak görünmez bir boşluğu, yeni satırı veya bölünemez boşluğu kullanıcı adının sonuna sürükler. Xtream API'si ABC ve ABC 'yi farklı kullanıcı adları olarak görür; yanlış parolayla tamamen aynı görünen bir kimlik doğrulama başarısız yanıtı alırsın. Dönüştürücü, boşluğu kullanıcı adından otomatik olarak kırpar ve bunu yapması gerektiğinde seni uyarır. URL'yi elle kuruyorsan, her alanı önce düz bir metin düzenleyicisine yapıştır ve sonunu gözle kontrol et.

Dönüşümü güvenli yapmak

Bu sitedeki dönüştürücü kimlik bilgilerin hakkında erişim günlüklerine sahip olamayacak şekilde tasarlanmıştır, çünkü arkasında sunucu uç noktası yoktur. Dönüşüm tamamen senin tarayıcında JavaScript olarak çalışır. Kimlik bilgileri sayfa kapanana kadar DOM giriş öğelerinde yaşar; URL çubuğunda değildirler, localStorage'da değildirler ve hiçbir yere gönderilmezler. Dönüşüm sırasında tarayıcının ağ (network) sekmesini açarsan, kimlik bilgilerini taşıyan tam olarak sıfır giden istek göreceksin.

IPTV kimlik bilgilerini isteyen herhangi bir araçtan beklemen gereken standart budur. Bir dönüştürücü arayüzü "dönüştür"e tıkladığında bir ağ isteği gönderiyorsa, tanım gereği kimlik bilgilerini bir yere iletmiş demektir.

Sonucu doğrulamak

Başarıyla inşa edilmiş bir URL, çalışan bir URL anlamına gelmez. Dönüşümün her iki yönü de deterministik dize dönüşümleridir — dönüşüm olarak doğrudurlar, ama sana kimlik bilgilerinin geçerli olup olmadığını, aboneliğin güncel olup olmadığını ya da sunucuya erişilip erişilemediğini söylemezler.

  • M3U URL'leri için, sonucu M3U oynatma listesi test ediciye yapıştır. Oynatma listesini alır, ayrıştırır ve ilk 100 yayını test eder. Yeşil olan her şey URL'nin iyi olduğu anlamına gelir; kırmızı olan her şey sana belirli hata modunu (HTML yanıtı, 404, ölü yayınlar) söyler.
  • Xtream kimlik bilgileri için, üçlüyü Xtream kimlik bilgisi denetleyiciye yapıştır. API'yi sunucu tarafında arar; doğrulama durumunu, bitiş tarihini, bağlantı sınırlarını ve kanal sayılarını döndürür. "Yanlış parola"yı, "süresi dolmuş abonelik"ten ve "sunucuya erişilemiyor"dan ayırır.

Bir oynatıcı kurmakla uğraşmadan önce bunlardan birini çalıştırmak, kimlik bilgilerinin kendisinde bir sorun olduğunda yaklaşık yirmi dakikalık hata ayıklama süresinden tasarruf sağlar.

M3U URL'sinde kimlik bilgisi yoksa

Karşılaşacağın M3U URL'lerinin küçük bir kısmı hiç Xtream değildir. Statik bir sunucuda barındırılan düz oynatma listeleridir ya da sırrın sorgu dizesi yerine yolun kendisine gömülü olduğu belirteç taşıyıcılı URL'lerdir:

https://server.example/playlists/9c1f4a8b3e/stream.m3u8

Çıkarılacak hiçbir şey yoktur — URL'nin kendisi kimlik bilgisidir. Bunlar yalnızca M3U destekleyen oynatıcılarda tam olarak oldukları gibi çalışır. Xtream eşdeğerleri yoktur çünkü Xtream Codes paneli tarafından oluşturulmazlar; farklı (daha eski) bir IPTV yığınından gelirler. Sağlayıcın sana yalnızca bunu verdiyse ve oynatıcın Xtream kimlik bilgilerinde ısrar ediyorsa, sana verecekleri bir Xtream girişleri yoktur. Sağlayıcıya sor ya da M3U URL'lerini kabul eden bir oynatıcı seç.

Klipa, aynı kütüphanede her iki biçimi yan yana kabul eder. Aynı sağlayıcıdan bir M3U URL'sini ve bir Xtream girişini ayrı kaynaklar olarak ekleyebilirsin; uygulama hangisi sağlıklıysa onu kullanır. M3U dışa aktarımı bir gün HTML döndürmeye başlarsa, Xtream API çağrısı kanal listeni bir sonraki yenilemeye kadar canlı tutar, aynı şey tersi için de geçerlidir.

"Hangi biçimi kullanmalıyım" sorusunun basit cevabı şudur — ikisini de. Sadece birini seçiyorsan, Xtream ve M3U karşılaştırması hangisiyle başlayacağını açıklar.