Pexels - поиск и скачивание видео по API

Germango

Client
Регистрация
30.07.2013
Сообщения
37
Благодарностей
26
Баллы
18
Привет,
можете помочь с настройкой кода? Задача найти и скачать видео с Pexels.com.
Документация

Я пробую выполнить этот код
C#:
string apiKey = "xa4aOeQvOOv48WaeB6iWwS2mkatGPtjLpFVECEmvPt4onIpoOipeoLNl";
string query = "nature"; // Запрос для поиска видео
string outputDirectory = @"D:\"; // Папка для загрузки
int maxResults = 5; // Максимальное количество загружаемых видео

// Создаем URL для запроса
string apiUrl = $"https://api.pexels.com/videos/search?query={query}&per_page={maxResults}&orientation=portrait";

// Создаем объект для HTTP-запросов
var http = new ZennoPoster.HttpHelper();

// Добавляем заголовки
http.AddHeader("Authorization", apiKey);

// Выполняем GET-запрос
string response = http.Get(apiUrl);

// Парсим ответ JSON
var json = ZennoLab.CommandCenter.JSON.Parse(response);
var videoFiles = json["videos"];

// Фильтруем и скачиваем видео
foreach (var video in videoFiles)
{
    int duration = video["duration"].ToInt32(); // Длительность видео в секундах

    if (duration > 10) // Фильтрация по длительности
    {
        string videoUrl = video["video_files"][0]["link"].ToString();
        string videoId = video["id"].ToString();
        string videoFileName = $"{outputDirectory}video_{videoId}.mp4";

        // Скачиваем видео
        http.DownloadFile(videoUrl, videoFileName);

        project.SendInfoToLog($"Видео {videoId} успешно загружено по адресу {videoFileName}, длительность: {duration} сек.");
    }
}
Но в Лог получаю ошибки
C#:
Тип    Время    Сообщение
    17:24:54    Компиляция кода  Ошибка в действии "CS0426" "The type name 'HttpHelper' does not exist in the type 'ZennoPoster'". [Строка: 10; Cтолбец: 28]
    17:24:54    Компиляция кода  Ошибка в действии "CS0234" "The type or namespace name 'JSON' does not exist in the namespace 'ZennoLab.CommandCenter' (are you missing an assembly reference?)". [Строка: 19; Cтолбец: 12]
    17:24:54    Компиляция кода  Ошибка в действии "CS1579" "foreach statement cannot operate on variables of type '?' because '?' does not contain a public instance definition for 'GetEnumerator'". [Строка: 23; Cтолбец: 23]
    17:30:45    Компиляция кода  Ошибка в действии "CS0426" "The type name 'HttpHelper' does not exist in the type 'ZennoPoster'". [Строка: 10; Cтолбец: 28]
    17:30:45    Компиляция кода  Ошибка в действии "CS0234" "The type or namespace name 'JSON' does not exist in the namespace 'ZennoLab.CommandCenter' (are you missing an assembly reference?)". [Строка: 19; Cтолбец: 12]
    17:30:45    Компиляция кода  Ошибка в действии "CS1579" "foreach statement cannot operate on variables of type '?' because '?' does not contain a public instance definition for 'GetEnumerator'". [Строка: 23; Cтолбец: 23]

Если не C#, то вроде по GET-запросу тоже можно, но у меня не получается.
3 часа подходы искал, подскажите правильный код пожалуйста.
 

Вложения

Oleg1987

Client
Регистрация
11.08.2014
Сообщения
1 228
Благодарностей
784
Баллы
113

Germango

Client
Регистрация
30.07.2013
Сообщения
37
Благодарностей
26
Баллы
18

Oleg1987

Client
Регистрация
11.08.2014
Сообщения
1 228
Благодарностей
784
Баллы
113

Germango

Client
Регистрация
30.07.2013
Сообщения
37
Благодарностей
26
Баллы
18
На кубиках сделаю от безысходности разве что, если не получится в этой ветке закодить.

По задумке там большой объем нужно выкачивать. Плюс в интерфейсе сайта нет нужного фильтра с длительностью видео от 10 сек (этот фильтр не в счет, т.к. если в фильтре выбираю длинные, то выдает ролики в т.ч. длиной на 7 сек), тогда как в api есть готовый duration который гарантированно вернет нужную длину.
 

Oleg1987

Client
Регистрация
11.08.2014
Сообщения
1 228
Благодарностей
784
Баллы
113
В кубиках есть раздел HTTP и там можно реализовать получение данных по api путем get\post запросов
1725898083856.png
 

Germango

Client
Регистрация
30.07.2013
Сообщения
37
Благодарностей
26
Баллы
18
Да знаю, просто опыта в этом не было. В итоге получилось через кубики и Get запросы сделать.
Первым запросом получаю заголовки, проверяю Content-Length (вес файла) и если ок - качаю.

Увы длительность ролика можно достать только по API. А так, костыль, но рабочий.

125185
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)