如何在视频索引器api中使用python上传视频文件?

时间:2017-11-09 02:22:29

标签: python-3.x microsoft-cognitive azure-cognitive-services

我正在尝试使用Python在视频索引器API中上传视频:

import http.client, urllib.request, urllib.parse, urllib.error, base64

headers = {
    # Request headers
    'Content-Type': 'multipart/form-data',
    'Ocp-Apim-Subscription-Key': '******************',
}

params = urllib.parse.urlencode({
    # Request parameters
    'name': 'xxxx',
    'privacy': 'Private',
    'language': 'English',

})

try:
    conn = http.client.HTTPSConnection('videobreakdown.azure-api.net')
    conn.request("POST", "/Breakdowns/Api/Partner/Breakdowns?%s" % params, "{body}", headers)
    response = conn.getresponse()
    data = response.read()
    print(data)
    conn.close()
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))

但我无法指定如何在{body}部分中提供视频文件。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

这对我有用:

import requests
import urllib.parse
import json

headers = {
    'Ocp-Apim-Subscription-Key': 'YOUR-API-KEY',
}

form_data = {'file': open('YOUR-VIDEO.mp4', 'rb')}

params = urllib.parse.urlencode({
    'name': 'video.mp4',
    'privacy': 'Private',
    'language': 'English',
})

try:
    url = 'https://videobreakdown.azure-api.net/Breakdowns/Api/Partner/Breakdowns?'
    r = requests.post(url, params=params, files=form_data, headers=headers)
    print(r.url)
    print(json.dumps(r.json(), indent=2))
except Exception as e:
    print("[Errno {0}] {1}".format(e.errno, e.strerror))