使用Python与AJA Ki Pro同步文件

使用Python与AJA Ki Pro同步文件,python,curl,Python,Curl,我们在另一个地方有一台AJA Ki Pro录音机,我需要创建一个自动系统,将录制的文件拉到我的编辑工作室。到目前为止,我已经成功地通过自动程序通过Applescript运行python脚本来提取录音。我无法从iCal触发应用程序。基本上,我的脚本涉及将记录器上的MediaState参数设置为Data value=1,以便我可以提取文件,将记录器上的文件与本地文件进行比较,它只下载本地没有的文件,然后将MediaState属性设置回Rec value=0,以便记录器可以再次运行 以下是我至今无法解

我们在另一个地方有一台AJA Ki Pro录音机,我需要创建一个自动系统,将录制的文件拉到我的编辑工作室。到目前为止,我已经成功地通过自动程序通过Applescript运行python脚本来提取录音。我无法从iCal触发应用程序。基本上,我的脚本涉及将记录器上的MediaState参数设置为Data value=1,以便我可以提取文件,将记录器上的文件与本地文件进行比较,它只下载本地没有的文件,然后将MediaState属性设置回Rec value=0,以便记录器可以再次运行

以下是我至今无法解决的两个问题。恕我直言,我有大约2天的Python经验:似乎我以某种方式创建了一个循环,它不断地说寻找新剪辑,但没有找到新剪辑。理想情况下,如果没有找到新剪辑,我希望脚本终止。我还想设置它,这样当它通过cURL完成下载时,它会自动将我的MediaState设置回value=0并结束脚本。以下是我目前的代码:

# This script polls the unit downloads any new clips it hasn't already downloaded to the current directory 

# Arguments:  hostname or IP address of Ki Pro unit

import urllib, sys, string, os, posix, time

def is_download_allowed(address):
    f = urllib.urlopen("http://"+address+"/config?action=get&paramid=eParamID_MediaState")
    response = f.read()
    if (response.find('"value":"1"') > -1):
        return True
    f = urllib.urlopen("http://"+address+"/config?action=set&paramid=eParamID_MediaState&value=1")

def download_clip(clip):
    url = "http://" + address + "/media/" + clip
    print url
    posix.system("curl --output " + clip + " " + url);

def download_clips(response):
    values = response.split(":")
    i = 0
    for word in values:
        i += 1
        if(word.find('clipname') > -1):
            clip = values[i].split(',')[0].translate(string.maketrans("",""), '[]{} \,\"\" ')
            if not os.path.exists(clip):
                print "Downloading clip: " + clip
                download_clip(clip)
        else:
            f = urllib.urlopen("http://"+address+"/config?action=set&paramid=eParamID_MediaState&value=0")
            print "No new clips found"

address = sys.argv[1]

while 1:
    if (is_download_allowed(address)):
        print "Looking for new clips"
        f = urllib.urlopen("http://"+address+"/clips")
        response = f.read()
        download_clips(response)

如果download_clips函数在片段名称之间循环,为什么需要无限while 1循环?我认为没有必要。只需将其拆下并去除块。

效果非常好!进行这些编辑还会使脚本的其余部分正确执行,从而解决了我的另一个问题。谢谢你帮了一个新人!