قم بتنظيم قائمة تشغيل torrent-TV (Super Wash)

محدث لقد ماتت خدمة Torrent-TV ، التي كانت المصدر الرئيسي للمحتوى ، وبالتالي فإن المقالة خالية من المعنى العملي.

التدفقات في خدمة Torrent-TV غير القانونية (Super Wash) هي تدفقات أصلية إلى حد كبير من المشغلين أو من قمر صناعي دون تحامل. هذه هي دفق الفيديو المتداخلة بشكل رئيسي. يوفر Torrent TV أعلى جودة ممكنة ، لكن ثباتًا منخفضًا. اليوم هناك بعض القنوات ، غدا لا. اليوم ، بعض القنوات تعمل بشكل جيد ، غدا سيء. هذه الخدمة ليست مناسبة للاستخدام المتواصل الخالي من المتاعب - التي دفعوا مقابلها ، أي لم تدفع ، ثم تلقوا. ولكن من الرائع أن تحتاج إلى مشاهدة شيء بجودة عالية (إذا كانت القناة ستعمل بثبات في تلك اللحظة). مشكلة أخرى هي تشكيل قائمة تشغيل شخصية مريحة. وسيتم مناقشة هذا في مذكرة.



تحتوي قائمة التشغيل الأساسية بتلفزيون تورنت (Super Wash) على أكثر من 1200 قناة. تنتمي جميع أنواع المناطق الإقليمية والمختلفة وتكرارات SD و HD وقنوات القمامة المختلفة وما إلى ذلك إلى 200-300 قناة للمشاهدين الروس. في الوقت نفسه ، فإن تجميع القنوات المقبول ليس مناسبًا للجميع. يبدو أنه يمكنك أخذ قائمة تشغيل من Torrent TV ، وترتيبها حسب ما تتطلبه روح الكمال. المشكلة هي أن روابط AceStream إلى القنوات تتغير بشكل دوري ، وسوف تصبح قائمة التشغيل المعدة بلا فائدة. أي تحتاج إلى إنشاء تلقائي لقائمة تشغيل جديدة ومحدثة في شكل مناسب لك. هذا هو ما سنفعله.

ستحتاج:

  • خبرة في إعداد برامج لمشاهدة Torrent TV ("Super Wash") ومعرفة ما هو عليه.
  • جهاز التوجيه مع دعم Entware (إذا لزم الأمر ، وبعض المهارات يمكنك بسهولة تكييف الإرشادات لـ OpenWrt أو Entware على المربعات نفسها).

لا تعالج المذكرة المشكلات:

  • اختيار وتكوين مدير IPTV.
  • إعدادات النظام ككل لمشاهدة Torrent TV.
  • ميزات مربعات Android محددة للعمل مع الفيديو المتشابك بشكل عام وتلفزيون Torrent بشكل خاص.

سوف نستخدم البرنامج على جهاز التوجيه ، والذي عندما يطلبه الرابط ، نزّل قائمة تشغيل Torrent-TV الحالية ، ونشكل قائمة تشغيل جديدة ونقدمها:

  • قائمة القنوات الخاصة بك بناءً على قائمة القنوات المفضلة المعدة.
  • يمكنك استبعاد قنوات SD تلقائيًا إذا كانت هناك مطابقة عالية الدقة لها.
  • فرز المجموعات وأسمائهم حسب رغبتك.
  • اسم القناة المعروض كما يحلو لك.
  • فرز القنوات في مجموعة حسب HD / SD (أساسي) واسم.
  • روابط مدمجة لمصادر EPG.
  • مصدر الشعارات (وكذلك الشعارات نفسها) وتوافق EPG للقنوات التي تختارها.

كيف سيكون كل شيء يعمل بعد ضبط؟


أضف رابطًا إلى قائمة التشغيل http://192.168.0.1:81/playlist.cgi (استبدل 192.168.0.1 بالعنوان الداخلي للموجه) في مدير IPTV. تم



مبدأ العملية بسيط جدا. يقوم برنامج التشغيل playlist.cgi الموجود على جهاز التوجيه بإطلاق برنامج ttv.py ، والذي يقوم ، بناءً على قائمة تشغيل torrent-TV الحالية (التي تم تحميلها في وقت الوصول) وقائمة معينة من القنوات المفضلة ، بإنشاء قائمة تشغيل جديدة ثم يقدمها بعيدًا.

تثبيت البرنامج الضروري على جهاز التوجيه


الاتصال عبر SSH إلى جهاز التوجيه. على Windows ، يمكنك استخدام عميل PuTTY لتوصيل الاتصال.

قم بتثبيت البرنامج الضروري:

opkg update opkg install wget ca-certificates mc python3 lighttpd-mod-cgi 

wget هو برنامج لتنزيل الملفات. ستكون هناك حاجة فقط من أجل الإعداد الأولي.

شهادات كاليفورنيا - شهادات ل wget.

مولودية - مدير ملف قائد منتصف الليل. هناك حاجة فقط بسبب محرر mcedit مريحة. إذا كنت معتادًا على استخدام محرر نصوص آخر ، فلا يمكن تثبيت mc.

بايثون هو مترجم بيثون.

lighttpd-mod-cgi - خادم الويب lighttpd.

تحميل الملفات الرئيسية


 mkdir -p /opt/etc/ttv wget --no-check-certificate -O /opt/etc/ttv/ttv.py https://raw.githubusercontent.com/Kyrie1965/ttv/master/ttv.py wget --no-check-certificate -O /opt/share/www/playlist.cgi https://raw.githubusercontent.com/Kyrie1965/ttv/master/playlist.cgi chmod +x /opt/share/www/playlist.cgi 

سوف أخبر عن موعدهم لاحقًا ، لكن الآن سأعرض المحتويات فقط. لا أجد خطأً في شفرة بيثون ، حتى هذه اللحظة لم أكتب أي شيء في بيثون.

المحتوى /opt/etc/ttv/ttv.py
 PLAYLIST_LOAD_URL = "http://91.92.66.82/trash/ttv-list/as.all.tag.player.m3u" TEMPLATE_SAVE_PATH = "/opt/etc/ttv/template.txt" FAVORITES_LOAD_PATH = "/opt/etc/ttv/favorites.txt" PLAYLIST_SAVE_PATH = "/opt/etc/ttv/playlist.m3u" LOGOS_URL = "" #LOGOS_URL = "https://raw.githubusercontent.com/Kyrie1965/ttv/master/logos/{}" #LOGOS_URL = "{}" STREAM_URL = "http://127.0.0.1:6878/ace/getstream?id={}&.mp4" #STREAM_URL = "acestream://{}" EPG_LINKS = "https://teleguide.info/download/new3/xmltv.xml.gz" #EPG_LINKS = "https://teleguide.info/download/new3/xmltv.xml.gz,http://programtv.ru/xmltv.xml.gz,http://api.torrent-tv.ru/ttv.xmltv.xml.gz" import re import urllib.request import os from operator import itemgetter as i from functools import cmp_to_key from urllib.parse import urlencode import gzip def cmp(a, b): return (a > b) - (a < b) def multikeysort(items, columns): comparers = [ ((i(col[1:].strip()), -1) if col.startswith('-') else (i(col.strip()), 1)) for col in columns ] def comparer(left, right): comparer_iter = ( cmp(fn(left), fn(right)) * mult for fn, mult in comparers ) return next((result for result in comparer_iter if result), 0) return sorted(items, key=cmp_to_key(comparer)) def loadChannels(content): lines = content.splitlines() returnChannels = {} pattern = re.compile("group-title=\"(.*?)\"") pattern2 = re.compile("tvg-logo=\"(.*?)\"") channelName = "" channelGroup = "" channelLogoLink = "" channelStreamID = "" waitURI = False for line in lines: if line.startswith("acestream"): if waitURI: channelStreamID = line[12:] HD = False if ("HD" in channelName) or ("UHD" in channelName) or ("4K" in channelName): HD = True tmpDict = {"name": channelName, "group": channelGroup, "stream": channelStreamID, "hd": HD, "logolink": channelLogoLink} returnChannels[channelName.upper()] = tmpDict waitURI = False elif line.startswith("#EXTINF"): index = line.rfind("\",") if (index == -1): continue channelName = line[index+2:] match = pattern.search(line) if match: channelGroup = match.group(1) else: channelGroup = "" match = pattern2.search(line) if match: channelLogoLink = match.group(1) else: channelLogoLink = "" waitURI = True return returnChannels def saveTemplate(content, channels, path): lines = content.splitlines() pattern = re.compile("group-title=\"(.*?)\"") waitURI = False channelName = "" channelReplace = "" channelNewName = "" channelEPG = "" channelGroup = "" channelStreamID = "" groupDict = {} currentGroup = 1 template="" for line in lines: if line.startswith("acestream"): if waitURI: channelStreamID = line[12:] template += channelName template += "/" template += channelReplace template += "/" template += channelNewName template += "/" template += channelEPG template += "/" template += channelName + ".png" template += "/" template += channelGroup template += "\n" waitURI = False elif line.startswith("#EXTINF"): x = line.split("\",") if (len(x) != 2): continue channelName = x[1] channelNewName = x[1] channelEPG = x[1] if (channels.get(channelName.upper() + " HD") != None): channelReplace = channelName + " HD" else: channelReplace = "-" match = pattern.search(x[0]) if match: channelGroup = match.group(1) if (groupDict.get(channelGroup)): channelGroup = groupDict.get(channelGroup) else: newGroupName = "{:02d}_{}".format(currentGroup, channelGroup) currentGroup += 1 groupDict[channelGroup] = newGroupName channelGroup = newGroupName else: channelGroup = "00_Unsigned" waitURI = True file = open(path,'w', encoding='utf-8') file.write(template) file.close() return def loadFavorites(content): returnChannels = {} lines = content.splitlines() for line in lines: parts = line.split('/') if len(parts) == 6: tmpDict = {"name": parts[0], "replace": parts[1], "newName": parts[2], "EPG": parts[3], "logo": parts[4], "group": parts[5]} returnChannels[parts[0].upper()] = tmpDict elif len(parts) == 5: #    tmpDict = {"name": parts[0], "replace": parts[1], "newName": parts[2], "EPG": parts[3], "group": parts[4], "logo": parts[0] + ".png"} returnChannels[parts[0].upper()] = tmpDict return returnChannels def savePlaylist(channels, favorites, path): returnChannels = [] currentChannels = set() for key, chDict in favorites.items(): if chDict["replace"] != "-": if favorites.get(chDict["replace"].upper()) != None and channels.get(chDict["replace"].upper()) != None: currentChannels.add(chDict["replace"]) elif channels.get(chDict["name"].upper()) != None: currentChannels.add(chDict["name"]) elif channels.get(chDict["name"].upper()) != None: currentChannels.add(chDict["name"]) for ch in currentChannels: chFromFavorites = favorites.get(ch.upper()) chFromChannels = channels.get(ch.upper()) tmpDict = {"name": chFromFavorites.get("newName"), "oldName": chFromFavorites.get("name"), "EPG": chFromFavorites.get("EPG"), "group": chFromFavorites.get("group"), "logof": chFromFavorites.get("logo"), "logoc": chFromChannels.get("logolink"), "stream": chFromChannels.get("stream"), "hd": chFromChannels.get("hd")} returnChannels.append(tmpDict) result = multikeysort(returnChannels, ['group', '-hd', 'name']) template="" template += "#EXTM3U url-tvg=" template += "\"" template += EPG_LINKS template += "\"" template += "\n" for n in result: group = n.get("group") if group.find("_", 2, 3) != -1: group = group[3:] if len(LOGOS_URL) > 0: template += "#EXTINF:-1 tvg-name=\"{}\" tvg-logo=\"{}\" group-title=\"{}\",{}".format(n.get("EPG"), LOGOS_URL.format(urllib.parse.quote(n.get("logof"))), group, n.get("name")) else: template += "#EXTINF:-1 tvg-name=\"{}\" tvg-logo=\"{}\" group-title=\"{}\",{}".format(n.get("EPG"), n.get("logoc"), group, n.get("name")) template += "\n" template += STREAM_URL.format(n.get("stream")) template += "\n" file = open(path,'w', encoding='utf-8') file.write(template) file.close() return result #response = urllib.request.urlopen(PLAYLIST_LOAD_URL) #content = response.read().decode("utf-8") #channels = loadChannels(content) content = "" request = urllib.request.Request(PLAYLIST_LOAD_URL) request.add_header('Accept-encoding', 'gzip') response = urllib.request.urlopen(request) if response.info().get('Content-Encoding') == 'gzip': gzipFile = gzip.GzipFile(fileobj=response) content = gzipFile.read().decode("utf-8") else: content = response.read().decode("utf-8") channels = loadChannels(content) if channels == None or (len(channels.keys()) == 0): exit() saveTemplate(content, channels, TEMPLATE_SAVE_PATH) exists = os.path.isfile(FAVORITES_LOAD_PATH) if exists: file = open(FAVORITES_LOAD_PATH,'r', encoding='utf-8') content = file.read() favorites = loadFavorites(content) savePlaylist(channels, favorites, PLAYLIST_SAVE_PATH) 


المحتوى /opt/share/www/playlist.cgi
 #!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/sbin:/opt/usr/bin:/usr/sbin:/usr/bin:/sbin:/bin python3 /opt/etc/ttv/ttv.py echo "Content-Type: text/plain; charset=UTF-8" echo "" echo "$(cat /opt/etc/ttv/playlist.m3u)" 


تكوين خادم الويب وبدء التشغيل


افتح الملف /opt/etc/lighttpd/lighttpd.conf :

 mcedit /opt/etc/lighttpd/lighttpd.conf 

للصق من المخزن المؤقت ، استخدم Shift + Insert ، حفظ - F2 ، خروج - F10.

تغيير السطر # server.port = 80 إلى:

 server.port = 81 

افتح الملف /opt/etc/lighttpd/conf.d/30-cgi.conf :

 mcedit /opt/etc/lighttpd/conf.d/30-cgi.conf 

تغيير ".cgi" => "/ opt / bin / perl" إلى:

 ".cgi" => "/bin/sh" 

قم بتشغيل خادم الويب:

 /opt/etc/init.d/S80lighttpd start 

إنشاء قائمة القنوات المفضلة


قم بتشغيل برنامج ttv.py :

 python3 /opt/etc/ttv/ttv.py 

سيتم إنشاء ملف قالب template.txt في مجلد / opt / etc / ttv . هذا ملف نصي بسيط. سيكون دائمًا ذا صلة ، أي عند بدء تشغيل البرنامج ، يتم الكتابة عليه بالبيانات الحالية.

يتوافق كل سطر في هذا الملف مع قناة Torrent-TV واحدة وله النموذج:
CHANNEL_NAME / CHANGE_CHANNEL / YOUR_CHANNEL_NAME / YOUR_CHANNEL_NAME__EPG / YOUR_LOGO / مجموعتك

على سبيل المثال:

Amedia Premium / Amedia Premium HD / Amedia Premium / Amedia Premium / Amedia Premium.png / 11_Movies
Amedia Premium HD / - / Amedia Premium HD / Amedia Premium HD / Amedia Premium HD.png / 11_Movies

احفظ هذا الملف على جهاز الكمبيوتر الخاص بك لسهولة التحرير (على سبيل المثال ، باستخدام WinSCP ). تسميته إلى Favorites.txt.

تحرير الملف ، وترك فقط تلك القنوات التي تحتاج إليها.

CHANNEL_NAME - اسم القناة في قائمة التشغيل الأصلية.

CHANGE_CHANNEL - اسم القناة في قائمة التشغيل الأصلية للاستبدال. ضع "-" إذا لم تكن هناك حاجة إلى بديل. افتراضيًا ، يتم استبدال البدائل تلقائيًا في القالب إذا كانت القناة تحتوي على خيار HD. على سبيل المثال ، يوجد في قائمة التشغيل الأصلية Amedia Premium و Amedia Premium HD. فقط Amedia Premium HD سيكون في قائمة التشغيل النهائية.

YOUR_CHANNEL_NAME هو اسم العرض في مدير IPTV. يمكن أن يكون أي شيء ويؤثر فقط على الاسم المعروض في مدير IPTV. على سبيل المثال ، تسمى القناة الأصلية "Paramount Comedy HD (Russia)" ، ويمكنك تسميتها "Paramount Comedy HD".

YOUR_CHANNEL_B__EPG_NAME - هذا ضروري للامتثال الكامل في مصدر EPG المحدد. على سبيل المثال ، تسمى القناة الأصلية "Match TV HD". وفي EPG تسمى هذه القناة "Match!". تغيير هذه المعلمة إلى "مطابقة!" والحصول على الامتثال الكامل لمصدر EPG الخاص بك. وبالتالي ، بالنسبة لجميع القنوات ، يمكنك تقريب التوافق مع EPG إلى 100٪.

YOUR_LOGO - اسم ملف الشعار. بشكل افتراضي ، يأخذ ttv.py روابط الشعار من قائمة التشغيل الأصلية ، أي سيتم تجاهل YOUR_LOGO الخاص بك. لاستخدامها ، تحتاج إلى تغيير المعلمة LOGOS_URL في ttv.py (ستقرأ المزيد حول هذا لاحقًا).

YOUR_GROUP - اسم مجموعة القنوات. يمكنك استخدام فهرس ، رقم مكون من رقمين ، قبل اسم المجموعة. يحدد هذا الفهرس ترتيب المجموعات في قائمة التشغيل النهائية (من الأصغر إلى الأكبر). بعد الفرز ، سيتم إزالة الفهرس تلقائيًا من اسم المجموعة.

فيما يلي مثال لملف مفضلتي.txt تم تحريره
 Amedia Premium/Amedia Premium HD/Amedia Premium/Amedia Premium/Amedia Premium.png/11_   Amedia Premium HD/-/Amedia Premium HD/Amedia Premium HD/Amedia Premium HD.png/11_   / HD///.png/12_  HD/-/ HD/ HD/ HD.png/12_ Viasat History/Viasat History HD/Viasat History/Viasat History/Viasat History.png/01_ Viasat History HD/-/Viasat History HD/Viasat History/Viasat History.png/01_ Discovery Channel/Discovery Channel HD/Discovery Channel/Discovery Channel/Discovery Channel.png/01_ Discovery Channel HD/-/Discovery Channel HD/Discovery Channel HD/Discovery Channel HD.png/01_ Discovery Science/Discovery Science HD/Discovery Science/Discovery Science/Discovery Science.png/01_ Discovery Science HD/-/Discovery Science HD/Discovery Science HD/Discovery Science HD.png/01_ Amedia Hit/Amedia Hit HD/Amedia Hit/Amedia Hit/Amedia Hit.png/11_   Amedia Hit HD/-/Amedia Hit HD/Amedia Hit HD/Amedia Hit HD.png/11_    /  HD/!/!/ .png/03_   HD/-/! HD/!/  HD.png/03_ Eurosport 1/Eurosport 1 HD/Eurosport 1/Eurosport 1/Eurosport 1.png/03_ Eurosport 1 HD/-/Eurosport 1 HD/Eurosport 1 HD/Eurosport 1 HD.png/03_ Paramount Comedy HD ()/-/Paramount Comedy HD/Paramount Comedy HD ()/Paramount Comedy HD ().png/11_   !  1/!  1 HD/!  1/!  1/!  1.png/03_ !  1 HD/-/!  1 HD/!  1 HD/!  1 HD.png/03_  1/ HD/ 1/ 1/ 1.png/13_-  HD/-/ HD/ HD/ HD.png/13_- 


انسخ ملف Favorites.txt المعد إلى مجلد / opt / etc / ttv على جهاز التوجيه.

كل شيء جاهز. يمكنك اختيار قائمة التشغيل على http://192.168.0.1:81/playlist.cgi (استبدل 192.168.0.1 بالعنوان الداخلي للموجه). ما عليك سوى تحديد الرابط في مدير IPTV وستظل لديك دائمًا قائمة التشغيل الحالية. يقوم playlist.cgi النصي بتشغيل برنامج ttv.py ، والذي يقوم ، بناءً على قائمة التشغيل الحالية من torrent-TV (التي تم تحميلها في وقت الاتصال) و Favorites.txt ، بإنشاء قائمة تشغيل جديدة ، ثم يعطي قائمة التشغيل الجديدة هذه.

عند الإخراج ، إذا كانت جميع القنوات موجودة في قائمة التشغيل الحالية (وإلا ، سيتم تجاهل القنوات المفقودة) ، فستحصل على قائمة تشغيل أنيقة مثل:

قائمة التشغيل
#EXTM3U url-tvg="https://teleguide.info/download/new3/xmltv.xml.gz"
#EXTINF:-1 tvg-name="Discovery Channel HD" tvg-logo="http://1ttv.org/uploads/SmWnYlOvkJn8GzttT2UY0vmo8PYfMg.png" group-title="",Discovery Channel HD
http://127.0.0.1:6878/ace/getstream?id=b6e518df35bdffc7ea8fdd05025cec851941a102&.mp4
#EXTINF:-1 tvg-name="Discovery Science HD" tvg-logo="http://1ttv.org/uploads/Yjj1p6idV0HGD56Wz7JX5IeKfD44vz.png" group-title="",Discovery Science HD
http://127.0.0.1:6878/ace/getstream?id=03fb28986da9168dd56ec6891253bcc496c13eb5&.mp4
#EXTINF:-1 tvg-name="Viasat History" tvg-logo="http://1ttv.org/uploads/MWGbB8wJp5Gm4vbPHl0ktohDDjMKdr.png" group-title="",Viasat History
http://127.0.0.1:6878/ace/getstream?id=c6d943e1aac03c179b3af9e99d97ac6779c947c7&.mp4
#EXTINF:-1 tvg-name="Eurosport 1 HD" tvg-logo="http://1ttv.org/uploads/DpFTzUEA3y67Z6ObTPF4xH0XLNRAZm.png" group-title="",Eurosport 1 HD
http://127.0.0.1:6878/ace/getstream?id=70bd87520c622ba7dd6e41aface77d5b2f437f87&.mp4
#EXTINF:-1 tvg-name="!" tvg-logo="http://1ttv.org/uploads/MXyy9Uud7oDuH8JqVisjsD0csgAHnQ.png" group-title="",! HD
http://127.0.0.1:6878/ace/getstream?id=9af7ac309216464e67092deb23d312a20c483674&.mp4
#EXTINF:-1 tvg-name="! 1 HD" tvg-logo="http://1ttv.org/uploads/9PM8M6cN21wQ3M5isVZgjNepzUI4Ry.png" group-title="",! 1 HD
http://127.0.0.1:6878/ace/getstream?id=b8a1e8458419b63ad1c3fa7bd79431d9625c322d&.mp4
#EXTINF:-1 tvg-name="Amedia Hit HD" tvg-logo="http://1ttv.org/uploads/HdnTfcZCgP7Odm1cOKNq9j4yJDRiFP.png" group-title=" ",Amedia Hit HD
http://127.0.0.1:6878/ace/getstream?id=ed6d00e9b6c50c95902b33c841302dd709b214da&.mp4
#EXTINF:-1 tvg-name="Amedia Premium HD" tvg-logo="http://1ttv.org/uploads/ornzQpk6WCW6xk0lyBhlwqH8u2QyU7.png" group-title=" ",Amedia Premium HD
http://127.0.0.1:6878/ace/getstream?id=c38a7580985fa85fa6e0a82c6fd7403e8e5c2b50&.mp4
#EXTINF:-1 tvg-name="Paramount Comedy HD ()" tvg-logo="http://1ttv.org/uploads/VowjbL265DoceAryIEtqNuPv3NDhFK.png" group-title=" ",Paramount Comedy HD
http://127.0.0.1:6878/ace/getstream?id=a9023adab9228b8aa7f1b508b553140b69cecd80&.mp4
#EXTINF:-1 tvg-name=" HD" tvg-logo="http://1ttv.org/uploads/m6ODa3HXr9QNAbSThJNvWeOIEYGp7q.png" group-title="", HD
http://127.0.0.1:6878/ace/getstream?id=4318416741f8d35f2de38e7100b89831e0ef0617&.mp4
#EXTINF:-1 tvg-name=" HD" tvg-logo="http://1ttv.org/uploads/ghvqmVpPWqn9x6POAm9UJBvXFzTrqN.png" group-title="-", HD
http://127.0.0.1:6878/ace/getstream?id=39b9b54a5031846e4936735ec62d157d5eca56e0&.mp4


 : Discovery Channel HD Discovery Science HD Viasat History : Eurosport 1 HD ! HD !  1 HD   : Amedia Hit HD Amedia Premium HD Paramount Comedy HD :  HD -:  HD 

إذا لزم الأمر ، يمكنك تغيير بعض المعلمات في برنامج ttv.py:

 mcedit /opt/etc/ttv/ttv.py 

الخيارات المتاحة للتغيير
PLAYLIST_LOAD_URL = "http://91.92.66.82/trash/ttv-list/as.all.tag.player.m3u"
TEMPLATE_SAVE_PATH = "/opt/etc/ttv/template.txt"
FAVORITES_LOAD_PATH = "/opt/etc/ttv/favorites.txt"
PLAYLIST_SAVE_PATH = "/opt/etc/ttv/playlist.m3u"
LOGOS_URL = ""
#LOGOS_URL = "https://raw.githubusercontent.com/Kyrie1965/ttv/master/logos/{}"
#LOGOS_URL = "{}"
STREAM_URL = "http://127.0.0.1:6878/ace/getstream?id={}&.mp4"
#STREAM_URL = "acestream://{}"
EPG_LINKS = "https://teleguide.info/download/new3/xmltv.xml.gz"
#EPG_LINKS = "https://teleguide.info/download/new3/xmltv.xml.gz,http://programtv.ru/xmltv.xml.gz,http://api.torrent-tv.ru/ttv.xmltv.xml.gz"


PLAYLIST_LOAD_URL - رابط لتنزيل قائمة تشغيل torrent-TV الحالية.
TEMPLATE_SAVE_PATH - مسار لحفظ القالب.
FAVORITES_LOAD_PATH - مسار لتحميل قائمة القنوات المفضلة.
PLAYLIST_SAVE_PATH - مسار لحفظ قائمة تشغيل جديدة.
LOGOS_URL - الرابط مع شعارات القنوات. يمكنك استخدام السلسلة الفارغة ("") لأخذ روابط من قائمة التشغيل الأصلية ، بينما سيتم تجاهل الشعارات من Favorites.txt.
STREAM_URL - عرض رابط البث في قائمة التشغيل النهائية. يمكن أن يكون هذا رابطًا مباشرًا إلى Ace Stream أو رابطًا إلى Ace Stream Proxy. يعتمد على مدير IPTV الذي تستخدمه.
EPG_LINKS - قائمة بروابط EPG. جميع مديري IPTV مختلفة. هناك أولئك الذين لا يعرفون كيفية أخذ الرابط إلى EPG من قائمة التشغيل. هناك تلك التي تدعم مصدر EPG واحد فقط من قائمة التشغيل. هناك أولئك الذين لا يعرفون كيفية الجمع بين EPG من مصادر مختلفة.

لن تكون مهتمًا إلا بـ STREAM_URL و LOGOS_URL و EPG_LINKS لأن مظهر قائمة التشغيل النهائية يعتمد عليها. بالنسبة لهم ، يتم إعطاء أمثلة بديلة في الملف.

الخاتمة


نتيجةً لذلك ، يمكنك الحصول على قائمة تشغيل Torrent TV الفعلية (Super Wash) مع قائمة القنوات الخاصة بك ، مع أسماء القنوات الخاصة بك ، مع مجموعاتك الخاصة وفرزك التعسفي ، شعاراتك الخاصة ، مع تخطيط EPG الخاص بك ، مع إمكانية استبعاد HD / SD مكررة ، مع الفرز قنوات داخل مجموعات بواسطة HD / SD والاسم. ما عليك سوى تكوين كل شيء مرة واحدة وإنشاء ملف من القنوات المفضلة لديك. وبعد ذلك ستتلقى جميع الأجهزة على شبكتك المنزلية قائمة التشغيل المطلوبة عبر الرابط ، مع القيام بكل شيء "جميل" على الفور دون أي إعدادات إضافية.



محدث 02/19/2019:

  • تمت إضافة دعم gzip عند تحميل قائمة التشغيل الأصلية ("superwash" الآن ttv.all.tag.player.m3u فقط في gzip). سيتم منح قائمة التشغيل التي قمت بإنشائها ، كما كان من قبل ، في نص / عادي.
  • وأضاف القدرة على اتخاذ روابط لشعارات من قائمة التشغيل الأصلية.

Source: https://habr.com/ru/post/ar438842/


All Articles