=== OFFICIAL DAVINCI RESOLVE SCRIPTING API (condensed from Blackmagic README) ===
Every method below EXISTS. In this plugin, call them with await (e.g. await timeline.GetName()).
If a task maps to one of these, USE IT — never claim the API cannot do it.


## Resolve
  Fusion()  — Returns the Fusion object. Starting point for Fusion scripts.
  GetMediaStorage()  — Returns the media storage object to query and act on media locations.
  GetProjectManager()  — Returns the project manager object for currently open database.
  OpenPage(pageName)  — Switches to indicated page in DaVinci Resolve. Input can be one of ("media", "photo", "cut", "edit", "fusion",
  GetCurrentPage()  — Returns the page currently displayed in the main window. Returned value can be one of ("media", "photo", "cut"
  GetProductName()  — Returns product name.
  GetVersion()  — Returns list of product version fields in [major, minor, patch, build, suffix] format.
  GetVersionString()  — Returns product version in "major.minor.patch[suffix].build" format.
  LoadLayoutPreset(presetName)  — Loads UI layout from saved preset named 'presetName'.
  UpdateLayoutPreset(presetName)  — Overwrites preset named 'presetName' with current UI layout.
  ExportLayoutPreset(presetName, presetFilePath)  — Exports preset named 'presetName' to path 'presetFilePath'.
  DeleteLayoutPreset(presetName)  — Deletes preset named 'presetName'.
  SaveLayoutPreset(presetName)  — Saves current UI layout as a preset named 'presetName'.
  ImportLayoutPreset(presetFilePath, presetName)  — Imports preset from path 'presetFilePath'. The optional argument 'presetName' specifies how the preset shall b
  Quit()  — Quits the Resolve App.
  ImportRenderPreset(presetPath)  — Import a preset from presetPath (string) and set it as current preset for rendering.
  ExportRenderPreset(presetName, exportPath)  — Export a preset to a given path (string) if presetName(string) exists.
  ImportBurnInPreset(presetPath)  — Import a data burn in preset from a given presetPath (string)
  ExportBurnInPreset(presetName, exportPath)  — Export a data burn in preset to a given path (string) if presetName (string) exists.
  GetKeyframeMode()  — Returns the currently set keyframe mode (int). Refer to section 'Keyframe Mode information' below for details.
  SetKeyframeMode(keyframeMode)  — Returns True when 'keyframeMode'(enum) is successfully set. Refer to section 'Keyframe Mode information' below
  GetFairlightPresets()  — Returns a list of Fairlight presets by name
  DisableBackgroundTasksForCurrentResolveSession()  — Disables all background tasks for current Resolve session.

## ProjectManager
  isArchiveProxyMedia=False)  — Archives project to provided file path with the configuration as provided by the optional arguments
  CreateProject(projectName, mediaLocationPath)  — Creates and returns a project if projectName (string) is unique, and None if it is not. Accepts an optional ar
  DeleteProject(projectName)  — Delete project in the current folder if not currently loaded
  LoadProject(projectName)  — Loads and returns the project with name = projectName (string) if there is a match found, and None if there is
  GetCurrentProject()  — Returns the currently loaded Resolve project.
  SaveProject()  — Saves the currently loaded project with its own name. Returns True if successful.
  CloseProject(project)  — Closes the specified project without saving.
  CreateFolder(folderName)  — Creates a folder if folderName (string) is unique.
  DeleteFolder(folderName)  — Deletes the specified folder if it exists. Returns True in case of success.
  GetProjectListInCurrentFolder()  — Returns a list of project names in current folder.
  GetFolderListInCurrentFolder()  — Returns a list of folder names in current folder.
  GotoRootFolder()  — Opens root folder in database.
  GotoParentFolder()  — Opens parent folder of current folder in database if current folder has parent.
  GetCurrentFolder()  — Returns the current folder name.
  OpenFolder(folderName)  — Opens folder under given name.
  ImportProject(filePath, projectName=None)  — Imports a project from the file path provided with given project name, if any. Returns True if successful.
  ExportProject(projectName, filePath, withStillsAndLUTs=True)  — Exports project to provided file path, including stills and LUTs if withStillsAndLUTs is True (enabled by defa
  RestoreProject(filePath, projectName=None)  — Restores a project from the file path provided with given project name, if any. Returns True if successful.
  GetCurrentDatabase()  — Returns a dictionary (with keys 'DbType', 'DbName' and optional 'IpAddress') corresponding to the current data
  GetDatabaseList()  — Returns a list of dictionary items (with keys 'DbType', 'DbName' and optional 'IpAddress') corresponding to al
  SetCurrentDatabase({dbInfo})  — Switches current database connection to the database specified by the keys below, and closes any open project.
  CreateCloudProject({cloudSettings})  — Creates and returns a cloud project.
  LoadCloudProject({cloudSettings})  — Loads and returns a cloud project with the following cloud settings if there is a match found, and None if the
  ImportCloudProject(filePath, {cloudSettings})  — Returns True if import cloud project is successful; False otherwise
  RestoreCloudProject(folderPath, {cloudSettings})  — Returns True if restore cloud project is successful; False otherwise

## Project
  GetMediaPool()  — Returns the Media Pool object.
  GetTimelineCount()  — Returns the number of timelines currently present in the project.
  GetTimelineByIndex(idx)  — Returns timeline at the given index, 1 <= idx <= project.GetTimelineCount()
  GetCurrentTimeline()  — Returns the currently loaded timeline.
  SetCurrentTimeline(timeline)  — Sets given timeline as current timeline for the project. Returns True if successful.
  GetGallery()  — Returns the Gallery object.
  GetName()  — Returns project name.
  SetName(projectName)  — Sets project name if given projectName (string) is unique.
  GetPresetList()  — Returns a list of presets and their information.
  SetPreset(presetName)  — Sets preset by given presetName (string) into project.
  AddRenderJob()  — Adds a render job based on current render settings to the render queue. Returns a unique job id (string) for t
  DeleteRenderJob(jobId)  — Deletes render job for input job id (string).
  DeleteAllRenderJobs()  — Deletes all render jobs in the queue.
  GetRenderJobList()  — Returns a list of render jobs and their information.
  GetRenderPresetList()  — Returns a list of render presets and their information.
  StartRendering(jobId1, jobId2, ...)  — Starts rendering jobs indicated by the input job ids.
  StartRendering([jobIds...], isInteractiveMode=False)  — Starts rendering jobs indicated by the input job ids.
  StartRendering(isInteractiveMode=False)  — Starts rendering all queued render jobs.
  StopRendering()  — Stops any current render processes.
  IsRenderingInProgress()  — Returns True if rendering is in progress.
  LoadRenderPreset(presetName)  — Sets a preset as current preset for rendering if presetName (string) exists.
  SaveAsNewRenderPreset(presetName)  — Creates new render preset by given name if presetName(string) is unique.
  DeleteRenderPreset(presetName)  — Delete render preset by provided name.
  SetRenderSettings({settings})  — Sets given settings for rendering. Settings is a dict, with support for the keys:
  GetRenderJobStatus(jobId)  — Returns a dict with job status and completion percentage of the job by given jobId (string).
  GetQuickExportRenderPresets()  — Returns a list of Quick Export render presets by name
  RenderWithQuickExport(preset_name, {param_dict})  — Starts a quick export render for the current active timeline. preset_name from GetQuickExportRenderPresets lis
  GetSetting(settingName)  — Returns value of project setting (indicated by settingName, string). Check the section below for more informat
  SetSetting(settingName, settingValue)  — Sets the project setting (indicated by settingName, string) to the value (settingValue, string). Check the sec
  GetRenderFormats()  — Returns a dict (format -> file extension) of available render formats.
  GetRenderCodecs(renderFormat)  — Returns a dict (codec description -> codec name) of available codecs for given render format (string).
  GetCurrentRenderFormatAndCodec()  — Returns a dict with currently selected format 'format' and render codec 'codec'.
  SetCurrentRenderFormatAndCodec(format, codec)  — Sets given render format (string) and render codec (string) as options for rendering.
  GetCurrentRenderMode()  — Returns the render mode: 0 - Individual clips, 1 - Single clip.
  SetCurrentRenderMode(renderMode)  — Sets the render mode. Specify renderMode = 0 for Individual clips, 1 for Single clip.
  GetRenderResolutions(format, codec)  — Returns list of resolutions applicable for the given render format (string) and render codec (string). Returns
  RefreshLUTList()  — Refreshes LUT List
  GetUniqueId()  — Returns a unique ID for the project item
  InsertAudioToCurrentTrackAtPlayhead(mediaPath,  — Inserts the media specified by mediaPath (string) with startOffsetInSamples (int) and durationInSamples (int) 
  LoadBurnInPreset(presetName)  — Loads user defined data burn in preset for project when supplied presetName (string). Returns true if successf
  ExportCurrentFrameAsStill(filePath)  — Exports current frame as still to supplied filePath. filePath must end in valid export file format. Returns Tr
  GetColorGroupsList()  — Returns a list of all group objects in the timeline.
  AddColorGroup(groupName)  — Creates a new ColorGroup. groupName must be a unique string.
  DeleteColorGroup(colorGroup)  — Deletes the given color group and sets clips to ungrouped.
  ApplyFairlightPresetToCurrentTimeline(name)  — Apply Fairlight Preset of given name to the current timeline, returns True if successful, False otherwise.
  ResetIntellisearchAnalysis()  — Clears Intellisearch analysis data. Returns True if successful.
  GenerateSpeech({speechGenerationSettings}, timecode)  — Generates an audio MediaPoolItem based on the given speechGenerationSettings and adds it to the timeline at th

## MediaStorage
  GetMountedVolumeList()  — Returns list of folder paths corresponding to mounted volumes displayed in Resolve’s Media Storage.
  GetSubFolderList(folderPath)  — Returns list of folder paths in the given absolute folder path.
  GetFileList(folderPath)  — Returns list of media and file listings in the given absolute folder path. Note that media listings may be log
  RevealInStorage(path)  — Expands and displays given file/folder path in Resolve’s Media Storage.
  AddItemListToMediaPool(item1, item2, ...)  — Adds specified file/folder paths from Media Storage into current Media Pool folder. Input is one or more file/
  AddItemListToMediaPool([items...])  — Adds specified file/folder paths from Media Storage into current Media Pool folder. Input is an array of file/
  AddItemListToMediaPool([{itemInfo}, ...])  — Adds list of itemInfos specified as dict of "media", "startFrame" (int), "endFrame" (int) from Media Storage i
  AddClipMattesToMediaPool(MediaPoolItem, [paths], stereoEye)  — Adds specified media files as mattes for the specified MediaPoolItem. StereoEye is an optional argument for sp
  AddTimelineMattesToMediaPool([paths])  — Adds specified media files as timeline mattes in current media pool folder. Returns a list of created MediaPoo

## MediaPool
  GetRootFolder()  — Returns root Folder of Media Pool
  AddSubFolder(folder, name)  — Adds new subfolder under specified Folder object with the given name.
  RefreshFolders()  — Updates the folders in collaboration mode
  CreateEmptyTimeline(name)  — Adds new timeline with given name.
  AppendToTimeline(clip1, clip2, ...)  — Appends specified MediaPoolItem objects in the current timeline. Returns the list of appended timelineItems.
  AppendToTimeline([clips])  — Appends specified MediaPoolItem objects in the current timeline. Returns the list of appended timelineItems.
  AppendToTimeline([{clipInfo}, ...])  — Appends list of clipInfos specified as dict of "mediaPoolItem", "startFrame" (float/int), "endFrame" (float/in
  CreateTimelineFromClips(name, clip1, clip2,...)  — Creates new timeline with specified name, and appends the specified MediaPoolItem objects.
  CreateTimelineFromClips(name, [clips])  — Creates new timeline with specified name, and appends the specified MediaPoolItem objects.
  CreateTimelineFromClips(name, [{clipInfo}])  — Creates new timeline with specified name, appending the list of clipInfos specified as a dict of "mediaPoolIte
  ImportTimelineFromFile(filePath, {importOptions})  — Creates timeline based on parameters within given file (AAF/EDL/XML/FCPXML/DRT/ADL/OTIO) and optional importOp
  DeleteTimelines([timeline])  — Deletes specified timelines in the media pool.
  GetCurrentFolder()  — Returns currently selected Folder.
  SetCurrentFolder(Folder)  — Sets current folder by given Folder.
  DeleteClips([clips])  — Deletes specified clips or timeline mattes in the media pool
  ImportFolderFromFile(filePath, sourceClipsPath="")  — Returns true if import from given DRB filePath is successful, false otherwise
  DeleteFolders([subfolders])  — Deletes specified subfolders in the media pool
  MoveClips([clips], targetFolder)  — Moves specified clips to target folder.
  MoveFolders([folders], targetFolder)  — Moves specified folders to target folder.
  GetClipMatteList(MediaPoolItem)  — Get mattes for specified MediaPoolItem, as a list of paths to the matte files.
  GetTimelineMatteList(Folder)  — Get mattes in specified Folder, as list of MediaPoolItems.
  DeleteClipMattes(MediaPoolItem, [paths])  — Delete mattes based on their file paths, for specified MediaPoolItem. Returns True on success.
  RelinkClips([MediaPoolItem], folderPath)  — Update the folder location of specified media pool clips with the specified folder path.
  UnlinkClips([MediaPoolItem])  — Unlink specified media pool clips.
  ImportMedia([items...])  — Imports specified file/folder paths into current Media Pool folder. Input is an array of file/folder paths. Re
  ImportMedia([{clipInfo}])  — Imports file path(s) into current Media Pool folder as specified in list of clipInfo dict. Returns a list of t
  ExportMetadata(fileName, [clips])  — Exports metadata of specified clips to 'fileName' in CSV format.
  GetUniqueId()  — Returns a unique ID for the media pool
  RightMediaPoolItem)  — Takes in two existing media pool items and creates a new 3D stereoscopic media pool entry replacing the input 
  AutoSyncAudio([MediaPoolItems], {audioSyncSettings})  — Syncs audio for specified [MediaPoolItems] (list). The list must contain a minimum of two MediaPoolItems - at 
  GetSelectedClips()  — Returns the current selected MediaPoolItems
  SetSelectedClip(MediaPoolItem)  — Sets the selected MediaPoolItem to the given MediaPoolItem

## Folder
  GetClipList()  — Returns a list of clips (items) within the folder.
  GetName()  — Returns the media folder name.
  GetSubFolderList()  — Returns a list of subfolders in the folder.
  GetIsFolderStale()  — Returns true if folder is stale in collaboration mode, false otherwise
  GetUniqueId()  — Returns a unique ID for the media pool folder
  Export(filePath)  — Returns true if export of DRB folder to filePath is successful, false otherwise
  TranscribeAudio(useSpeakerDetection=None)  — Transcribes audio of the MediaPoolItems within the folder and nested folders. Returns True if successful; Fals
  ClearTranscription()  — Clears audio transcription of the MediaPoolItems within the folder and nested folders. Returns True if success
  PerformAudioClassification()  — Analyzes and classifies the audio of the MediaPoolItems within the folder and nested folders into categories a
  ClearAudioClassification()  — Clears audio classification of the MediaPoolItems within the folder and nested folders.
  RemoveMotionBlur({deblurOption})  — Applies motion deblur on MediaPoolItems in the folder. Returns a list of pairs mapping original to newly creat
  AnalyzeForIntellisearch(identifyFaces, isBetterMode)  — Performs Intellisearch analysis on all MediaPoolItems in the folder. identifyFaces specifies whether to identi
  AnalyzeForSlate(markerColor)  — Performs Slate analysis on all MediaPoolItems in the folder using the current settings and specified markerCol

## MediaPoolItem
  GetName()  — Returns the clip name.
  SetName(name)  — Sets the clip's name to name(string). Returns True if successful
  GetMetadata(metadataType=None)  — Returns the metadata value for the key 'metadataType'.
  SetMetadata(metadataType, metadataValue)  — Sets the given metadata to metadataValue (string). Returns True if successful.
  SetMetadata({metadata})  — Sets the item metadata with specified 'metadata' dict. Returns True if successful.
  GetThirdPartyMetadata(metadataType=None)  — Returns the third party metadata value for the key 'metadataType'.
  SetThirdPartyMetadata(metadataType, metadataValue)  — Sets/Add the given third party metadata to metadataValue (string). Returns True if successful.
  SetThirdPartyMetadata({metadata})  — Sets/Add the item third party metadata with specified 'metadata' dict. Returns True if successful.
  GetMediaId()  — Returns the unique ID for the MediaPoolItem.
  AddMarker(frameId, color, name, note, duration,  — Creates a new marker at given frameId position and with given marker information. 'customData' is optional and
  GetMarkers()  — Returns a dict (frameId -> {information}) of all markers and dicts with their information.
  GetMarkerByCustomData(customData)  — Returns marker {information} for the first matching marker with specified customData.
  UpdateMarkerCustomData(frameId, customData)  — Updates customData (string) for the marker at given frameId position. CustomData is not exposed via UI and is 
  GetMarkerCustomData(frameId)  — Returns customData string for the marker at given frameId position.
  DeleteMarkersByColor(color)  — Delete all markers of the specified color from the media pool item. "All" as argument deletes all color marker
  DeleteMarkerAtFrame(frameNum)  — Delete marker at frame number from the media pool item.
  DeleteMarkerByCustomData(customData)  — Delete first matching marker with specified customData.
  AddFlag(color)  — Adds a flag with given color (string).
  GetFlagList()  — Returns a list of flag colors assigned to the item.
  ClearFlags(color)  — Clears the flag of the given color if one exists. An "All" argument is supported and clears all flags.
  GetClipColor()  — Returns the item color as a string.
  SetClipColor(colorName)  — Sets the item color based on the colorName (string).
  ClearClipColor()  — Clears the item color.
  GetClipProperty(propertyName=None)  — Returns the property value for the key 'propertyName'.
  SetClipProperty(propertyName, propertyValue)  — Sets the given property to propertyValue (string). Check the section below for more information.
  LinkProxyMedia(proxyMediaFilePath)  — Links proxy media located at path specified by arg 'proxyMediaFilePath' with the current clip. 'proxyMediaFile
  LinkFullResolutionMedia(fullResMediaPath)  — Links proxy media to full resolution media files specified via its path.
  UnlinkProxyMedia()  — Unlinks any proxy media associated with clip.
  ReplaceClip(filePath)  — Replaces the underlying asset and metadata of MediaPoolItem with the specified absolute clip path.
  ReplaceClipPreserveSubClip(filePath)  — Replaces the underlying asset and metadata of a video or audio clip with the specified absolute clip path, pre
  GetUniqueId()  — Returns a unique ID for the media pool item
  TranscribeAudio(useSpeakerDetection=None)  — Transcribes audio of the MediaPoolItem. Returns True if successful; False otherwise
  ClearTranscription()  — Clears audio transcription of the MediaPoolItem. Returns True if successful; False otherwise.
  PerformAudioClassification()  — Analyzes and classifies the audio of a MediaPoolItem into categories and subcategories.
  ClearAudioClassification()  — Clears audio classification of the MediaPoolItem.
  GetAudioMapping()  — Returns a string with MediaPoolItem's audio mapping information. Check 'Audio Mapping' section below for more 
  GetMarkInOut()  — Returns dict of in/out marks set (keys omitted if not set), example:
  SetMarkInOut(in, out, type="all")  — Sets mark in/out of type "video", "audio" or "all" (default).
  ClearMarkInOut(type="all")  — Clears mark in/out of type "video", "audio" or "all" (default).
  MonitorGrowingFile()  — Monitor a file as long as it keeps growing (stops if the file does not grow for some time).
  RemoveMotionBlur({deblurOption})  — Applies motion deblur on the MediaPoolItem. Returns the newly created MediaPoolItem.
  AnalyzeForIntellisearch(identifyFaces, isBetterMode)  — Performs Intellisearch analysis on the MediaPoolItem. identifyFaces specifies whether to identify faces; isBet
  AnalyzeForSlate(markerColor)  — Performs Slate analysis on the MediaPoolItem using the current settings and specified markerColor. Returns Tru

## Timeline
  GetName()  — Returns the timeline name.
  SetName(timelineName)  — Sets the timeline name if timelineName (string) is unique. Returns True if successful.
  GetStartFrame()  — Returns the frame number at the start of timeline.
  GetEndFrame()  — Returns the frame number at the end of timeline.
  SetStartTimecode(timecode)  — Set the start timecode of the timeline to the string 'timecode'. Returns true when the change is successful, f
  GetStartTimecode()  — Returns the start timecode for the timeline.
  GetTrackCount(trackType)  — Returns the number of tracks for the given track type ("audio", "video" or "subtitle").
  AddTrack(trackType, subTrackType)  — Adds track of trackType ("video", "subtitle", "audio"). Optional argument subTrackType is used for "audio" tra
  AddTrack(trackType, newTrackOptions)  — Adds track of trackType ("video", "subtitle", "audio"). Optional newTrackOptions = {'audioType': same as subTr
  DeleteTrack(trackType, trackIndex)  — Deletes track of trackType ("video", "subtitle", "audio") and given trackIndex. 1 <= trackIndex <= GetTrackCou
  GetTrackSubType(trackType, trackIndex)  — Returns an audio track's format.
  SetTrackEnable(trackType, trackIndex, Bool)  — Enables/Disables track with given trackType and trackIndex
  GetIsTrackEnabled(trackType, trackIndex)  — Returns True if track with given trackType and trackIndex is enabled and False otherwise.
  SetTrackLock(trackType, trackIndex, Bool)  — Locks/Unlocks track with given trackType and trackIndex
  GetIsTrackLocked(trackType, trackIndex)  — Returns True if track with given trackType and trackIndex is locked and False otherwise.
  DeleteClips([timelineItems], Bool)  — Deletes specified TimelineItems from the timeline, performing ripple delete if the second argument is True. Se
  SetClipsLinked([timelineItems], Bool)  — Links or unlinks the specified TimelineItems depending on second argument.
  GetItemListInTrack(trackType, index)  — Returns a list of timeline items on that track (based on trackType and index). 1 <= index <= GetTrackCount(tra
  AddMarker(frameId, color, name, note, duration,  — Creates a new marker at given frameId position and with given marker information. 'customData' is optional and
  GetMarkers()  — Returns a dict (frameId -> {information}) of all markers and dicts with their information.
  GetMarkerByCustomData(customData)  — Returns marker {information} for the first matching marker with specified customData.
  UpdateMarkerCustomData(frameId, customData)  — Updates customData (string) for the marker at given frameId position. CustomData is not exposed via UI and is 
  GetMarkerCustomData(frameId)  — Returns customData string for the marker at given frameId position.
  DeleteMarkersByColor(color)  — Deletes all timeline markers of the specified color. An "All" argument is supported and deletes all timeline m
  DeleteMarkerAtFrame(frameNum)  — Deletes the timeline marker at the given frame number.
  DeleteMarkerByCustomData(customData)  — Delete first matching marker with specified customData.
  GetCurrentTimecode()  — Returns a string timecode representation for the current playhead position, while on Cut, Edit, Color, Fairlig
  SetCurrentTimecode(timecode)  — Sets current playhead position from input timecode for Cut, Edit, Color, Fairlight and Deliver pages.
  GetCurrentVideoItem()  — Returns the current video timeline item.
  GetCurrentClipThumbnailImage()  — Returns a dict (keys "width", "height", "format" and "data") with data containing raw thumbnail image data (RG
  GetTrackName(trackType, trackIndex)  — Returns the track name for track indicated by trackType ("audio", "video" or "subtitle") and index. 1 <= track
  SetTrackName(trackType, trackIndex, name)  — Sets the track name (string) for track indicated by trackType ("audio", "video" or "subtitle") and index. 1 <=
  DuplicateTimeline(timelineName)  — Duplicates the timeline and returns the created timeline, with the (optional) timelineName, on success.
  CreateCompoundClip([timelineItems], {clipInfo})  — Creates a compound clip of input timeline items with an optional clipInfo map: {"startTimecode" : "00:00:00:00
  CreateFusionClip([timelineItems])  — Creates a Fusion clip of input timeline items. It returns the created timeline item.
  ImportIntoTimeline(filePath, {importOptions})  — Imports timeline items from an AAF file and optional importOptions dict into the timeline, with support for th
  Export(fileName, exportType, exportSubtype)  — Exports timeline to 'fileName' as per input exportType & exportSubtype format.
  GetSetting(settingName)  — Returns value of timeline setting (indicated by settingName : string). Check the section below for more inform
  SetSetting(settingName, settingValue)  — Sets timeline setting (indicated by settingName : string) to the value (settingValue : string). Check the sect
  InsertGeneratorIntoTimeline(generatorName)  — Inserts a generator (indicated by generatorName : string) into the timeline.
  InsertFusionGeneratorIntoTimeline(generatorName)  — Inserts a Fusion generator (indicated by generatorName : string) into the timeline.
  InsertFusionCompositionIntoTimeline()  — Inserts a Fusion composition into the timeline.
  InsertOFXGeneratorIntoTimeline(generatorName)  — Inserts an OFX generator (indicated by generatorName : string) into the timeline.
  InsertTitleIntoTimeline(titleName)  — Inserts a title (indicated by titleName : string) into the timeline.
  InsertFusionTitleIntoTimeline(titleName)  — Inserts a Fusion title (indicated by titleName : string) into the timeline.
  GrabStill()  — Grabs still from the current video clip. Returns a GalleryStill object.
  GrabAllStills(stillFrameSource)  — Grabs stills from all the clips of the timeline at 'stillFrameSource' (1 - First frame, 2 - Middle frame). Ret
  GetUniqueId()  — Returns a unique ID for the timeline
  CreateSubtitlesFromAudio({autoCaptionSettings})  — Creates subtitles from audio for the timeline.
  DetectSceneCuts()  — Detects and makes scene cuts along the timeline. Returns True if successful, False otherwise.
  ConvertTimelineToStereo()  — Converts timeline to stereo. Returns True if successful; False otherwise.
  GetNodeGraph()  — Returns the timeline's node graph object.
  AnalyzeDolbyVision([timelineItems]=[],  — Analyzes Dolby Vision on clips present on the timeline. Returns True if analysis start is successful; False ot
  GetMediaPoolItem()  — Returns the media pool item corresponding to the timeline
  GetMarkInOut()  — Returns dict of in/out marks set (keys omitted if not set), example:
  SetMarkInOut(in, out, type="all")  — Sets mark in/out of type "video", "audio" or "all" (default).
  ClearMarkInOut(type="all")  — Clears mark in/out of type "video", "audio" or "all" (default).
  GetVoiceIsolationState(trackIndex)  — Returns the Voice Isolation State as a dict {isEnabled, amount}, of the given track index
  SetVoiceIsolationState(trackIndex, {VoiceIsolationState})  — Sets Voice Isolation state of audio track with given trackIndex (int) to the given VoiceIsolationState of {isE

## TimelineItem
  GetName()  — Returns the item name.
  SetName(name)  — Sets the clip's name to name(string). Returns True if successful
  GetDuration(subframe_precision)  — Returns the item duration. Returns fractional frames if subframe_precision is True
  GetEnd(subframe_precision)  — Returns the end frame position on the timeline. Returns fractional frames if subframe_precision is True
  GetSourceEndFrame()  — Returns the end frame position of the media pool clip in the timeline clip.
  GetSourceEndTime()  — Returns the end time position of the media pool clip in the timeline clip.
  GetFusionCompCount()  — Returns number of Fusion compositions associated with the timeline item.
  GetFusionCompByIndex(compIndex)  — Returns the Fusion composition object based on given index. 1 <= compIndex <= timelineItem.GetFusionCompCount(
  GetFusionCompNameList()  — Returns a list of Fusion composition names associated with the timeline item.
  GetFusionCompByName(compName)  — Returns the Fusion composition object based on given name.
  GetLeftOffset(subframe_precision)  — Returns the maximum extension by frame for clip from left side. Returns fractional frames if subframe_precisio
  GetRightOffset(subframe_precision)  — Returns the maximum extension by frame for clip from right side. Returns fractional frames if subframe_precisi
  GetStart(subframe_precision)  — Returns the start frame position on the timeline. Returns fractional frames if subframe_precision is True
  GetSourceStartFrame()  — Returns the start frame position of the media pool clip in the timeline clip.
  GetSourceStartTime()  — Returns the start time position of the media pool clip in the timeline clip.
  SetProperty(propertyKey, propertyValue)  — Sets the value of property "propertyKey" to value "propertyValue"
  GetProperty(propertyKey)  — returns the value of the specified key
  AddMarker(frameId, color, name, note, duration,  — Creates a new marker at given frameId position and with given marker information. 'customData' is optional and
  GetMarkers()  — Returns a dict (frameId -> {information}) of all markers and dicts with their information.
  GetMarkerByCustomData(customData)  — Returns marker {information} for the first matching marker with specified customData.
  UpdateMarkerCustomData(frameId, customData)  — Updates customData (string) for the marker at given frameId position. CustomData is not exposed via UI and is 
  GetMarkerCustomData(frameId)  — Returns customData string for the marker at given frameId position.
  DeleteMarkersByColor(color)  — Delete all markers of the specified color from the timeline item. "All" as argument deletes all color markers.
  DeleteMarkerAtFrame(frameNum)  — Delete marker at frame number from the timeline item.
  DeleteMarkerByCustomData(customData)  — Delete first matching marker with specified customData.
  AddFlag(color)  — Adds a flag with given color (string).
  GetFlagList()  — Returns a list of flag colors assigned to the item.
  ClearFlags(color)  — Clear flags of the specified color. An "All" argument is supported to clear all flags.
  GetClipColor()  — Returns the item color as a string.
  SetClipColor(colorName)  — Sets the item color based on the colorName (string).
  ClearClipColor()  — Clears the item color.
  AddFusionComp()  — Adds a new Fusion composition associated with the timeline item.
  ImportFusionComp(path)  — Imports a Fusion composition from given file path by creating and adding a new composition for the item.
  ExportFusionComp(path, compIndex)  — Exports the Fusion composition based on given index to the path provided.
  DeleteFusionCompByName(compName)  — Deletes the named Fusion composition.
  LoadFusionCompByName(compName)  — Loads the named Fusion composition as the active composition.
  RenameFusionCompByName(oldName, newName)  — Renames the Fusion composition identified by oldName.
  AddVersion(versionName, versionType)  — Adds a new color version for a video clip based on versionType (0 - local, 1 - remote).
  GetCurrentVersion()  — Returns the current version of the video clip. The returned value will have the keys versionName and versionTy
  DeleteVersionByName(versionName, versionType)  — Deletes a color version by name and versionType (0 - local, 1 - remote).
  LoadVersionByName(versionName, versionType)  — Loads a named color version as the active version. versionType: 0 - local, 1 - remote.
  RenameVersionByName(oldName, newName, versionType)  — Renames the color version identified by oldName and versionType (0 - local, 1 - remote).
  GetVersionNameList(versionType)  — Returns a list of all color versions for the given versionType (0 - local, 1 - remote).
  GetMediaPoolItem()  — Returns the media pool item corresponding to the timeline item if one exists.
  GetStereoConvergenceValues()  — Returns a dict (offset -> value) of keyframe offsets and respective convergence values.
  GetStereoLeftFloatingWindowParams()  — For the LEFT eye -> returns a dict (offset -> dict) of keyframe offsets and respective floating window params.
  GetStereoRightFloatingWindowParams()  — For the RIGHT eye -> returns a dict (offset -> dict) of keyframe offsets and respective floating window params
  SetCDL([CDL map])  — Keys of map are: "NodeIndex", "Slope", "Offset", "Power", "Saturation", where 1 <= NodeIndex <= total number o
  AddTake(mediaPoolItem, startFrame, endFrame)  — Adds mediaPoolItem as a new take. Initializes a take selector for the timeline item if needed. By default, the
  GetSelectedTakeIndex()  — Returns the index of the currently selected take, or 0 if the clip is not a take selector.
  GetTakesCount()  — Returns the number of takes in take selector, or 0 if the clip is not a take selector.
  GetTakeByIndex(idx)  — Returns a dict (keys "startFrame", "endFrame" and "mediaPoolItem") with take info for specified index.
  DeleteTakeByIndex(idx)  — Deletes a take by index, 1 <= idx <= number of takes.
  SelectTakeByIndex(idx)  — Selects a take by index, 1 <= idx <= number of takes.
  FinalizeTake()  — Finalizes take selection.
  CopyGrades([tgtTimelineItems])  — Copies the current node stack layer grade to the same layer for each item in tgtTimelineItems. Returns True if
  SetClipEnabled(Bool)  — Sets clip enabled based on argument.
  GetClipEnabled()  — Gets clip enabled status.
  UpdateSidecar()  — Updates sidecar file for BRAW clips or RMD file for R3D clips.
  GetUniqueId()  — Returns a unique ID for the timeline item
  LoadBurnInPreset(presetName)  — Loads user defined data burn in preset for clip when supplied presetName (string). Returns true if successful.
  CreateMagicMask(mode)  — Returns True if magic mask was created successfully, False otherwise. mode can "F" (forward), "B" (backward), 
  RegenerateMagicMask()  — Returns True if magic mask was regenerated successfully, False otherwise.
  Stabilize()  — Returns True if stabilization was successful, False otherwise
  SmartReframe()  — Performs Smart Reframe. Returns True if successful, False otherwise.
  GetNodeGraph(layerIdx)  — Returns the clip's node graph object at layerIdx (int, optional). Returns the first layer if layerIdx is skipp
  GetColorGroup()  — Returns the clip's color group if one exists.
  AssignToColorGroup(ColorGroup)  — Returns True if TiItem to successfully assigned to given ColorGroup. ColorGroup must be an existing group in t
  RemoveFromColorGroup()  — Returns True if the TiItem is successfully removed from the ColorGroup it is in.
  ExportLUT(exportType, path)  — Exports LUTs from tiItem referring to value passed in 'exportType' (enum) for LUT size. Refer to. 'ExportLUT n
  GetLinkedItems()  — Returns a list of linked timeline items.
  GetTrackTypeAndIndex()  — Returns a list of two values that correspond to the TimelineItem's trackType (string) and trackIndex (int) res
  GetSourceAudioChannelMapping()  — Returns a string with TimelineItem's audio mapping information. Check 'Audio Mapping' section below for more i
  GetIsColorOutputCacheEnabled()  — Returns if the cache corresponding to cache_type is enabled
  GetIsFusionOutputCacheEnabled()  — Returns if the cache corresponding to cache_type is enabled (or auto)
  SetColorOutputCache(cache_value)  — Sets caching to enabled or disabled. Equivalent to clip context menu action 'Render Cache Color Output'.
  SetFusionOutputCache(cache_value)  — Sets caching to auto, enabled or disabled. Equivalent to clip context menu action 'Render Cache Fusion Output'
  GetVoiceIsolationState()  — Returns the Voice Isolation State as a dict {isEnabled, amount}, of the timelineItem
  SetVoiceIsolationState({VoiceIsolationState})  — Sets Voice Isolation state of the timelineItem to the given VoiceIsolationState of {isEnabled (bool), amount (
  ResetAllNodeColors()  — Reset node color for all nodes in the active version of the clip. Returns True if successful.

## Gallery
  GetAlbumName(galleryStillAlbum)  — Returns the name of the GalleryStillAlbum object 'galleryStillAlbum'.
  SetAlbumName(galleryStillAlbum, albumName)  — Sets the name of the GalleryStillAlbum object 'galleryStillAlbum' to 'albumName'.
  GetCurrentStillAlbum()  — Returns current album as a GalleryStillAlbum object.
  SetCurrentStillAlbum(galleryStillAlbum)  — Sets current album to GalleryStillAlbum object 'galleryStillAlbum'.
  GetGalleryStillAlbums()  — Returns the gallery Still albums as a list of GalleryStillAlbum objects.
  GetGalleryPowerGradeAlbums()  — Returns the gallery PowerGrade albums as a list of GalleryStillAlbum objects.
  CreateGalleryStillAlbum()  — Returns a newly created Still album (GalleryStillAlbum object), or None if not successful.
  CreateGalleryPowerGradeAlbum()  — Returns a newly created PowerGrade album (GalleryStillAlbum object), or None if not successful.

## GalleryStillAlbum
  GetStills()  — Returns the list of GalleryStill objects in the album.
  GetLabel(galleryStill)  — Returns the label of the galleryStill.
  SetLabel(galleryStill, label)  — Sets the new 'label' to GalleryStill object 'galleryStill'.
  ImportStills([filePaths])  — Imports GalleryStill from each filePath in [filePaths] list. True if at least one still is imported successful
  ExportStills([galleryStill], folderPath, filePrefix, format)  — Exports list of GalleryStill objects '[galleryStill]' to directory 'folderPath', with filename prefix 'filePre
  DeleteStills([galleryStill])  — Deletes specified list of GalleryStill objects '[galleryStill]'.

## Graph
  GetNumNodes()  — Returns the number of nodes in the graph
  SetLUT(nodeIndex, lutPath)  — Sets LUT on the node mapping the node index provided, 1 <= nodeIndex <= self.GetNumNodes().
  GetLUT(nodeIndex)  — Gets relative LUT path based on the node index provided, 1 <= nodeIndex <= total number of nodes.
  SetNodeCacheMode(nodeIndex, cache_value)  — Sets the cache mode type on the node mapping the node index provided. Refer to section "Cache Mode" below to f
  GetNodeCacheMode(nodeIndex)  — Returns the cache mode type on the node mapping the node index provided.
  GetNodeLabel(nodeIndex)  — Returns the label of the node at nodeIndex.
  GetToolsInNode(nodeIndex)  — Returns toolsList (list of strings) of the tools used in the node indicated by given nodeIndex (int).
  SetNodeEnabled(nodeIndex, isEnabled)  — Sets the node at the given nodeIndex (int) to isEnabled (bool).
  ApplyGradeFromDRX(path, gradeMode)  — Loads a still from given file path (string) and applies grade to graph with gradeMode (int): 0 - “No keyframes
  ApplyArriCdlLut()  — Applies ARRI CDL and LUT. Returns True if successful, False otherwise.
  ResetAllGrades()  — Returns True if all grades were reset successfully, False otherwise.

## ColorGroup
  GetName()  — Returns the name (string) of the ColorGroup.
  SetName(groupName)  — Renames ColorGroup to groupName (string).
  GetClipsInTimeline(Timeline=CurrTimeline)  — Returns a list of TimelineItem that are in colorGroup in the given Timeline. Timeline is Current Timeline by d
  GetPreClipNodeGraph()  — Returns the ColorGroup Pre-clip graph.
  GetPostClipNodeGraph()  — Returns the ColorGroup Post-clip graph.

## TimelineItem properties (item:SetProperty(key,val) / GetProperty(key))
  This section covers additional notes for the function "TimelineItem:SetProperty" and "TimelineItem:GetProperty". These f
  The supported keys with their accepted values are:
  "Pan" : floating point values from -4.0*width to 4.0*width
  "Tilt" : floating point values from -4.0*height to 4.0*height
  "ZoomX" : floating point values from 0.0 to 100.0
  "ZoomY" : floating point values from 0.0 to 100.0
  "ZoomGang" : a boolean value
  "RotationAngle" : floating point values from -360.0 to 360.0
  "AnchorPointX" : floating point values from -4.0*width to 4.0*width
  "AnchorPointY" : floating point values from -4.0*height to 4.0*height
  "Pitch" : floating point values from -1.5 to 1.5
  "Yaw" : floating point values from -1.5 to 1.5
  "FlipX" : boolean value for flipping horizontally
  "FlipY" : boolean value for flipping vertically
  "CropLeft" : floating point values from 0.0 to width
  "CropRight" : floating point values from 0.0 to width
  "CropTop" : floating point values from 0.0 to height
  "CropBottom" : floating point values from 0.0 to height
  "CropSoftness" : floating point values from -100.0 to 100.0
  "CropRetain" : boolean value for "Retain Image Position" checkbox
  "DynamicZoomEase" : A value from the following constants
  "CompositeMode" : A value from the following constants
  "Opacity" : floating point value from 0.0 to 100.0
  "Distortion" : floating point value from -1.0 to 1.0
  "RetimeProcess" : A value from the following constants
  "MotionEstimation" : A value from the following constants
  "Scaling" : A value from the following constants
  "ResizeFilter" : A value from the following constants

## Render settings keys (project:SetRenderSettings({...}))
  --------------------------
  - "SelectAllFrames": Bool (when set True, the settings MarkIn and MarkOut are ignored)
  - "MarkIn": int
  - "MarkOut": int
  - "TargetDir": string
  - "CustomName": string
  - "UniqueFilenameStyle": 0 - Prefix, 1 - Suffix.
  - "ExportVideo": Bool
  - "ExportAudio": Bool
  - "FormatWidth": int
  - "FormatHeight": int
  - "FrameRate": float (examples: 23.976, 24)
  - "PixelAspectRatio": string (for SD resolution: "16_9" or "4_3") (other resolutions: "square" or "cinemascope")
  - "VideoQuality" possible values for current codec (if applicable):
  - 0 (int) - will set quality to automatic
  - [1 -> MAX] (int) - will set input bit rate
  - ["Least", "Low", "Medium", "High", "Best"] (String) - will set input quality level
  - "AudioCodec": string (example: "aac")
  - "AudioBitDepth": int
  - "AudioSampleRate": int
  - "ColorSpaceTag" : string (example: "Same as Project", "AstroDesign")
  - "GammaTag" : string (example: "Same as Project", "ACEScct")
  - "ExportAlpha": Bool
  - "EncodingProfile": string (example: "Main10"). Can only be set for H.264 and H.265.
  - "MultiPassEncode": Bool. Can only be set for H.264.
  - "AlphaMode": 0 - Premultiplied, 1 - Straight. Can only be set if "ExportAlpha" is true.
  - "NetworkOptimization": Bool. Only supported by QuickTime and MP4 formats.
  - "ClipStartFrame": int
  - "TimelineStartTimecode": string (example: "01:00:00:00")
  - "ReplaceExistingFilesInPlace": Bool
  - "ExportSubtitle": Bool
  - "SubtitleFormat": string (options: "BurnIn", "EmbeddedCaptions", "SeparateFile")