@__blackjack__
Hier eine Version mit TextWrapper, geändertem Modus und UTF-8 Encoding beim File
Code: Alles auswählen
from urllib.request import urlopen
from io import TextIOWrapper
url = 'https://raw.githubusercontent.com/jnk22/kodinerds-iptv/master/iptv/kodi/kodi_tv.m3u'
channels = ['yletv1', 'ZDF HD']
target_file_name = 'extracted.m3u'
with urlopen(url) as file, open(target_file_name, 'w', encoding="utf-8") as target_file:
target_file.write('#EXTM3U\n')
text_wrapper = TextIOWrapper(file, encoding='utf-8')
for line in text_wrapper:
for channel in channels:
if line.startswith(f'#EXTINF:-1 tvg-name="{channel}'):
target_file.write(line)
line = next(text_wrapper)
target_file.write(line)
@gabber
Die doppelten Einträge sind:
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Aachen HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Bonn HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Bergisches Land HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Dortmund HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Düsseldorf HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Duisburg HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Köln HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Münsterland HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Ostwestfalen HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Südwestfalen HD
#EXTINF:-1 tvg-name="WDR HD" tvg-id="WDR.de" group-title="Regional" tvg-logo="
https://raw.githubusercontent.com/jnk22 ... d.png",WDR Ruhr HD
Man kann nach dem Bezeichner am Ende der Zeile filtern:
Code: Alles auswählen
from urllib.request import urlopen
from io import TextIOWrapper
url = 'https://raw.githubusercontent.com/jnk22/kodinerds-iptv/master/iptv/kodi/kodi_tv.m3u'
#channels = ['yletv1', 'ZDF HD', 'WDR HD']
channels = ['Yle TV1', 'ZDF HD', 'WDR HD'] # Bezeichner am Ende der Zeile
target_file_name = 'extracted.m3u'
with urlopen(url) as file, open(target_file_name, 'w', encoding="utf-8") as target_file:
target_file.write('#EXTM3U\n')
text_wrapper = TextIOWrapper(file, encoding='utf-8')
for line in text_wrapper:
for channel in channels:
#if line.startswith(f'#EXTINF:-1 tvg-name="{channel}'):
if line.rfind(',') != -1 and line[line.rfind(',')+1:].strip() == channel:
target_file.write(line)
line = next(text_wrapper)
target_file.write(line)