Oscam.srvid — Generator

#!/usr/bin/env python3 # OSCam.srvid Generator from Enigma2 lamedb import re import sys def parse_lamedb(filepath): services = [] try: with open(filepath, 'r') as f: content = f.read()

# Find the services section match = re.search(r'services\n(.*?)\nend', content, re.DOTALL) if not match: print("Error: Could not find 'services' section") return [] lines = match.group(1).strip().split('\n') for line in lines: parts = line.split(':') if len(parts) >= 4: sid_hex = parts[0] # Service ID in hex caid = parts[2] # CAID provider_id = parts[3] if len(parts) > 3 else '0000' service_name = parts[4] if len(parts) > 4 else f"Unknown_{sid_hex}" # Clean up name (remove special chars) service_name = re.sub(r'[^\w\s\-\(\)]', '', service_name).strip() services.append({ 'caid': caid, 'sid': sid_hex.upper(), 'provider': provider_id, 'name': service_name }) except Exception as e: print(f"Error reading lamedb: {e}") oscam.srvid generator

Instead of:

This is where the file comes in. Think of it as a phonebook for your channels. It translates those cryptic numbers into readable names. Client connected: SID 13E:19:2B78 You will see: for

Client connected: SID 13E:19:2B78 You will see: service_name).strip() services.append({ 'caid': caid

for s in services: # Write both generic and provider-specific entries f.write(f"{s['caid']}:{s['provider']} {s['sid']} \"{s['name']}\"\n") print(f"✅ Generated {len(services)} entries in {output_path}") if == " main ": lamedb_path = input("Enter path to lamedb file (default: /etc/enigma2/lamedb): ") or "/etc/enigma2/lamedb" services = parse_lamedb(lamedb_path)

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close