Daddylive'ı tekrardan m3u listesine cevirebilecek babayigit var mıdır?

Kekik akademinin içinde bu dimi
 
Ben pes ediyorum :D Burada yazılan kanalların hiçbiri çalışmıyor bende. 62 geçen çalışıyordu her şekilde sadece url ile, şimdi çalışmıyor. Anlamadım valla uğraşamayacağım daha fazla.


Bu çalışıyor mesela başkaları çalışmıyor vs..
Bu şuan da bende çalıştı MPC ile ama şimdi de bu çalışmıyor; https://zekonew.iosplayer.ru/zeko/premium62/mono.m3u8 :)

Edit; İosplaye.ru Büyük bir ihtimalle her türlü ham haliyle açılıyordur, sadece bazen yayın o anda geçici bir süre kesiliyordur. Zaten o nedenle her player'e birden fazla seçenek bırakmışlar.
 
Son düzenleme:
Evet ama yalnızca bu URL ile; https://zekonew.iosplayer.ru/zeko/premium62/mono.m3u8
o da yalnızca MPC ve Chrome HLS Player ile ama diğer URL bu şekilde açılmıyordu.
Bu arada güzel yararlı bilgiler Teşekkürler.
Rica ederim. Ben de MPC ve Chrome eklentisi ile denedim ama "referer" istemese de "origin" mutlaka istiyor, maalesef direkt açamadım.
Wuffy Player gibi istediğimiz kadar header ekleyebildiğimiz başka uygulamalar var mı acaba? Hem windows hem android için merak ediyorum.


Ben pes ediyorum :D Burada yazılan kanalların hiçbiri çalışmıyor bende. 62 geçen çalışıyordu her şekilde sadece url ile, şimdi çalışmıyor. Anlamadım valla uğraşamayacağım daha fazla.


Bu çalışıyor mesela başkaları çalışmıyor vs..
Yayınlar çok değişken, kimisi direkt açılıyor, kimisi hem header hem AES korumalı, kimisi sadece AES korumalı vs. vs.
Bütün kombinasyonlar mevcut herhalde.:)
 
valla o konuda ben de senin gibi takıntılıyım her sitede olmuyor muhtemelen oluyor ama hls filan olunca da olmuyor deathless dosyalar da guzel de bulamıyorum var mı güncel ?
Sen yeterki iste kardeş
 
Rica ederim. Ben de MPC ve Chrome eklentisi ile denedim ama "referer" istemese de "origin" mutlaka istiyor, maalesef direkt açamadım.
Wuffy Player gibi istediğimiz kadar header ekleyebildiğimiz başka uygulamalar var mı acaba? Hem windows hem android için merak ediyorum.



Yayınlar çok değişken, kimisi direkt açılıyor, kimisi hem header hem AES korumalı, kimisi sadece AES korumalı vs. vs.
Bütün kombinasyonlar mevcut herhalde.:)
Bence herkes eski sisteme dönsün, VLC olmadığı zamanlara; Media Player Clasic eklentili K-lLite Codec Pack Paketi bulunması lazım, en azından deneme amaçlı.
 
Depo ekleme kısmına gir, bunu yaz; doGior
Sonra da KekikAkademi yüklüyormuş gibi; bu deponun eklentilerini de sırayla aktıf edin. Aktif edildikten sonra; Kekik'in ekletileri ile beraber Huhu da görünücek. '' Sorunsuz bir şekilde çalışıyor.'' Demek isterdim ama VPN'siz çalışmıyor.
Teşekkür hocam. Vodafone ile vpn olmadan gayet stabil calişiyor.wifide denemedim henüz
 
Rica ederim. Ben de MPC ve Chrome eklentisi ile denedim ama "referer" istemese de "origin" mutlaka istiyor, maalesef direkt açamadım.
Wuffy Player gibi istediğimiz kadar header ekleyebildiğimiz başka uygulamalar var mı acaba? Hem windows hem android için merak ediyorum.



Yayınlar çok değişken, kimisi direkt açılıyor, kimisi hem header hem AES korumalı, kimisi sadece AES korumalı vs. vs.
Bütün kombinasyonlar mevcut herhalde.:)
.git gibi bir versiyonlama kullanmadığım için bende her şey birbirine karıştı, anlamıyorum da zaten :D
Bilen birilerinin işine yarayacak bir şey paylaşayım. Redditte bu daddy konusu konuşuluyordu. Birisi yolunu bulmuş ama açıktan söylemek istemedi yayılırsa kapanır diye. Docker hub ta tvapp ya da thetvapp gibi bir aramayla çıkan sonuçlardan biriyle çözebilirsiniz vs demişti. Belki başka bi docker dan bahsediyodu belki de bizim konuştuğumuz dmca yiyen github reposunun içerikleri de var, ondan bahsetmiş de olabilir
Senin de bahsettiğin headers olayını proxy ile halletmiş sanırım
The m3u-playlist-proxy is a lightweight and efficient solution designed to forward the required headers to proxy M3U playlist streams. This script acts as an intermediary between your client and the server, ensuring that necessary headers (like User-Agent, Referer, etc.) are forwarded correctly. By doing this, it allows seamless access to media streams that require specific request headers for playback.
Benim de derdim zaten genel olarak bu proxy ile header olayı hk bilgilenmek aslında. Çünkü LG tv kullanıyorum, box falan yok, ss-iptv de header yok bende diyor. Cloudware Workers'da yapay zeka yardımıyla bir şeyler yaptım daddylive harici headers için. Çok işlevsel değil ama çalışıyor iyi kötü .d
Bir de konuyla uzaktan alakalı merak ettiğim ama henüz hiç denemediğim bir repo bırakayım. Bu konuya böyle ilgi olacağını hiç zannetmiyordum.
Bu da değerli bir şeye benziyor :)
 
@knowkinq zaten paylaşmış bu kadar uzuna gerek yok ama bunu referans alarak kanalların linkini tek tek bulursanız buna göre düzeltme yapabilirsiniz.
Bende buraya tüm kanalların id dahil php linklerini bırakayım idlere göre stream linklerine giderseniz aradığınız kanalın sayfasına gidersiniz sonrasında m3u8 linkini bulmak size kalacak.
abi ben bunu televizo uygulamasına yukledim kanal 0 diyo acaba listeyi yuklerken user agent var atta oraya yazımı yazmak lazım
 
Hocam tuhaflık şurada, denerken farklı linkler seçmişiz ve bazı linkler header istemiyorken bazıları istiyor.

Siz sadece m3u8 linkini oynatıcının url kısmına yazıp yayını açabildiğinizi mi söylüyorsunuz(header falan uğraşmadan) orayı tam anlayamadım.

Bende hiç header eklemeden kabul etmedi.

Linklerin çalışma mantığını şöyle anlatayım:

Mesela sizin daha önce attığınız "https://zekonew.iosplayer.ru/zeko/premium62/mono.m3u8" linki hiç header bilgisi vermesek bile açılıyor.
Sadece yayının içeriği AES ile şifrelenmiş.
M3U içerisinde AES şifrelemesini çözmek için gereken KEY ve IV değerleri zaten verilmiş ki player'lar açabilsin.
image.png



Ama benim denediğim link ise aynı yayının farklı domain üzerinden yönlendirileni.
Ve bu linki açmak için "referer" header'ı olmak zorunda. Yani header mevzusu domain'den domain'e değişiyor gibi.
image.png


Şimdi yukarıdaki iki ekran görüntüsünde dikkat ederseniz AES KEY aldığımız URL birebir aynı.
O da şu şekilde açılıyor:
image.png


M3U'ya ulaşmak için bazen header istemese de yayını oynatabilmek için AES KEY alırken illa ki "origin" header'ı eklememiz gerekiyor.
Yani benim denediğim linklerden ediğindiğim tecrübe şunu söylüyor;
1-Bu linkleri oynatabilmek için AES çözebilen bir player lazım.
2-Playerın AES KEY alıp yayını çözebilmesi için kesinlikle "origin" header'ı eklememiz lazım.
3-Her link için gerekmese de M3U'ya ulaşmak için "referer" header'ı eklememiz lazım, gerekip gerekmediğine bakmaksızın her türlü eklersek zaten garanti olur.

Kısacası hiçbir header değeriyle uğraşmadan sadece ".m3u8" linkinin player'a yazılıp açılabileceğini düşünmüyorum, çünkü en azından AES için gerekli. Hem header istemeyen hem de içeriği AES ile şifrelenmemiş ".m3u8" linkleri denk gelirse ancak bu dediğim olur.
Yukarıda bahsi geçen linkleri ham haliyle açabiliyorsanız gerçekten garip bir durum.

Bu yüzden hem istediğimiz gibi header ekleyebildiğimiz için hem de AES çözebildiği için ben Wuffy player ile açabildim.
HTML:
#EXTM3U
#EXTINF:-1,TEST
https://zekonew.koskoros.ru/zeko/premium62/mono.m3u8|origin=https://pkpakiplay.xyz|referer=https://pkpakiplay.xyz
Ben çoktan bulmuşum o halde :)
Vlc den denedim hep dediğin gibi wuffy ile deneyince açıldı.
 
abi ben bunu televizo uygulamasına yukledim kanal 0 diyo acaba listeyi yuklerken user agent var atta oraya yazımı yazmak lazım
Üst mesajlarda m3u linki verdim ona göz atabilirsin referans olarak kullanabilirsin.
 
Bu kadar uğraştığımıza değdi mi bilmiyorum ama zaten b*** SPORTS tr kanalları açılmıyor kendi sitesinde bile.
 
.git gibi bir versiyonlama kullanmadığım için bende her şey birbirine karıştı, anlamıyorum da zaten :D
Bilen birilerinin işine yarayacak bir şey paylaşayım. Redditte bu daddy konusu konuşuluyordu. Birisi yolunu bulmuş ama açıktan söylemek istemedi yayılırsa kapanır diye. Docker hub ta tvapp ya da thetvapp gibi bir aramayla çıkan sonuçlardan biriyle çözebilirsiniz vs demişti. Belki başka bi docker dan bahsediyodu belki de bizim konuştuğumuz dmca yiyen github reposunun içerikleri de var, ondan bahsetmiş de olabilir

Senin de bahsettiğin headers olayını proxy ile halletmiş sanırım

Benim de derdim zaten genel olarak bu proxy ile header olayı hk bilgilenmek aslında. Çünkü LG tv kullanıyorum, box falan yok, ss-iptv de header yok bende diyor. Cloudware Workers'da yapay zeka yardımıyla bir şeyler yaptım daddylive harici headers için. Çok işlevsel değil ama çalışıyor iyi kötü .d
Bir de konuyla uzaktan alakalı merak ettiğim ama henüz hiç denemediğim bir repo bırakayım. Bu konuya böyle ilgi olacağını hiç zannetmiyordum.

Bu da değerli bir şeye benziyor :)
Ben de bunu düşünüyordum, gerçi SSİPTV kullanmıyorum ama birilerine liste yolladığımızda ve listede bu başlıklar olursa SSİPTV açmayacak m;
Peki SSİPTV için bunların alternatifi nedir? Çözersek güzel olurdu.
( http-user-agent'i de mi açmıyor?
Kod:
#EXTVLCOPT:http-referrer=
#EXTVLCOPT:http-origin=
#EXTVLCOPT:http-user-agent=
 
@Thanos ss-iptv nin geliştiricisi on numara adam :D
http referrer işi server işi beni ırgalamaz diyip kesip atmış. İnsanlar bunun için proxy gibi bir çözüm kullanıyor sanırım. Ben de yapay zekaya sordum, Cloudflare Workers önerdi. Ücretsiz günlük 200 bin istek sınırı var, heralde yayının her karesi için istek gidiyor. Çok akıl karı bir iş değil ama sırf yapmış olmak için yaptım, kör topal çalıştı.

Bunlar çok daha iyi şekillerde yapılabilir, fikir verir belki diye yaptığımı anlatayım. 2 worker kurdum.
1. worker bir m3u dosyasındaki Url ve Metadatayı(referrer, agent vs) 2. worker ın anlayacağı forma dönüştürüyor. 2. worker da bu bilgiyi sanırım bir proxy mantığıyla metadata içeren bir url olarak döndürüyor. w-1 toparlıyor, w-2 her bir adres için çalışıyor.

Bi yarım saate buraya w-1 w-2 kodlarını atarım.

JavaScript:
export default {
  async fetch(request) {
    const { searchParams } = new URL(request.url);
    const playlistURL = searchParams.get("playlist");
    const debug = searchParams.get("debug") === "true";
  
    if (!playlistURL) {
      return new Response("Hata: Playlist URL eksik!", { status: 400 });
    }
  
    try {
      // M3U dosyasını al
      const response = await fetch(playlistURL);
      if (!response.ok) throw new Error(`Hata: ${response.status} - ${response.statusText}`);
    
      // M3U içeriğini al
      const m3uText = await response.text();
    
      // M3U içeriğini işle
      const result = processM3U(m3uText, debug);
      const modifiedM3U = result.content;
    
      // Debug modu aktifse, debug bilgilerini yanıta ekle
      if (debug) {
        return new Response(
          `--- DEBUG BİLGİLERİ ---\n` +
          `İşlenen satır sayısı: ${result.stats.totalLines}\n` +
          `İşlenen URL sayısı: ${result.stats.processedURLs}\n` +
          `Header bilgileri: ${JSON.stringify(result.stats.headers)}\n\n` +
          `--- İŞLENMİŞ İÇERİK ---\n${modifiedM3U}`,
          {
            headers: { "Content-Type": "text/plain; charset=utf-8" }
          }
        );
      }
    
      // Normal modda içeriği döndür
      return new Response(modifiedM3U, {
        headers: {
          "Content-Type": "application/x-mpegurl",
          "Access-Control-Allow-Origin": "*"
        }
      });
    } catch (err) {
      return new Response(`Bağlantı hatası: ${err.message}`, { status: 500 });
    }
  }
};

// M3U işleme fonksiyonu - gelişmiş analiz ve hata ayıklama
function processM3U(m3uContent, debug = false) {
  const lines = m3uContent.split('\n');
  let modifiedLines = [];
  const proxyWorkerURL = "____________BURAYA__.W-2 URL GİRİLECEK____________> bilmemne.workers.dev/proxy gibbi";
 
  // İstatistik ve debug için
  const stats = {
    totalLines: lines.length,
    processedURLs: 0,
    headers: {}
  };
 
  // URL ve header bilgilerini topla
  const channels = [];
  let currentChannel = { headers: {} };
 
  // İlk tarama - header ve URL ilişkilerini kur
  for (let i = 0; i < lines.length; i++) {
    const line = lines[i].trim();
  
    // EXTINF satırı - yeni kanal tanımı
    if (line.startsWith('#EXTINF:')) {
      // Önceki kanal varsa kaydet
      if (currentChannel.url) {
        channels.push(currentChannel);
      }
    
      // Yeni kanal başlat
      currentChannel = {
        extinf: line,
        headers: {},
        lineIndex: i
      };
      continue;
    }
  
    // EXTVLCOPT satırları - header bilgileri
    if (line.startsWith('#EXTVLCOPT:')) {
      // User-Agent
      if (line.startsWith('#EXTVLCOPT:http-user-agent')) {
        const userAgent = line.split('=')[1];
        currentChannel.headers.userAgent = userAgent;
        stats.headers.userAgent = (stats.headers.userAgent || 0) + 1;
      }
      // Referrer
      else if (line.startsWith('#EXTVLCOPT:http-referrer')) {
        const referrer = line.split('=')[1];
        currentChannel.headers.referrer = referrer;
        stats.headers.referrer = (stats.headers.referrer || 0) + 1;
      }
      continue;
    }
  
    // URL satırı
    if (line.startsWith('http://') || line.startsWith('https://')) {
      currentChannel.url = line;
      currentChannel.urlLineIndex = i;
      stats.processedURLs++;
    }
  }
 
  // Son kanalı da ekle
  if (currentChannel.url) {
    channels.push(currentChannel);
  }
 
  // İkinci tarama - M3U içeriğini oluştur
  for (let i = 0; i < lines.length; i++) {
    const line = lines[i].trim();
  
    // URL satırı mı kontrol et
    const channel = channels.find(ch => ch.urlLineIndex === i);
  
    if (channel) {
      // URL'yi proxy'le
      const proxiedURL = `${proxyWorkerURL}?url=${encodeURIComponent(channel.url)}` +
                  `&ua=${encodeURIComponent(channel.headers.userAgent || '')}` +
                  `&ref=${encodeURIComponent(channel.headers.referrer || '')}` +
                  `&origin=${encodeURIComponent(new URL(channel.url).origin)}` +
                  `&follow=true`;  // Yönlendirmeleri takip et
      modifiedLines.push(proxiedURL);
    }
    // EXTVLCOPT satırlarını filtrele
    else if (line.startsWith('#EXTVLCOPT')) {
      continue;
    }
    // Diğer tüm satırları koru
    else {
      modifiedLines.push(line);
    }
  }
 
  return {
    content: modifiedLines.join('\n'),
    stats: stats
  };
}


___Bu da W-2____________________________________ ;

JavaScript:
export default {
  async fetch(request) {
    const { searchParams } = new URL(request.url);
    const targetURL = searchParams.get("url");
    const userAgent = searchParams.get("ua") || "Mozilla/5.0";
    const referer = searchParams.get("ref") || "";
    const origin = searchParams.get("origin") || "";
    const debug = searchParams.get("debug") === "true";
    const followRedirect = searchParams.get("follow") !== "false"; // varsayılan olarak yönlendirmeleri takip et
    
    if (!targetURL) {
      return new Response("Hata: URL eksik!", { status: 400 });
    }
    
    try {
      // İstek için header'ları hazırla
      const headers = new Headers();
      headers.set("User-Agent", userAgent);
      
      if (referer) {
        headers.set("Referer", referer);
      }
      
      if (origin) {
        headers.set("Origin", origin);
      }
      
      // Debug modu aktifse, isteği döndür
      if (debug) {
        const fullURL = `${targetURL}`;
        return new Response(
          `Hedef URL: ${fullURL}\n` +
          `User-Agent: ${userAgent}\n` +
          `Referer: ${referer}\n` +
          `Origin: ${origin}\n` +
          `Redirect takibi: ${followRedirect ? "Aktif" : "Pasif"}\n`,
          { headers: { "Content-Type": "text/plain; charset=utf-8" } }
        );
      }
      
      // Talep edilen kaynağı getir - redirect=manual ile yönlendirmeleri kendin yönet
      const response = await fetch(targetURL, {
        method: "GET",
        headers: headers,
        redirect: followRedirect ? "follow" : "manual"
      });
      
      // Yönlendirme varsa ve takip edilmek isteniyorsa
      if (!followRedirect && (response.status === 301 || response.status === 302 || response.status === 307 || response.status === 308)) {
        const redirectLocation = response.headers.get("Location");
        if (redirectLocation) {
          // Yönlendirme URL'sini oluştur
          let newURL = redirectLocation;
          if (!newURL.startsWith('http')) {
            // Göreceli URL ise, mutlak URL'ye dönüştür
            const targetURLObj = new URL(targetURL);
            newURL = new URL(redirectLocation, targetURLObj.origin).toString();
          }
          
          // İçeriği döndür ve yönlendirme bilgisi ekle
          return new Response(
            `Yönlendirme tespit edildi: ${response.status}\n` +
            `Orijinal URL: ${targetURL}\n` +
            `Yönlendirilen URL: ${newURL}\n` +
            `Not: Yönlendirme takibini etkinleştirmek için &follow=true ekleyin`,
            {
              headers: {
                "Content-Type": "text/plain; charset=utf-8",
                "X-Redirect-Location": newURL
              },
              status: 200 
            }
          );
        }
      }
      
      // Hata durumunda detaylı bilgi döndür
      if (!response.ok) {
        const responseText = await response.text().catch(e => "İçerik okunamadı");
        return new Response(
          `Hedef URL hatası: ${response.status} - ${response.statusText}\n` +
          `URL: ${targetURL}\n` +
          `Headers: ${JSON.stringify(Object.fromEntries(headers))}\n` +
          `Yanıt içeriği: ${responseText.substring(0, 500)}${responseText.length > 500 ? '...' : ''}`,
          {
            status: response.status,
            headers: { "Content-Type": "text/plain; charset=utf-8" }
          }
        );
      }
      
      // İçerik türünü belirle
      let contentType = response.headers.get("Content-Type");
      if (!contentType) {
        // İçerik türünü URL'den belirle
        if (targetURL.endsWith('.m3u8')) {
          contentType = "application/vnd.apple.mpegurl";
        } else if (targetURL.endsWith('.m3u')) {
          contentType = "application/x-mpegurl";
        } else if (targetURL.endsWith('.ts')) {
          contentType = "video/mp2t";
        } else {
          contentType = "application/octet-stream";
        }
      }
      
      // HLS içeriği ise ve .m3u8 veya .m3u ise işle
      if ((contentType.includes("mpegurl") || targetURL.endsWith('.m3u8') || targetURL.endsWith('.m3u')) &&
          response.status === 200) {
        const content = await response.text();
        
        // İçerik boş mu kontrol et
        if (!content.trim()) {
          return new Response(
            `Hedef URL boş içerik döndürdü: ${targetURL}`,
            {
              headers: { "Content-Type": "text/plain; charset=utf-8" },
              status: 404
            }
          );
        }
        
        // İçerik HTTP yanıtı gibi görünüyor mu kontrol et
        if (content.startsWith('HTTP/')) {
          return new Response(
            `Hedef URL HTTP yanıtı içeriyor, bu normal değil:\n${content.substring(0, 500)}${content.length > 500 ? '...' : ''}`,
            {
              headers: { "Content-Type": "text/plain; charset=utf-8" },
              status: 200 
            }
          );
        }
        
        // Göreceli URL'leri mutlak URL'lere dönüştür
        const baseUrl = new URL(targetURL);
        const basePath = baseUrl.pathname.substring(0, baseUrl.pathname.lastIndexOf('/') + 1);
        
        // Her satırı işle ve göreceli URL'leri düzelt
        const lines = content.split('\n');
        const processedLines = lines.map(line => {
          // Yorum satırı veya başlık ise değiştirme
          if (line.startsWith('#')) {
            return line;
          }
          
          // URL satırı ise ve göreceli ise mutlak yap
          if (line.trim() && !line.startsWith('http')) {
            if (line.startsWith('/')) {
              // Kök yoldan başlayan göreceli URL
              return `${baseUrl.origin}${line}`;
            } else {
              // Mevcut dizinden göreceli URL
              return `${baseUrl.origin}${basePath}${line}`;
            }
          }
          
          return line;
        });
        
        // İşlenmiş içeriği döndür
        return new Response(processedLines.join('\n'), {
          headers: {
            "Content-Type": contentType,
            "Access-Control-Allow-Origin": "*"
          }
        });
      }
      
      // Normal içerik - stream olarak döndür
      return new Response(response.body, {
        status: response.status,
        statusText: response.statusText,
        headers: {
          "Content-Type": contentType,
          "Access-Control-Allow-Origin": "*"
        }
      });
    } catch (err) {
      return new Response(
        `Proxy hatası: ${err.message}\n` +
        `URL: ${targetURL}\n` +
        `Headers: UA=${userAgent}, Ref=${referer}, Origin=${origin}`,
        { status: 500 }
      );
    }
  }
};
 
Son düzenleme:
@Thanos ss-iptv nin geliştiricisi on numara adam :D

http referrer işi server işi beni ırgalamaz diyip kesip atmış. İnsanlar bunun için proxy gibi bir çözüm kullanıyor sanırım. Ben de yapay zekaya sordum, Cloudflare Workers önerdi. Ücretsiz günlük 200 bin istek sınırı var, heralde yayının her karesi için istek gidiyor. Çok akıl karı bir iş değil ama sırf yapmış olmak için yaptım, kör topal çalıştı.

Bunlar çok daha iyi şekillerde yapılabilir, fikir verir belki diye yaptığımı anlatayım. 2 worker kurdum.
1. worker bir m3u dosyasındaki Url ve Metadatayı(referrer, agent vs) 2. worker ın anlayacağı forma dönüştürüyor. 2. worker da bu bilgiyi sanırım bir proxy mantığıyla metadata içeren bir url olarak döndürüyor. w-1 toparlıyor, w-2 her bir adres için çalışıyor.

Bi yarım saate buraya w-1 w-2 kodlarını atarım.
Onur ,ben sizin kadar bilgili değilim bu konuda ama yeni bir başlık aç;
'' LGTV, ISSPTV, Headers, User-Agent, Origin, Referrer'' Başlıkta bunlar olsun ki; konu rahat bulunsun. Bu konuyu ben de merak ediyorum.
Fikir teatisi yapalım. Çünkü Smart tvler için, Tizenler için kanayan bir yaradır, SSİPTV :)
 
@Thanos Guzel olur valla ben de çok bilgili sayılmam ama bu başlık altında gordum ki baya bilen kişiler de var, ilgi de var. Soz vermeyim ama aklıma ne gelirse açayım başlığınıi, ya tutarsa :D Sen de aç uğraşalım, çeşit olsun. Bu workers olayını biraz duzenleyip, biraz geliştirip oyle paylaşayım. Şu anki haliyle kodları bir kez olsun okumadım bile, kopyala yapıştır yaptm gpt'lerden.
 
Teşekkür hocam. Vodafone ile vpn olmadan gayet stabil calişiyor.wifide denemedim henüz
Rica ederim.
Ben de Vodafone Mobil kullanıyorum ama oradan açamıyorum. Anca Turknet Wifi üzerinden VPN'siz açabildim, Nasıl oluyor anlamadım?

Edit; '' DaddyLive'' evet, Ben Huhu'yu diyorsun sandım. Bende de VPN'siz açılıyor mobilde ama Huhu mobilde VPN olmadan çalışmıyor.
 
Son düzenleme:

Konuyu görüntüleyenler

Geri
Üst