Нет возврата из curl при запросе аннотации видео
Привет, я следую инструкциям здесь, чтобы запросить обработку аннотации видео.
curl -s -H 'Content-Type: application/json' -H 'Authorization: Bearer ACCESS_TOKEN_PASTED_HERE' 'https://videointelligence.googleapis.com/v1/videos:annotate' -d @request.json
Мой json-файл содержит публичную ссылку на видеофайл, хранящийся в корзине проекта.
{
"inputUri":"https://storage.googleapis.com/PROJECT_URL_HERE/video.mp4",
"features": [
"LABEL_DETECTION"
]
}
Я должен получить ответ с именем операции:
API-интерфейс Video Intelligence создает операцию для обработки вашего запроса. Ответ включает название операции:
{"name": "us-west1.18358601230245040268"}
Фактический результат, который я получаю, - ничто, даже ошибка. Минутное ожидание, за которым следует пустая командная строка.
Моя панель инструментов показывает успешное создание учетных данных, но не показывает активности в API-интерфейсе Video Intelligence.
Спасибо!
1 ответ
inputUri
поле должно быть действительным путем GCS в формате gs://BUCKET_NAME/path/to/video
как объяснено здесь, а не https://storage.googleapis.com
ссылка, которую вы используете. В противном случае он должен вернуться google.rpc.Code.INVALID_ARGUMENT
, Если вы не получили никакого вывода, возможно, это синтаксическая ошибка (см. Шаги ниже). В моем случае это звучит так:
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT"
}
}
Если вместо этого вы используете один из общедоступных примеров в gs://
формат в вашем request.json
:
{
"inputUri":"gs://cloud-ml-sandbox/video/chicago.mp4",
"features": [
"LABEL_DETECTION"
]
}
а затем активируйте учетную запись службы и запросите видеоаннотации, выполнив следующие действия:
gcloud auth activate-service-account --key-file=/path/to/credentials.json
curl -s -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://videointelligence.googleapis.com/v1/videos:annotate" \
-d @request.json
вы получите ответ как:
{
"name": "europe-west1.16***************80"
}
Когда у вас есть имя операции, вы можете проверить статус с помощью:
curl -s -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://videointelligence.googleapis.com/v1/operations/europe-west1.16***************80" > result.json
Убедитесь, что это сделано с:
cat result.json | grep done
Если закончено, это должно вывести:
"done": true,
а также result.json
будет содержать запрошенные аннотации:
"annotationResults": [
{
"inputUri": "/cloud-ml-sandbox/video/chicago.mp4",
"segmentLabelAnnotations": [
{
"entity": {
"entityId": "/m/0pg52",
"description": "taxi",
"languageCode": "en-US"
},
...