Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 2, 2022 11:15:22

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Скрипт очистки плейлиста выдаёт ошибки.

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-sam…/manifest.m3u8
#EXTINF:-1 , group-title=“Музыкальные ”,V
#EXTGRP:Кино
http://livetv.mylifeisgood.ml/mfoliv…a=vip_premiere
#EXTINF:-1 group-title=“Беларусь”,Белрос
http://uiptv.do.am/1ufc/116316122/playlist.m3u8
#EXTINF:-1 , group-title=“Музыкальные ”,Vuuu
#EXTGRP:Познавательные
http://bigteisti2.lifeyosso.fun:5637…pRMVpYSjBaR1puindex.m3u8
#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
и т.д.
—————————————————————-
Что мы должны сделать:
1. В строке: #EXTINF:-1, ….. удалить всё до запятой за которой идёт название канала.
2. Удалить полностью строки: #EXTGRP: Здесь могут меняться названия групп (#EXTGRP:Познавательные #EXTGRP:Новостные и т.д)
—————————-
Я проверял этот скрипт:

 # -*- 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 = [f for f in listdir('playlists') if isfile(join('playlists', f))]
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)
———————————————————
Скрипт срабатывает но не все строки очищает
Вот итог его работы, получаем файл out_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 group-title=Ућузыкальные Ф,Vevo Pop Europe
https://5f3491c50b093e00015a3c4c-sam…/manifest.m3u8
#EXTINF:-1 , group-title=Ућузыкальные Ф,V
http://livetv.mylifeisgood.ml/mfoliv…a=vip_premiere
#EXTINF:-1 group-title=УЅеларусьФ,Ѕелрос
http://uiptv.do.am/1ufc/116316122/playlist.m3u8
#EXTINF:-1 , group-title=Ућузыкальные Ф,Vuuu
http://bigteisti2.lifeyosso.fun:5637…pRMVpYSjBaR1puindex.m3u8
#EXTINF:-1, инохит HD
http://193.33.88.172:8080/kinohit/index.m3u8
=================================
С 8 строки ошибки.
Как поправить код Python ?

Прикреплённый файлы:
attachment 1.m3u (971 байт)

Офлайн

#2 Апрель 2, 2022 12:08:46

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Скрипт очистки плейлиста выдаёт ошибки.

Когда открываешь файл на запись, нужно также указать кодировку внутри open().



Офлайн

#3 Апрель 2, 2022 12:13:50

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Скрипт очистки плейлиста выдаёт ошибки.

Спасибо py.user.next
Исправил эту строку:

 with open(f'out_{i}', 'w', encoding='utf-8') as file_out:
——————————————
Всё равно очищает с ошибками с 8 строки:
#EXTINF:-1 group-title=“Музыкальные ”,Vevo Pop Europe
https://5f3491c50b093e00015a3c4c-sam…/manifest.m3u8
#EXTINF:-1 , group-title=“Музыкальные ”,V
http://livetv.mylifeisgood.ml/mfoliv…a=vip_premiere
#EXTINF:-1 group-title=“Беларусь”,Белрос
http://uiptv.do.am/1ufc/116316122/playlist.m3u8
#EXTINF:-1 , group-title=“Музыкальные ”,Vuuu
http://bigteisti2.lifeyosso.fun:5637…pRMVpYSjBaR1puindex.m3u8
—————————————————————————
Вот такие строки не очищаются:
#EXTINF:-1 group-title=“Кино”,Amedia 1 HD
http://persik.by/stream/7504/377885/10381.m3u8

Отредактировано satfan (Апрель 2, 2022 12:32:57)

Офлайн

#4 Апрель 2, 2022 22:54:56

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Скрипт очистки плейлиста выдаёт ошибки.

Ты когда постишь содержимое файла, ты его тоже в тег code вставляй. Иначе ссылки появляются и обрезаются пробелы и так далее.

Обрати внимание на теги и на то, как эти теги отличаются

[code python]
Сюда вставляешь код на Python
[/code]

[code]
Сюда вставляешь содержимое файла
[/code]

Это описание, как обходить баги в самом теге code python
[code python] <- Здесь ставишь один пробел
Первая строка кода на Python
Вторая строка кода на Python
<- Здесь ставишь один пробел
Третья строка кода на Python
Четвёртая строка кода на Python
[/code]

satfan
С 8 строки ошибки.
Как поправить код Python ?
Надо отыскивать название канала в конце, а потом двигаться влево до запятой. Просто проанализируй то, как ты сам глазами видишь, где стоит название канала. Оно не само видится, оно видится по алгоритму, который мозг быстро пробегает. Вот этот алгоритм собственного мозга можно отследить, вытащить, формализовать, а потом реализовать в коде.



Отредактировано py.user.next (Апрель 2, 2022 23:05:57)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version