Posts by Chris230291
-
-
Display MoreDisplay More
Does anyone know who owns that repo?
Is this a 1 time fix, or do they plan to maintain it?
I saw toysoft also created a patch repo on GitHub.
If anyone has a repo, and they plan to keep the patch updated, please let me know.

The best is to go to openpli github, and check where they use their compile git link for oscam and oscam-emu, that will be the reference (from where I duplicated the repos you found on my git).
TS
Thank you.
-
Does anyone know who owns that repo?
Is this a 1 time fix, or do they plan to maintain it?
I saw toysoft also created a patch repo on GitHub.
If anyone has a repo, and they plan to keep the patch updated, please let me know.

-
I don't know much about receivers.
All I know is TVHeadend.
It connects directly to OSCam via DVB-API.
Is this not possible for you?
-
That is all on my server.
I only have 1 OSCam which is the server.
My client connects using DVB-API.
-
I list readers by name instead of enabling globally with 1:
If you go into log, enable 64, you should see something like this:
Code2024/11/09 18:08:24 310EEFBB c (reader) emulator [emu] EMM: reader_caid 0000 != emmpid caid 0960 -> SKIP! 2024/11/09 18:08:24 310EEFBB c (reader) emulator [emu] EMM: reader_caid 0000 != emmpid caid 0961 -> SKIP! 2024/11/09 18:08:24 310EEFBB c (reader) emulator [emu] EMM: reader_caid 0000 != emmpid caid 0963 -> SKIP! 2024/11/09 18:08:24 310EEFBB c (reader) sky_uk [videoguard2] EMM: reader_caid 0963 != emmpid caid 0960 -> SKIP! 2024/11/09 18:08:24 310EEFBB c (reader) sky_uk [videoguard2] EMM: reader_caid 0963 != emmpid caid 0961 -> SKIP! 2024/11/09 18:08:24 310EEFBB c (reader) sky_uk [videoguard2] EMM: reader 0963 match since emmpid has no provid -> SEND! -
Hi. Which card do you have?
Do you have AU enabled on the user?
-
any boday recomend a good 42 inch samsong with dtt tuner thanks car
I think something with Android TV is better.
I recently ordered a cheap TCL for my mum, and I was very impressed.
-
The UK is moving towards IPTV.
Last I read, the new service (cant remember the name) is going to be OTA supplemented by IPTV.
I think we still have a good few years before sat it tuned off though.
-
My Docker image builds automatically whenever this repo is updated: https://git.streamboard.tv/common/oscam.git
This is the patch I apply: https://raw.githubusercontent.…ds/master/oscam-emu.patch
Everything seems to be working… But then I'm not a huge emu user.
EDIT:
I just checked, and my build failed 17 hours ago.
The patch needs updating.
The commit ae6e55a9df6e7b6777741a41978878d8e12df18f was the last to build successfully.
-
Make sure your pole is as straight as possible.
Use a digital level and get it super straight.
Many people think it doesn't need to be perfect and end up with problems tracking the arc.
-
And regarding ChatGPT.
It's really good, but it also tends to overcomplicate things.
You are better off breaking down your questions into individual tasks rather than “make the thing”.
-
Just ask if you need help.
It's really very simple.
The problem with offline translators is... last time I checked, they sucked.
Slow and simply not as good as google.
Google tends to do a very good job at not translating literally and instead giving the answer you are actually looking for.
I.e. giving you the regional name of a show instead of a simple translation.
-
Code
.According to google, you are allowed to make 5 requests per secondand up to 200k requests per day. You can wait and try again later oryou can try the translate_batch functionAs always its taking me a while to digest what you guys have posted,

im currently trying to sort a decent proxie list out (back to the IPTV hacking days lol )

I use TOR.
Not sure if there's a precompiled version for your box or if you would have to compile it.
I actually use this docker image: https://github.com/dperson/torproxy
-
Does someone want to double-check this, perhaps actually on a device?
The output from my scripts (translating titles only for 1 day 3 mins 49 secs)
-
I think there is a rate limit.
Nothing is getting translated now without a proxy.
With these settings:
Code##################################### # CONFIG############################## desired_language = "en" translate_titles = True translate_sub_titles = False translate_descriptions = False proxies = {"http": "192.168.1.200:8118", "https": "192.168.1.200:8118"} workers = 40 days_to_translate = 1 #####################################It translates the basic sky de epg in 0h 1m 49s
I also spotted an error in my if statement that decides if we want to translate it or not.
Here's the revised script:
Python
Display Moreimport xml.etree.ElementTree as ET import concurrent.futures from deep_translator import GoogleTranslator from threading import Lock from datetime import datetime ##################################### # CONFIG############################## desired_language = "en" translate_titles = True translate_sub_titles = False translate_descriptions = False proxies = {"http": "192.168.1.200:8118", "https": "192.168.1.200:8118"} workers = 40 days_to_translate = 1 ##################################### def translate_programe(programme): def translate_attribute(attribute): element = programme.find(attribute) if element != None: text = element.text lang = element.get("lang", "auto") translation = translation_cache.get(text) if translation is None and text is not None and lang != desired_language: translation = GoogleTranslator( source=lang, target=desired_language, proxies=proxies ).translate(text) if translation: ET.SubElement(programme, attribute, lang=desired_language).text = str( translation ) with lock: translation_cache[text] = translation programme_stop = datetime.strptime(programme.get("stop"), "%Y%m%d%H%M%S %z") if ( days_to_translate == 0 or (programme_stop.date() >= today and (programme_stop.date() - today).days <= days_to_translate) ): if translate_titles: translate_attribute("title") if translate_sub_titles: translate_attribute("sub-title") if translate_descriptions: translate_attribute("desc") start_time = datetime.now() today = start_time.date() translation_cache = {} lock = Lock() tree = ET.parse("tv.xmltv") root = tree.getroot() programmes = root.findall("programme") with concurrent.futures.ThreadPoolExecutor(max_workers=workers) as executor: executor.map(translate_programe, programmes) ET.indent(tree, space="\t", level=0) tree.write("translated_tv.xmltv", encoding="utf-8", xml_declaration=True) elapsed_time = datetime.now() - start_time hours, remainder = elapsed_time.seconds // 3600, elapsed_time.seconds % 3600 minutes, seconds = remainder // 60, remainder % 60 print(f"Completed in: {hours}h {minutes}m {seconds}s")EDIT: I also suggest something like this to combine all guides into 1, before translating.
This way it doesn't really save anything to disk and I think it's nicer.
If there's a reason you can't do that on e2, then that's fine, just an idea.
Code
Display Moreimport requests import lzma import xml.etree.ElementTree as ET urls = [ "http://epgspot.com/rytec_epg/rytecDE_Basic.xz", "http://epgspot.com/rytec_epg/rytecDE_OtherMovies.xz", "http://epgspot.com/rytec_epg/rytecCH_Basic.xz", "http://epgspot.com/rytec_epg/rytecDE_Common.xz", "http://epgspot.com/rytec_epg/rytecDE_SportMovies.xz" ] combined_root = ET.Element("tv") combined_tree = ET.ElementTree(combined_root) channels = [] programmes = [] for url in urls: try: response = requests.get(url) data = lzma.decompress(response.content) tree = ET.ElementTree(ET.fromstring(data)) root = tree.getroot() channels.extend(root.findall("channel")) programmes.extend(root.findall("programme")) except: pass for channel in channels: combined_root.append(channel) for programme in programmes: combined_root.append(programme) ET.indent(combined_tree, space="\t", level=0) combined_tree.write("combined_tv.xmltv", encoding="utf-8", xml_declaration=True)Parsing the combined guide took me 0h 3m 59s to translate the titles for 1 day.
-
No idea what's used on e2.
I think most people would only really want the title translating.
I did post the full code, try it.
Just set proxies to None
The time I posted (0h 6m 58s) is to translate the complete "basic" guide.
-
I just ran mine without using a proxy, every day and every attribute.
It completes in 0h 6m 58s and everything seems to be translated.
To be clear, my code is based on an old project of mine from years ago.
Back then, a proxy was 100% needed.
Seems like it's not any more?
-
Ah OK.
Perhaps it's not the number of requests, but the number of words in those requests.
I just ran mine set to 0 days (all programmes in file) and it took 12 mins to translate everything.
I don't know if the cache is doing work, or if the if statement to calculate whether to translate the programme is expensive.
-
It was auto... Chatgpt obviously changed again in later amends. It tries to be clever, even though you keep saying use autodetect. :)
Did every single programme that was meant to be translated actually get translated?
Scroll to the bottom and double check.
The reason I mention this is that I hit rate limits very quickly when I wasn't going via the tor network.
I added to my example:
- Caching (not convinced it made a difference)
- Days to translate
- Workers variable
- Completion time
- Simplified it further.
I realise it doesn't handle the downloading, extracting, etc, but that's easily added.
The pre downloaded basic sky de epg took "0h 4m 24s" translating all field for 1 day with 60 workers (I have a feeling this is a little high).
Python
Display Moreimport xml.etree.ElementTree as ET import concurrent.futures from deep_translator import GoogleTranslator from threading import Lock from datetime import datetime ##################################### # CONFIG############################## desired_language = "en" translate_titles = True translate_sub_titles = True translate_descriptions = True proxies = {"http": "192.168.1.200:8118", "https": "192.168.1.200:8118"} workers = 60 days_to_translate = 1 ##################################### def translate_programe(programme): def translate_attribute(attribute): element = programme.find(attribute) if element != None: text = element.text lang = element.get("lang", "auto") translation = translation_cache.get(text) if translation is None and text is not None and lang != desired_language: translation = GoogleTranslator( source=lang, target=desired_language, proxies=proxies ).translate(text) if translation: ET.SubElement(programme, attribute, lang=desired_language).text = str( translation ) with lock: translation_cache[text] = translation programme_stop = datetime.strptime(programme.get("stop"), "%Y%m%d%H%M%S %z") if ( days_to_translate == 0 or programme_stop.date() == today or (programme_stop.date() - today).days >= 0 and (programme_stop.date() - today).days <= days_to_translate ): if translate_titles: translate_attribute("title") if translate_sub_titles: translate_attribute("sub-title") if translate_descriptions: translate_attribute("desc") start_time = datetime.now() today = start_time.date() translation_cache = {} lock = Lock() tree = ET.parse("tv.xmltv") root = tree.getroot() programmes = root.findall("programme") with concurrent.futures.ThreadPoolExecutor(max_workers=workers) as executor: executor.map(translate_programe, programmes) ET.indent(tree, space="\t", level=0) tree.write("translated_tv.xmltv", encoding="utf-8", xml_declaration=True) elapsed_time = datetime.now() - start_time hours, remainder = elapsed_time.seconds // 3600, elapsed_time.seconds % 3600 minutes, seconds = remainder // 60, remainder % 60 print(f"Completed in: {hours}h {minutes}m {seconds}s")
