import xml.etree.ElementTree as ET import sys from pathlib import Path def disable_dynamictext_filters(input_path, output_path): tree = ET.parse(input_path) root = tree.getroot() count = 0 for filter_elem in root.iter('filter'): is_dynamictext = False # Check if this filter is dynamictext for prop in filter_elem.findall('property'): if prop.get('name') == 'mlt_service' and prop.text == 'dynamictext': is_dynamictext = True break if not is_dynamictext: continue # Look for existing disable property disable_prop = None for prop in filter_elem.findall('property'): if prop.get('name') == 'disable': disable_prop = prop break if disable_prop is not None: disable_prop.text = '1' else: new_prop = ET.Element('property', {'name': 'disable'}) new_prop.text = '1' filter_elem.append(new_prop) count += 1 tree.write(output_path, encoding='utf-8', xml_declaration=True) print(f"Disabled {count} dynamictext filter(s).") print(f"Output written to: {output_path}") if __name__ == "__main__": if len(sys.argv) != 2: print("Usage: python disable_text_filters.py ") sys.exit(1) input_file = Path(sys.argv[1]) if not input_file.exists(): print(f"Error: File not found: {input_file}") sys.exit(1) output_file = input_file.with_name(input_file.stem + "_no_text.mlt") disable_dynamictext_filters(input_file, output_file)