Форум сайта python.su
IDLE (Python 3.10 64-bit)
Windows 10
—————————-
Есть плейлист IPTV — 1.m3u:
#EXTM3U
#EXTINF:-1,AVD Info
https://avdmono.do.am/arm/AVD.mp4
#EXTINF:-1 tvg-id=“40791” tvg-logo="https://avdmono.do.am/avdlogo/Cinema.png",AVD TV
http://v2.catcast.tv/content/40791/index.m3u8
#EXTINF:-1 tvg-id=“40953” tvg-logo="https://avdmono.do.am/logo/NorMax_kids.png",NorKIds
https://autopilot.catcast.tv/content/40953/index.m3u8
#EXTINF:-1 group-title=“Музыкальные ”,Vevo Pop Europe
https://5f3491c50b093e00015a3c4c-samsung.eu.ssai.zype.com/5f3491c50b093e00015a3c4c_samsung_eu/manifest.m3u8
#EXTINF:-1 ,#EXTGRP:Кино
http://livetv.mylifeisgood.ml/mfolive.m3u8?media=vip_premiere
#EXTINF:-1 group-title=“Беларусь”,Белрос
http://uiptv.do.am/1ufc/116316122/playlist.m3u8
#EXTINF:-1 ,#EXTGRP:Познавательные
http://bigteisti2.lifeyosso.fun:56374/EDA/video.m3u8?token=SXZhbnx8TXpRMVpYSjBaR1pu
#EXTINF:-1,Кинохит HD
#EXTGRP:Кино
http://193.33.88.172:8080/kinohit/index.m3u8
————————————————————————
Нужен простой скрипт для удаления ненужного из этого плейлиста.
Должно в итоге получится так:
#EXTM3U
#EXTINF:-1,AVD Info
https://avdmono.do.am/arm/AVD.mp4
#EXTINF:-1,AVD TV
http://v2.catcast.tv/content/40791/index.m3u8
#EXTINF:-1,NorKIds
https://autopilot.catcast.tv/content/40953/index.m3u8
#EXTINF:-1,Vevo Pop Europe
https://5f3491c50b093e00015a3c4c-samsung.eu.ssai.zype.com/5f3491c50b093e00015a3c4c_samsung_eu/manifest.m3u8
#EXTINF:-1,#EXTGRP:Кино
http://livetv.mylifeisgood.ml/mfolive.m3u8?media=vip_premiere
#EXTINF:-1,Белрос
http://uiptv.do.am/1ufc/116316122/playlist.m3u8
#EXTINF:-1,Познавательные
http://bigteisti2.lifeyosso.fun:56374/EDA/video.m3u8?token=SXZhbnx8TXpRMVpYSjBaR1pu
#EXTINF:-1,Кинохит HD
http://193.33.88.172:8080/kinohit/index.m3u8
—————————————————————-
Что мы должны сделать:
1. В строке: #EXTINF:-1, ….. удалить всё до запятой за которой идёт название канала.
2. Удалить полностью строки: #EXTGRP: Здесь могут меняться названия групп (#EXTGRP:Познавательные #EXTGRP:Новостные и т.д)
—————————-
Я ранее очищал Notepad++ так, не всегда срабатывает:
Открыть регулярные выражения.
В том же Notepad++ например, есть “Поиск” –> “Замена”, поставить галочку “Регулярные выражения” и ввести в строку поиска например:
Найти: #EXTINF:-1
# -*- coding: utf-8 -*
import requests
import os
from os import listdir
from os.path import isfile, join
import re
# создаем папку playlists если ее нет
if not os.path.isdir('playlists'):
os.mkdir('playlists')
main()
# получаем список файлов плейлистов из папки playlists
playlists =
for i in playlists:
with open(f'playlists/{i}', encoding='utf-8') as file_in:
txt = file_in.read()
txt = re.sub(r“( tvg-id.*).(\,)”, ‘,’, txt)
txt = re.sub(r“(#EXTGRP.*).(\n)”, ‘', txt)
with open(f’out_{i}', ‘w’) as file_out:
file_out.write(txt)
Выдаёт ошибки:
Traceback (most recent call last):
File “C:\Users\Пк\Desktop\cleaning_plist\cleaning_plist.py”, line 21, in <module>
file_out.write(txt)
File “C:\Python\lib\encodings\cp1251.py”, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)
UnicodeEncodeError: ‘charmap’ codec can't encode character ‘\U0001f3b6’ in position 243: character maps to <undefined>
————————–
Подскажите как исправить скрипт ?
Отредактировано satfan (Март 9, 2022 08:18:28)
Офлайн
import re # def edit_m3u(m3u_file): with open(m3u_file, 'r', encoding='utf-8') as rf: with open('edited_m3u.m3u', 'w', encoding='utf-8') as wf: for line in rf.readlines(): if line.startswith('#EXTINF'): wf.writelines(re.sub(r'(#EXTINF:-?\d+)(?:.*)?(,)(?:#EXTGRP:)?(.+)', f"\g<1>\g<2>\g<3>", line)) elif line.startswith('http'): wf.writelines(line) elif line.startswith('#EXTM3U'): wf.writelines(line) # edit_m3u('IPTV — 1.m3u')
#EXTM3U
#EXTINF:-1,AVD Info
https://avdmono.do.am/arm/AVD.mp4
#EXTINF:-1,AVD TV
http://v2.catcast.tv/content/40791/index.m3u8
#EXTINF:-1,NorKIds
https://autopilot.catcast.tv/content/40953/index.m3u8
#EXTINF:-1,Vevo Pop Europe
https://5f3491c50b093e00015a3c4c-samsung.eu.ssai.zype.com/5f3491c50b093e00015a3c4c_samsung_eu/manifest.m3u8
#EXTINF:-1,Кино
http://livetv.mylifeisgood.ml/mfolive.m3u8?media=vip_premiere
#EXTINF:-1,Белрос
http://uiptv.do.am/1ufc/116316122/playlist.m3u8
#EXTINF:-1,Познавательные
http://bigteisti2.lifeyosso.fun:56374/EDA/video.m3u8?token=SXZhbnx8TXpRMVpYSjBaR1pu
#EXTINF:-1,Кинохит HD
http://193.33.88.172:8080/kinohit/index.m3u8
Офлайн
Спасибо xam1816
Я только начинаю учить Python.
————————————-
1. Создаю каталог на рабочем столе: cleaning_plist
2. Создаю ваш скрипт: 01.py
3. Загружаю свой плейлист (1.m3u) в текущий каталог — cleaning_plist.
4. В файл: edited_m3u.m3u — ничего не записывается.
Скрипт срабатывает без ошибок. Но ничего не получаю на выходе.
Что не так ?
Отредактировано satfan (Март 9, 2022 12:09:23)
Офлайн