Here is some basic information about the methods and members available through Premiere Pro's ExtendScript API.
+Here is some basic information about the methods and members available through Premiere Pro’s ExtendScript API.
-Please continue to contact us with any API questions.
+For many years, the Premiere Pro ExtendScript API has been used by hundreds of panel partners—with zero documentation. During those same years, many have expressed (keen!) interest in additional documentation. Here is a skeletal first attempt, starting with the members and methods available from objects in the PPro ExtendScript API.
-Please continue to contact us with any API questions.
+ +Also, feedback/requests/questions about the documentation are highly encouraged; rewards occasionally provided.
+ +Premiere Pro offers APIs for importing and exporting sequences and projects, manipulating project items and (new in 11.0!) clips within sequences, and rendering.
+ +Premiere does not offer event-driven messaging. This means you cannot subscribe to be notified when certain things occur.
+ +Anywhere object; only valid when connected to an Anywhere server. See below.
-Encoder object, used to drive Adobe Media Encoder for background rendering (on the same system).
-The Creative Cloud User's GUID.
+The Creative Cloud User’s GUID.
-The version of Premiere Pro currently running.
-Project object; see below.
-Returns the path containing the preferences currently in use.
-Returns the user's Creative Cloud profile directory, where PPremiere ProPro keeps other settings and configuration files.
+Returns the user’s Creative Cloud profile directory, where PPremiere ProPro keeps other settings and configuration files.
-pathTofileToTest
)Returns true
if Premiere Pro can open the file to test.
Returns true
if Premiere Pro currently has a project open.
fileToOpen
)Returns true
if Premiere Pro can open the file as a new project.
Quits Premiere Pro.
-newPathValue
, scratchDiskPathType
)newPathValue
, scratchDiskPathType
)Returns true if Premiere Pro was able to change the specified scratch disk path to the new value. Potential values for scratchDiskPathType:
@@ -377,53 +392,53 @@newPathValue
, scratchDiskP
ScratchDiskType.FirstAudioCaptureFolder
-setSDKEventMessage(messageToSend
, eventType
)
+setSDKEventMessage(messageToSend
, eventType
)
Returns true if Premiere Pro successfully added the message to the Events panel. Potential values for eventType are warning
, info
and error
.
-Project object
+Project object
-rootItem
+rootItem
The root projectItem
, for iteration purposes.
-sequences
+sequences
An array of all sequences available in the entire project.
-activeSequence
+activeSequence
The currently active sequence, if there is one.
-openSequence(sequenceID
)
+openSequence(sequenceID
)
Returns true if Premiere Pro was able to activate the sequence with the specified ID.
-importFiles(arrayOfFilePathsToImport
, suppressUI=false
, importAsNumberedStills=false
)
+importFiles(arrayOfFilePathsToImport
, suppressUI=false
, importAsNumberedStills=false
)
Returns 0 if Premiere Pro successfully imports the array of file paths. If suppressUI
is true, no UI will be presented. if importAsNumberedStills
is true, Premiere Pro will attempt to import the array as a still image sequence.
-importSequences(pathToProjectFile
, arrayOfSeqIDsToImport
)
+importSequences(pathToProjectFile
, arrayOfSeqIDsToImport
)
Returns 0 if Premiere Pro successfully imports the sequences with IDs specified, from that project.
-createNewSequence(sequenceName
, desiredID
)
+createNewSequence(sequenceName
, desiredID
)
Returns 0 if Premiere Pro successfully imports a sequence with the specified name and ID.
-deleteSequence(sequenceID
)
+deleteSequence(sequenceID
)
Returns true if Premiere Pro successfully deleted a sequence with the specified ID.
-exportFinalCutProXML(exportPath
, suppressUI=false
)
+exportFinalCutProXML(exportPath
, suppressUI=false
)
Returns 0 if Premiere Pro successfully exports the current project to the specified path. If supressUI is true, no warnings will be displayed.
-exportTimeline(exportControllerName
)
+exportTimeline(exportControllerName
)
Returns 0 if Premiere Pro successfully renders the current active sequence using an Export Controller plug-in with the specified name.
-exportOMF(sequenceToExport
, exportPath
, OMFTitle
, sampleRate
, bitsPerSample
, audioEncapsulated
, audioFileFormat
, trimAudioFiles
, handleFrames
, includePan
)
+exportOMF(sequenceToExport
, exportPath
, OMFTitle
, sampleRate
, bitsPerSample
, audioEncapsulated
, audioFileFormat
, trimAudioFiles
, handleFrames
, includePan
)
Exports the specified sequence to OMF, using specified settings. Returns 0
if Premiere Pro successfully exports the specifed sequence to OMF.
@@ -436,11 +451,11 @@ exportOMF(sequenceToExport
, exportPath
audioEncapsulated: 0 or 1; if 1, audio is embedded.
audioFileFormat: 0 = AIFF, 1 = WAV
trimAudioFiles: 0 = export entire file, 1 = export a subset file
-handleFrames: specify 0 to 1000 extra 'handle' frames of audio
+handleFrames: specify 0 to 1000 extra ‘handle’ frames of audio
includePan: 0 or 1; if 1, include pan position information
-exportAAF(sequenceToExport
, exportPath
, mixDownVideo
, explodeToMono
, sampleRate
, bitsPerSample
, embedAudio
, audioFileFormat
, trimSources
, handleFrames
)
+exportAAF(sequenceToExport
, exportPath
, mixDownVideo
, explodeToMono
, sampleRate
, bitsPerSample
, embedAudio
, audioFileFormat
, trimSources
, handleFrames
)
Exports the specified sequence to AAF, using specified settings. Returns 0
if Premiere Pro successfully exports the specified sequence to AAF.
@@ -454,362 +469,360 @@ exportAAF(sequenceToExport
, exportPath
embedAudio: 0 or 1; if 1, audio is embedded.
audioFileFormat: 0 = AIFF, 1 = WAV
trimSources: 0 = export entire files, 1 = export subsetted files
-handleFrames: specify 0 to 1000 extra 'handle' frames
+handleFrames: specify 0 to 1000 extra ‘handle’ frames
-save()
+save()
Returns 0
if Premiere Pro successfully saves the current project.
-saveAs(newProjectPath
)
+saveAs(newProjectPath
)
Returns 0
if Premiere Pro successfully saves the current project to newProjectPath
.
-pauseGrowing(pauseOrNot
)
+pauseGrowing(pauseOrNot
)
Returns 0
if Premiere Pro successfully pauses, or un-pauses, growing files. 1 = pause, 0 = grow.
-closeDoc(saveFirst=0
, promptUserIfDirty=0
)
+closeDoc(saveFirst=0
, promptUserIfDirty=0
)
Returns 0
if Premiere Pro successfully closes the current project. if saveFirst
is 1, Premiere Pro will save the .prproj before closing. If promptUserIfDirty
is 1 and there are unsaved changes, the user will be asked whether to save first.
-placeAsset()
+placeAsset()
For Creative Cloud Libraries usage only. Ignore.
-addPropertyToProjectMetadataSchema(propertyName
, propertyLabel
, propertyType
)
+addPropertyToProjectMetadataSchema(propertyName
, propertyLabel
, propertyType
)
Returns 1
if Premiere Pro created the new property. Returns 0
if that property already existed. Supported propertyType
values: 0 = integer, 1 = Real, 2 = Text, 3 = Boolean.
-anywhere object
+anywhere object
-getAuthenticationToken()
+getAuthenticationToken()
Returns token as string, if available.
-GetCurrentEditingSessionURL()
+GetCurrentEditingSessionURL()
Returns url as string, if available.
-GetCurrentEditingSessionSelectionURL()
+GetCurrentEditingSessionSelectionURL()
Returns url as string, if available.
-getCurrentEditingSessionActiveSequenceURL()
+getCurrentEditingSessionActiveSequenceURL()
Returns url of active sequence, if available.
-isProductionOpen()
+isProductionOpen()
Returns true
if there is currently a production open.
-listProductions()
+listProductions()
Returns an array of urls to productions, if available.
-openProduction(urlToOpen
)
+openProduction(urlToOpen
)
-Returns 1
if Premiere Pro successfully opens the production's url.
+Returns 1
if Premiere Pro successfully opens the production’s url.
-setAuthenticationToken(serverName
, userName
, authToken
)
+setAuthenticationToken(serverName
, userName
, authToken
)
Returns 1
if Premiere Pro successfully logs the specifed user into the server, using the token.
-Document object
+Document object
Avoid; use project object instead.
-Encoder object
+Encoder object
-launchEncoder()
+launchEncoder()
-Launches Adobe Media Encoder. This can take a while, so if you're going to render using AME, call this early.
+Launches Adobe Media Encoder. This can take a while, so if you’re going to render using AME, call this early.
-setEmbeddedXMPEnabled(enableOrNot
)
+setEmbeddedXMPEnabled(enableOrNot
)
Pass 0
to disable or 1
to enable the embedding of XMP into output files.
-setSidecarXMPEnabled(enabledOrNot
)
+setSidecarXMPEnabled(enabledOrNot
)
-Pass 0 to disable or 1 to enable the writing of XMP into 'side car' files. Premiere Pro decides whether to embed metadata or write it into a side car, based on the specified output format. To prevent the writing of ANY metadata, set both of these to 0.
+Pass 0 to disable or 1 to enable the writing of XMP into ‘side car’ files. Premiere Pro decides whether to embed metadata or write it into a side car, based on the specified output format. To prevent the writing of ANY metadata, set both of these to 0.
-encodeSequence(sequence
, outputFilePath
, presetPath
, workAreaType
, removeFromQueueWhenComplete
)
+encodeSequence(sequence
, outputFilePath
, presetPath
, workAreaType
, removeFromQueueWhenComplete
)
-Renders the specified sequence, using the specified output preset, to the specified output path, with options. Returns the jobID
of the encoder job started for the specified sequence. workAreaType values: 0 = entire sequence, 1 = in to out points, 2 = work area. if removeFromQueueWhenComplete
is 1, the job will be removed from the Adobe Media Encoder queue upon completion. This can prevent out-of-memory problems when performing many renders.
+Renders the specified sequence, using the specified output preset, to the specified output path, with options. Returns the jobID
of the encoder job started for the specified sequence. workAreaType
values: 0 = entire sequence, 1 = in to out points, 2 = work area. if removeFromQueueWhenComplete
is 1, the job will be removed from the Adobe Media Encoder queue upon completion. This can prevent out-of-memory problems when performing numerous renders.
-startBatch()
+startBatch()
-Returns 1
if Premiere Pro successfully started Adobe Media Encoder's batch encoding list, 0
if not.
+Returns 1
if Premiere Pro successfully started Adobe Media Encoder’s batch encoding list, 0
if not.
-TrackCollection object
+TrackCollection object
A collection of tracks, for iteration.
-numTracks
+numTracks
The number of tracks (of either audio or video, depending on the collection) available.
-Track object
+Track object
-getMediaType()
+getMediaType()
-Returns "Video" for video tracks, "Audio" for audio tracks.
+Returns Video
for video tracks, Audio
for audio tracks.
-getClips()
+getClips()
-Returns a TrackItemCollection
of the track's clips.
+Returns a TrackItemCollection
of the track’s clips.
-getTransitions()
+getTransitions()
-Returns a trackItemCollection
of the transitions applied to the track's clips.
+Returns a trackItemCollection
of the transitions applied to the track’s clips.
-isMuted()
+isMuted()
Returns 1
if the track is muted, 0
if not.
-setMute(muteOrNot)
+setMute(muteOrNot)
Pass 1
to mute the track, 0
to un-mute.
-TrackItem object
+TrackItem object
-projectItem
+projectItem
The projectItem
corresponding to the track item.
-mediaType
+mediaType
Either video
or audio
.
-Start / End
+Start / End
The start and end time of the clip, in sequence time.
-type
+type
Returns the type of track item.
-MarkerCollection object
+MarkerCollection object
Marker collections contain the markers associated with a given projectItem
, or sequence. For project items corresponding to sequences, the collection will reference sequence markers, and be obtained from the sequence object; for project items corresponding to media, the collection will reference clip markers, and be obtained from a project item.
-numMarkers
+numMarkers
How many markers are associated with this item.
-createMarker(secondsAsFloat
)
+createMarker(secondsAsFloat
)
-Returns a new marker at the start time specified, defaulting to marker type 'Comment', and duration 0.
+Returns a new marker at the start time specified, defaulting to marker type ‘Comment’, and duration 0.
-deleteMarker(marker
)
+deleteMarker(marker
)
Removes the specified marker from the marker collection.
-getFirstMarker()
+getFirstMarker()
Returns the (temporally) first marker from the marker collection. Use this to begin iteration.
-getNextMarker(marker
)
+getNextMarker(marker
)
Returns the marker (temporally) subsequent to the specified marker
, from the marker collection.
-getPrevMarker(marker
)
+getPrevMarker(marker
)
Returns the marker (temporally) prior to the specified marker
, from the marker collection.
-getLastMarker()
+getLastMarker()
Returns the (temporally) last marker
from the marker collection.
-Marker object
+Marker object
Markers are temporal metadata, potentially with duration, and of specifiable type. Some fields are only meaningful for some marker types.
-name
+name
-The marker's name, as a string. Read/Write.
+The marker’s name, as a string. Read/Write.
-comments
+comments
The comments (if any) contained within the marker, as a string. Read/Write.
-start
+start
A Time
object representing the start time of the marker. Read/Write.
-end
+end
A Time
object representing the end time of the marker. Read/Write.
-type
+type
The type of the marker, as a string. Read/Write.
-setTypeAsComment
+setTypeAsComment
Sets the type of the marker to Comment
.
-setTypeAsChapter
+setTypeAsChapter
Sets the type of the marker to Chapter
.
-setTypeAsWebLink
+setTypeAsWebLink
Sets the type of the marker to WebLink
.
-setTypeAsSegmentation
+setTypeAsSegmentation
Sets the type of the marker to Segmentation
.
-getWebLinkURL
+getWebLinkURL
Returns the web link URL (if any) of the marker, as a string.
-getwebLinkFrameTarget
+getwebLinkFrameTarget
Returns the web link frame target (if any) of the marker, as a string.
-projectItem object
+projectItem object
-All items in Premiere Pro's project are represented by projectItem
objects.
+All items in Premiere Pro’s project are represented by projectItem
objects.
-children
+children
This is a ProjectItemCollection
referencing the children (if any) of this item; only valid for bins.
-name
+name
The name of the projectItem
, as a string. Read/Write.
-treePath
+treePath
The path to the projectItem
, within the project.
-type
+type
The type of the projectItem
; will be BIN
, CLIP
, FILE
or ROOT
.
-createSmartBin(binName
, query
)
+createSmartBin(binName
, query
)
Returns a new bin, based on the specified query.
-createBin(binName
)
+createBin(binName
)
-Returns a new 'child' bin, as named.
+Returns a new ‘child’ bin, as named.
-deleteBin(binToDelete
)
+deleteBin(binToDelete
)
Deletes the bin (the same bin, of which this is a method) from the project.
-renameBin(newName
)
+renameBin(newName
)
Changes the name of this bin, as specified.
-moveBin(newParent
)
+moveBin(newParent
)
Moves the projectItem
to the new parent bin, within the project.
-getXMPMetadata
+getXMPMetadata
Returns the XMP metadata associated with the projectItem
, as a string.
-setXMPMetadata(newData
)
+setXMPMetadata(newData
)
Replaces any existing XMP metadata with the new data specified. Note: This includes marker data.
-getProjectMetadata()
+getProjectMetadata()
-Returns Premiere Pro's private project metadata, associated with the 'projectItem', as a string.
+Returns Premiere Pro’s private project metadata, associated with the ‘projectItem’, as a string.
-setProjectMetadata(newDate
, fieldsToBeUpdated
)
+setProjectMetadata(newDate
, fieldsToBeUpdated
)
-Adds or updates the specified fields within Premiere Pro's private project metadata, to the new value(s) specified.
+Adds or updates the specified fields within Premiere Pro’s private project metadata, to the new value(s) specified.
-getMarkers()
+getMarkers()
Returns the MarkerCollection associated with the projectItem
; if there are no markers, this will return undefined
.
-refreshMedia()
+refreshMedia()
Makes Premiere Pro reload the media, from disk.
-canChangeMediaPath()
+canChangeMediaPath()
Returns true
if the media path for this projectItem
can be changed; false
if not..
-changeMediaPath(newMediaPath
)
+changeMediaPath(newMediaPath
)
Changes the media referenced by the projectItem
to the media Premiere Pro finds at newMediaPath
.
-canProxy()
+canProxy()
Returns true
if a proxy can be attached to this projectItem
.
-hasProxy()
+hasProxy()
Returns true
if a proxy is already attached to this projectItem
.
-attachProxy(newPath
, attachAsFullRes
)
+attachProxy(newPath
, attachAsFullRes
)
Attaches the media Premiere Pro finds at newPath
, as the new proxy path for this projectItem. If attachAsFullRes
is 1, newPath
is assigned as the new full resolution path.
-Sequence object
+Sequence object
-timeBase
+timeBase
Expressed in ticks
; there are 254016000000 ticks per second.
-setPlayerPosition(timeCodeAsString
)
+setPlayerPosition(timeInTicks
)
-Sets the CTI to the specified timecode value; '00;00;11;23'.
+Sets the CTI to the specified timecode value.
-setInPoint(secondsAsFloat
)
+setInPoint(secondsAsFloat
)
-Sets the in point of the sequence; '6.234'.
+Sets the in point of the sequence; ‘6.234’.
-setOutPoint(secondsAsFloat
)
+setOutPoint(secondsAsFloat
)
-Sets the in point of the sequence; '12.321'.
+Sets the in point of the sequence; ‘12.321’.
-getInPoint()
+getInPoint()
-Returns time of sequence's in point, in seconds.
+Returns time of sequence’s in point, in seconds.
-getOutPoint()
+getOutPoint()
-Returns time of sequence's out point, in seconds.
+Returns time of sequence’s out point, in seconds.
-setZeroPoint(ticks
)
+setZeroPoint(ticks
)
Sets the starting timecode of the sequence.
-attachCustomProperty(propertyID
, propertyValue
)
+attachCustomProperty(propertyID
, propertyValue
)
Attaches a custom property, and value, to the sequence. This property is visible if/when the sequence is exported to FCP XML.
-clone()
+clone()
-Returns a duplicate of the sequence, with " Clone" appended to the new sequence's name.
+Returns a duplicate of the sequence, with Clone
appended to the new sequence’s name.
-exportAsProject(exportPath
)
+exportAsProject(exportPath
)
Creates a new .prproj file containing only this sequence and its constituent media items.
-exportAsFinalCutProXML(exportPath
)
+exportAsFinalCutProXML(exportPath
)
Creates a new FCP XML file containing only this sequence and its constituent media items.
-exportAsMediaDirect(outputFilePath
, outputPresetPath
, workAreaType
)
+exportAsMediaDirect(outputFilePath
, outputPresetPath
, workAreaType
)
Renders the sequence to the specified output path, using the specified path. workAreaType
can be ENCODE_WORKAREA
, ENCODE_ENTIRE
, or ENCODE_IN_TO_OUT
.
-
-
-getEnableProxy()
+getEnableProxy()
Returns 1
if proxies are enabled in the current sequence; 0
if not.
-setEnableProxy(enable
)
+setEnableProxy(enable
)
Pass a 1
to enable proxies in the sequence; 0
to disable.