尝试使用AppleScript在Quicktime中打开,修改和保存文件

时间:2016-03-08 09:39:10

标签: applescript quicktime

我尝试使用AppleScript自动执行对大量文件进行小编辑的过程,但未成功。更具体地说,我想要一个脚本:

  1. 在QuickTime中打开特定文件
  2. 将其拆分为指定长度的细分
  3. 将每个细分作为单个文件保存为相同格式且质量与原始文件相同。
  4. 关闭文档
  5. 最重要的是,我希望脚本基本上无需辅助/无人操作。

    以下是我正在尝试做的更多信息:http://hints.macworld.com/article.php?story=20100305070247890

    StackOverflow asked a similar question上的另一位用户,但该建议不起作用。

    从我能够找到的几个在线讨论中,似乎Apple在版本7之后取消了QuickTime的一些功能。我目前正在使用10.3 +

    Here's another discussion几乎完全描述了我要做的事情。正如“kryten2”指出的那样,出口不再适用于新版本的QuickTime。而且,就像“VideoBeagle”一样,当我尝试调用save方法时,我收到权限错误。

    VideoBeagle在该页面上发布的代码对我不起作用。这是修改后的版本:

    tell application "QuickTime Player"
        open basefile --argument passed to script when executed
    
        set the clipboard to "outputfile"
        delay (0.25)
        tell document 1
            trim from 0 to 60
            tell application "System Events"
                tell process "QuickTime Player"
                    keystroke "s" using command down
                    keystroke "v" using command down
                    delay 1
                    keystroke return
                    delay 3
                    #click menu item "Save..." of menu "File" of menu bar 1
                end tell
            end tell
    
            close saving no
    
        end tell
    end tell
    

    上面的代码在QuickTime中打开文件并将文件修剪为正确的长度,但随后它会在新窗口中创建文件的未保存副本,关闭原始文件,但不保存新文档。当我试验延迟并删除“修剪”功能时,它将显示“保存”对话框,但实际上不会保存文件。

    有没有人成功设法使用AppleScript和QuickTime来保存文件? ......最近还好吗?

    非常感谢你!

1 个答案:

答案 0 :(得分:0)

如果您拥有QuickTime Pro授权(不是免费的,但非常便宜),最好使用QuickTime Player 7的导出功能。要这样做,您还需要从Apple网站下载这个旧的QT版本。它仍然可用,但Apple推出的QuickTime Player 7基本上只有读取功能。

如果你想坚持使用QuickTime Player(在版本7之后),在保存时脚本中存在已知问题。解决方法是在您已经开始的时候模拟GUI的一部分。

下面的脚本要求处理电影文件,定义修改后视频的新路径和名称,从第二个到第二个6修剪,然后使用GUI界面保存和关闭。我做了很多评论,以确保您能够理解并更新自己的需求:

-- select file to be processed
set myVideo to choose file with prompt "Select video to be processed"

-- set new path and file name
set newPath to ((path to desktop folder from user domain) as string) & "Test_Folder"
set PPath to POSIX path of newPath
set newName to "cutVideo.mov"

tell application "QuickTime Player"
activate
open myVideo
set myDoc to front document
trim myDoc from 2 to 6  -- keep only video from second 2 to 6
end tell
tell application "System Events"
tell process "QuickTime Player"
    keystroke "s" using {command down}
    delay 0.8
    keystroke "G" using {command down} -- go to
    delay 0.8
    keystroke PPath -- folder path with / and not :
    delay 0.8
    keystroke return
    delay 0.8
    keystroke newName -- fill file name
    delay 0.8
    keystroke return -- ok save dialog
    delay 0.8
    keystroke "w" using {command down} -- close window
end tell
end tell