Son Konular

M3U dosyamdan istemediğim kanalları çıkartabilirmiyim

nejdetcan

Member
Katılım
5 Ekim 2024
Mesajlar
35
Tepkime puanı
33
Puan
18
M3U dosyamdan istemediğim kanalları çıkartabilirmiyim

Değerli üyeler
M3U dostalarında Yabancı ülke kanalları ve Adult kanallar oluyor bunları çıkarıp silebilirmiyim.

yolu nedir M3U Editorler bu işi yapmıyor NOTEPAD'de bu işe yaramıyor.
 
M3U dosyanızda "#EXTINF" ile başlayan açıklama satırı ve hemen altındaki URL satırından oluşan ikili bloklar mevcut. İstemediğiniz kanalları bu blokları silerek kaldırabilirsiniz. Bunu yapmanın birkaç yolu var:

1) Notepad++ + RegEx
1. Dosyayı Notepad++'ta açın.
2. Ara → Değiştir (Ctrl+H) penceresini açın.
3. "Aranan:" kutusuna aşağıdaki Regular Expression'u yapıştırın.
`( #EXTINF[^\r\n]*?(?:YabancıÜlke1|YabancıÜlke2|Adult|XXX)[^\r\n]*\r?\n[^\r\n]*\r?\n )`
– Burada parantez içindeki "YabancıÜlke1|YabancıÜlke2|Adult|XXX" kısmına silmek istediğiniz kanal isimlerini, grup başlıklarını vb. yazın.
4. "Değiştirilecek:" kutusunu boş bırakın.
5. "Düzenli ifade" ve "Yeni satırı . ile eşleştir" seçenekleri işaretli olsun.
6. "Tümünü Değiştir"e basın.
7. Kaydedin.

Bu işlem, içinde belirttiğiniz kelimeleri barındıran "#EXTINF…" blokları ve URL satırlarını birlikte silecektir.

2) Komut satırı (grep veya sed)
Eğer Linux/Mac/Windows WSL kullanıyorsanız:

a) grep + Perl-regex
```
grep -Pzo "(?s)(#EXTINF[^\n]*(?:YabancıÜlke1|Adult|XXX)[^\n]*\n[^\n]*\n)" -v original.m3u > temiz.m3u
```
– `-P` Perl-regex, `-z` satır sonlarını tek blokta görme, `-o` eşleşenleri yakalama, `-v` hariç tutma.

b) sed ile
```
sed -E '/#EXTINF.*(YabancıÜlke1|Adult|XXX)/{N;d;}' original.m3u > temiz.m3u
```
– Bu satırda ilk "#EXTINF…" satırında eşleşme varsa, bir sonraki satırı da (`N`) alıp siler (`d`).

3) Python ile otomatik filtreleme
Aşağıdaki örnek, içerisinde belirttiğiniz anahtar kelimeleri barındıran kanalları atlayarak yeni bir M3U oluşturur:

```python
import re

blacklist = ['Adult', 'YabancıÜlke1', 'XXX']
def is_bad(extinf_line):
return any(k.lower() in extinf_line.lower() for k in blacklist)

with open('original.m3u', encoding='utf-8') as src, \
open('temiz.m3u', 'w', encoding='utf-8') as dst:
lines = src.readlines()
i = 0
while i < len(lines):
if lines.startswith('#EXTINF'):
if is_bad(lines):
i += 2 # EXTINF + URL satırını atla
continue
else:
dst.write(lines)
dst.write(lines[i+1])
i += 2
else:
# Bazı M3U'larda dosyanın başında veya EPG blokları olabilir
dst.write(lines)
i += 1
```

1. `blacklist` listesine silmek istediğiniz anahtar kelimeleri ekleyin.
2. `original.m3u` dosyanızla aynı klasöre kaydedip çalıştırın.
3. `temiz.m3u` adlı yeni dosya oluşacak.

Özetle, Notepad++ ve düzenli ifadelerle ya da komut satırı araçları (grep, sed) ve/veya ufak bir Python betiğiyle istemediğiniz kanalları kolayca silebilirsiniz. M3U Editor'ler bazen toplu filtre sunmadığından bu yöntemler daha esnek ve hızlı olacaktır.
 
Yapay zekanın anlattıklarının hiç biri çalışan formüller değil
SİTEDE İNSAN YOKMU yardımcı olabilecek?:oops:
 
Geri
Üst Alt