Question

Attempting to start a screen recording, wait a few seconds, stop the recording and export saved recording to disk.

Versions

  • AppleScript 2.2.4
  • QuickTime: 10.2

AppleScript

set filePath to "" & (path to desktop)

tell application "QuickTime Player"
    set newMovieRecording to new movie recording
    tell newMovieRecording
        start
        delay 2 --(seconds)
        stop
        export newMovieRecording in (filePath & "movie") using settings preset "25 fps"
    end tell
end tell

The stop and start commands work correctly but the export command is giving failing with this error:

movie_record.scpt:215:294: execution error: QuickTime Player got an error: Can’t get document "Movie Recording". (-1728)
Was it helpful?

Solution 2

Found a solution. Note that there is a slight delay (about ~2 seconds) from the time the script is invoked until the recording actually begins.

(*********************************************
Record a Single `QuickTime` Movie
Args:
    1. name: The name of the movie.
    2. seconds: The length of the movie you want to record in seconds.
Usage:
    > osascript movie_record.scpt 'name.mov' 5
    > osascript movie_record.scpt <file_name> <seconds>
**********************************************)
on run argv
    set movieName to item 1 of argv
    set delaySeconds to item 2 of argv
    set filePath to (path to desktop as text) & movieName
    set f to a reference to file filePath

    tell application "QuickTime Player"
        set newMovieRecording to new movie recording

        tell newMovieRecording
            start
            delay delaySeconds
            pause
            save newMovieRecording in f
            stop
            close newMovieRecording
        end tell
    end tell
end run

OTHER TIPS

Notice the name of the document changes after the stop command is issued...

set filePath to (path to desktop as text) & "movie.mov"

tell application "QuickTime Player"
    set newMovieRecording to new movie recording
    set windowID to id of first window whose name = "Movie Recording"

    tell newMovieRecording
        start
        delay 2 --(seconds)
        stop
    end tell

    set newMovieRecordingDoc to first document whose name = (get name of first window whose id = windowID)
    tell newMovieRecordingDoc to export in filePath using settings preset "iPod"
    --tell newMovieRecordingDoc to export in filePath using settings preset "25 fps"
end tell
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top