scte35-editor

February 9, 2026 · 3 minute read

SCTE-35 Editor: A Pragmatic Tool for SCTE-35 Messages

If you work with video streams and SCTE-35, you know the challenge: SCTE-35 messages are essential for inserting ads, program boundaries, or regional content. However, creating, editing, and validating these messages can be cumbersome, especially when you need to iterate quickly.

I’ve spent a lot of time working with SCTE-35 and found that while there are libraries and tools available, there was a need for a simple, interactive, free and open source tool that works both on the command line and in a visual interface. That’s why I built scte35-editor: a CLI and TUI tool designed to fill this gap.

What scte35-editor can do

Scte35-editor is a tool that helps you parse and validate SCTE-35 messages from JSON, Base64, or hex inputs. It allows you to edit messages using a straightforward --set path=value syntax and validate changes on the fly. You can also create new messages from templates and delete descriptors or components by index.

One of the standout features is its interactive mode, which provides a TUI for visual navigation and editing of message structures. interactively in the terminal.

And I wrapped its functionality into a WASM UI, a WYSIWYG editor you can run in your browser. Check it out at https://cmthf.github.io/scte35-editor

This tool is particularly useful for fast iteration when testing and integrating SCTE-35 payloads, consistent CLI workflows for scripting and automation, and interactive exploration of message structures without constantly referring to documentation.

Design decisions and trade-offs

scte35-editor focuses on simplicity over complexity. It is not an all-in-one tool for streaming or complex TS manipulation but rather a specialized tool that does one thing well: handling SCTE-35 messages. It has no external dependencies and is written in Rust, requiring only the Rust toolchain and standard libraries for the TUI. The tool supports flexible input and output formats, including JSON, Base64, and hex.

How to use it

Using scte35-editor is straightforward. For example, you can show an SCTE-35 message by running:

scte35-editor show "/DAWAAAAAAAAAP/wBQb+Qjo1vQAAuwxz9A=="

This command outputs a pretty-printed JSON with hex and Base64 representations. To validate a message, you can use:

scte35-editor validate "/DAWAAAAAAAAAP/wBQb+Qjo1vQAAuwxz9A=="

Editing a message is just as simple:

scte35-editor edit "/DAWAAAAAAAAAP/wBQb+Qjo1vQAAuwxz9A==" --set table_id=252 --set tier=4095 --output-format json

You can also create new messages from templates and interactively edit messages using the TUI.

Comparison with other Open Source SCTE-35 tools

Compared to other open-source SCTE-35 tools like threefive, tsp, or SuperKabuki, scte35-editor stands out for its simplicity and interactivity. While other tools may offer more extensive features for streaming or complex TS manipulation, scte35-editor focuses on simplicity and UX. Its interactive TUI makes it easy to explore and modify message structures visually, which is a feature not commonly found in other tools.

In addition to scte35-editor, I also developed scte35-injector, a lightweight CLI tool for injecting SCTE-35 cues into MPEG-TS files. While scte35-injector is designed for file-based TS processing and does not support live streaming, scte35-editor complements it by providing a robust solution for creating and editing the SCTE-35 messages themselves.

Final words …

If you work with SCTE-35 and need a simple yet powerful tool to create, edit, or validate messages, check out scte35-editor. It’s open-source, and I welcome feedback and contributions