Jump to content

Oscam.srvid Generator 〈Top — 2026〉

#!/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()

Client connected: SID 13E:19:2B78 You will see:

return services def write_oscam_srvid(services, output_path='oscam.srvid'): with open(output_path, 'w') as f: f.write("# oscam.srvid generated automatically\n") f.write("# Format: CAID:S_PROVIDER SID "Channel Name"\n\n") oscam.srvid generator

This is where the file comes in. Think of it as a phonebook for your channels. It translates those cryptic numbers into readable names.

Share it in the comments below! Disclaimer: This post is for educational purposes regarding the OSCam software configuration. Please comply with all local laws regarding content access. Share it in the comments below

If you are running an OSCam server for satellite or cable TV, you know the frustration of looking at a log file or client connection and seeing only a SID (Service ID) like 13E:19:2B78 instead of a human-readable channel name like "Sky Sport Bundesliga 1 HD".

Here is a that reads an Enigma2 lamedb file (the standard for Dreambox/Vu+/OpenATV) and converts it into a perfect oscam.srvid . The Python Generator Script Save this as generate_srvid.py : If you are running an OSCam server for

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)

# 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}")

Instead of:

×
×
  • Create New...