Vimeo API - Получить категории и кредиты - PullRequest
0 голосов
/ 20 сентября 2018

Я делаю скрипт, который берет идентификатор видео от Vimeo, вызывает API и заполняет базу данных всеми необходимыми данными.

Я могу получить все поля, и все работаетхорошо используя этот URL: https://api.vimeo.com/videos/{video_id}

Я также могу использовать запрос? fields = name и т.д ... Чтобы получить только те поля, которые мне нужны.

Но когда я делаю этот запрос кAPI (даже когда я использую запрос полей), массив категорий пуст и кредиты возвращаются в следующем виде:

"credits": {
    "uri": "/videos/{video_id}/credits",
    "options": [
        "GET",
        "POST"
    ],
    "total": 1
}

Если я сделаю еще один запрос, на эти URL:
https://api.vimeo.com/videos/{video_id}/credits
https://api.vimeo.com/videos/{video_id}/categories

Я получаю всю необходимую информацию о кредитах и ​​категориях.

Проблема в том, что я не хочу делать 3 запроса к API дляполучить все, что мне нужно.Почему кредиты и категории не включены в исходный видео запрос?Есть ли способ сделать это одним звонком?

1 Ответ

0 голосов
/ 20 сентября 2018

Что касается категорий, видео может не классифицироваться ни владельцем видео, ни куратором Vimeo.Если видео не классифицировано, массив категорий вернется пустым.

Например, это тестовое видео не возвращает категорий:

curl -X GET 
  'https://api.vimeo.com/videos/76979871?fields=uri,categories' 
  -H 'Accept: application/vnd.vimeo.*+json;version=3.4' 
  -H 'Authorization: bearer [token]' 

В то время как это видео, выбранное персоналом, возвращает несколько категорий и подкатегорий:

curl -X GET 
  'https://api.vimeo.com/videos/274849065?fields=uri,categories.uri,categories.uri,categories.name,categories.top_level' 
  -H 'Accept: application/vnd.vimeo.*+json;version=3.4' 
  -H 'Authorization: bearer [token]' 

Относительно кредитов, видеовсегда будет иметь как минимум один кредит (владелец видео).Я предлагаю добавить некоторую логику, чтобы, если metadata.connections.credits.total было больше 1, сделать дополнительный запрос, чтобы получить этих других зачисленных пользователей.

Например, это же самое видео, выбранное персоналом, возвращает metadata.connections.credits.total = 2, поэтому для получения дополнительного зачисленного пользователя вам нужно будет сделать запрос к конечной точке кредитов видео.

curl -X GET 
  'https://api.vimeo.com/videos/274849065?fields=uri,metadata.connections.credits' 
  -H 'Accept: application/vnd.vimeo.*+json;version=3.4' 
  -H 'Authorization: bearer [token]' 

Причина отдельной конечной точки для кредитов заключается в том, что каждый пользовательобъект может содержать много метаданных - если видео относится ко многим пользователям, видеоответ (который уже довольно большой) может быть еще больше, если не используется параметр fields.

Надеюсь, эта информация поможет!

...