A Kodi service addon that lets you edit EDL and Matroska chapter.xml segment files while watching videos.
- Full segment management: add, edit, and delete segments during playback.
- Multiple input methods:
- Quick add using marked start/end points.
- Add at the current playback time with a user-set duration.
- Manual entry of start and end times.
- File format support:
- EDL (Edit Decision List) format (
.edl). - Matroska chapter XML (
*-chapters.xml,*_chapters.xml,chapters.xml). - Embedded chapter import: if a Matroska/WebM container has embedded
chapters, the editor can import them on first edit (requires
mkvextractonPATH). - Automatic detection prefers
chapters.xmlover.edlfiles.
- EDL (Edit Decision List) format (
- Playback control: pause/resume, precision seek
(
-30s / -10s / -5s / -1s / +1s / +5s / +10s / +30s), jump-to-time. - Time marking: mark start and end points for precise segment creation, with validation that prevents invalid combinations.
- Visual indicators: segments marked (Nested) if fully contained within another segment, (Overlapping) if partially overlapping.
- Label management: configurable predefined labels with a custom-label escape hatch.
- Keyboard shortcuts:
Space,S,E,D,Enter,ESC. - Real-time updates: current time and pause state are pushed through
xbmc.Playercallbacks. - Auto-sort: segments are automatically sorted by start time.
- Copy the
service.segmenteditorfolder to your Kodi addons directory and restart Kodi, or - Install the Skippy repo and install Segment Editor from there.
Tested on Kodi Omega 21.2 and v22 Piers Alpha 2 across:
| Platform | Status |
|---|---|
| Android (Nvidia Shield) | Tested |
| Linux (CoreELEC) | Tested |
| Windows 11 | Tested |
See USAGE.md for the full walk-through of the keyboard
shortcut, remote-control key mapping via the Keymap Editor addon, and the
JSON-RPC / NotifyAll approach for scripting from SSH or other addons.
Quick reference:
-
Keyboard shortcut:
CTRL+ a configurable key (defaultCTRL+E). The keymap file underuserdata/keymaps/keymap.xmlis generated and kept in sync by the service. -
JSON-RPC:
{"jsonrpc":"2.0", "method":"JSONRPC.NotifyAll", "params":{"sender":"service.segmenteditor", "message":"open_segment_editor"}, "id":1}
See USAGE.md for a detailed description of the interface, every button, the keyboard shortcuts, and a worked workflow example. The short version:
- Seek to where you want a segment to start.
- Click Set as Start (or press
S). - Seek to where you want it to end.
- Click Set as End (or press
E). - Click Create and pick a label.
- Click Save when you're done, then Exit.
Times can be entered either as HH:MM:SS.mmm (for example 00:01:30.500)
or as plain seconds (for example 90.5). Negative values are rejected.
start_seconds end_seconds action_type
Example:
0.0 30.0 4
120.5 150.2 4
Matroska-style chapter XML files are supported with the following naming conventions (preferred first):
{videoname}-chapters.xml{videoname}_chapters.xml{videoname}-chapter.xml{videoname}_chapter.xmlchapters.xml(in the same directory as the video)
When both a chapter XML and an EDL exist, the chapter XML is preferred.
- Predefined Segment Labels: comma-separated labels that appear in the label dropdown when adding/editing segments.
- Save Format:
- Auto Detect: uses the format of existing files, or EDL if none exist.
- EDL Only: always save as
.edl. - Chapter XML Only: always save as
-chapters.xml. - Both Formats: save to both EDL and XML simultaneously.
- Action Mapping: comma-separated
action:labelpairs for the EDL third column (e.g.4:Segment,5:Intro,6:Ad). - Add rw permissions to saved files: off by default; when enabled, additively grants group/other read+write on local saves.
- Enable Full-Screen Dark Overlay: darkens the entire video behind the editor dialog.
- Segments are automatically sorted by start time.
- The editor can be opened while video is playing; playback continues in the background.
- Marked start/end times persist until a segment is added (they're used as defaults for the next segment).
- Validation prevents invalid start/end combinations.
- An "unsaved changes" warning appears when exiting with pending edits.
- Editor doesn't open: make sure a video is currently playing.
- Changes not saving: check file permissions on the video directory.
- No segments showing: the video may not have a segment file yet - use Add / Create to create one.
- Embedded chapter import skipped: install
mkvmerge/mkvextractsomkvextractis onPATH.
This addon uses code patterns and segment parsing logic from the Skippy addon for consistency.