otiotool is a multipurpose command line tool for inspecting, modifying, combining, and splitting OTIO files.

Each of the many operations it can perform is provided by a small, simple utility function. These functions also serve as concise examples of how OTIO can be used to perform common workflow tasks.


Return a single timeline with all of the input timelines concatenated end-to-end. The resulting timeline should be as long as the sum of the durations of the input timelines.

opentimelineio.console.otiotool.copy_media(url, destination_path)
opentimelineio.console.otiotool.copy_media_to_folder(timeline, folder)

Copy or download all referenced media to this folder, and relink media references to the copies.

opentimelineio.console.otiotool.filter_clips(only_clips_with_name, only_clips_with_name_regex, timelines)

Return a copy of the input timelines with only clips with names that match either the given list of names, or regular expression patterns.

opentimelineio.console.otiotool.filter_tracks(only_tracks_with_name, only_tracks_with_index, timelines)

Return a copy of the input timelines with only tracks that match either the list of names given, or the list of track indexes given.


Return a copy of the input timelines with all transitions removed. The overall duration of the timelines should not be affected.

opentimelineio.console.otiotool.flatten_timeline(timeline, which_tracks='video', keep=False)

Replace the tracks of this timeline with a single track by flattening. If which_tracks is specified, you may choose ‘video’, ‘audio’, or ‘all’. If keep is True, then the old tracks are retained and the new one is added above them instead of replacing them. This can be useful to see and understand how flattening works.

opentimelineio.console.otiotool.inspect_timelines(name_regex, timeline)

Print some detailed information about the item(s) in the timeline with names that match the given regular expression.


Remove all tracks except for audio tracks from a timeline.


Remove all tracks except for video tracks from a timeline.


otiotool main program. This function is resposible for executing the steps specified by all of the command line arguments in the right order.


Print some statistics about the given timeline.


Read one or more timlines from the list of file paths given. If a file path is ‘-’ then a timeline is read from stdin.


Remove all metadata, names, or other identifying information from this timeline. Only the structure, schema and timing will remain.

Relink clips in the timeline to media files discovered at the given folder path.


Return a single timeline with all of the tracks from all of the input timelines stacked on top of each other. The resulting timeline should be as long as the longest input timeline.

opentimelineio.console.otiotool.summarize_timeline(list_tracks, list_clips, list_media, verify_media, list_markers, timeline)

Print a summary of a timeline, optionally listing the tracks, clips, media, and/or markers inside it.

opentimelineio.console.otiotool.time_from_string(text, rate)

This helper function turns a string into a RationalTime. It accepts either a timecode string (e.g. “HH:MM:SS:FF”) or a string with a floating point value measured in seconds. The second argument to this function specifies the rate for the returned RationalTime.

opentimelineio.console.otiotool.trim_timeline(start, end, timeline)

Return a copy of the input timeline trimmed to the start and end times given. Each of the start and end times can be specified as either a timecode string (e.g. “HH:MM:SS:FF”) or a string with a floating point value measured in seconds.

opentimelineio.console.otiotool.write_output(output_path, output)

Write the given OTIO object to a file path. If the file path given is the string ‘-’ then the output is written to stdout instead.