Найти - Пользователи
Полная версия: Скрипт очистки плейлиста выдаёт ошибки.
Начало » Python для новичков » Скрипт очистки плейлиста выдаёт ошибки.
1
satfan
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 ?
py.user.next
Когда открываешь файл на запись, нужно также указать кодировку внутри open().
satfan
Спасибо 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
py.user.next
Ты когда постишь содержимое файла, ты его тоже в тег code вставляй. Иначе ссылки появляются и обрезаются пробелы и так далее.

Обрати внимание на теги и на то, как эти теги отличаются
[code python]
Сюда вставляешь код на Python
[/code]

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

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

satfan
С 8 строки ошибки.
Как поправить код Python ?
Надо отыскивать название канала в конце, а потом двигаться влево до запятой. Просто проанализируй то, как ты сам глазами видишь, где стоит название канала. Оно не само видится, оно видится по алгоритму, который мозг быстро пробегает. Вот этот алгоритм собственного мозга можно отследить, вытащить, формализовать, а потом реализовать в коде.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB