Библиотека PHP для поиска видео по скриншоту

—

от автора

Проект Video Color

Описание

Перед всеми нами ежедневно встаёт задача поиска информации. Требуется найти текст, изображения, аудио или видео информацию. Чаще всего для поискового запроса используется текст. Реже — изображения. Есть сервисы вроде «Shazam», которые ищут музыку используя запись звука. Мы сосредоточились на создании поискового сервиса, который осуществляет поиск видео. В качестве параметров для запроса мы используем изображения.

Сайт

Сайт находится по адресу www.videocolor.aapsoftware.ru

Список статей

Список видео

Библиотека для поиска

Для поиска видео по скриншоту для сторонних веб-сайтов на PHP была написана библиотека Video Color Search Client.

Есть два варианта получения данной библиотеки:

  • GitHub

  • Packagist.org

GitHub

Для клонирования проекта с GitHub откройте окошко терминала, перейдите в рабочий каталог и выполните следующую команду:

git clone https://github.com/alekseev23/VideoColorSearchClientPHP.git

Packagist.org

Для установки пакета с помощью Composer введите в консоли следующую команду:

php composer.phar require aap_software/video_color_search_client

После её выполнения в каталоге vendor появится подкаталог aap_software.

Использование библиотеки

Тестовый скрипт

  • Откройте окошко терминала

  • Перейдите в каталог проекта, туда где находится файл sample.php

  • Выполните следующую команду

php sample.php test.jpg

В результате работы скрипта появится текстовая информация о фильме. Попробуйте использовать другой скриншот. Где его взять? В Интернете полно кадров из фильмов.

Код примера

Давайте нашем тестовый скрипт example.php и разберём его работу.

<?php declare(strict_types=1); require("vendor/autoload.php"); $img = imagecreatefromjpeg("test.jpg"); $search = new AapSoftware\VideoColor\SearchClient(); $obj = $search->get($img); imagedestroy($img); if ($obj === null) {     echo "Server not connected!\n"; } elseif (!$obj->result) {     echo "Not found\n"; } else {     var_dump($obj); }

Сохраняем, копируем в каталог изображение test.jpg и запускаем его:

php example.php

В результате выполнения увидим результат выполнения поискового запроса.

Подробный разбор кода

Включаем режим строгой типизации.

<?php declare(strict_types=1);

Подключаем нашу библиотеку

require("vendor/autoload.php");

Создаём в памяти изображение из JPEG файла test.jpg

$img = imagecreatefromjpeg("test.jpg");

Создаём экземпляр класса SearchClient.

$search = new AapSoftware\VideoColor\SearchClient();

Выполняем поисковый запрос просто передав наше изображение.

$obj = $search->get($img);

Удаляем ставшее ненужным изображение.

imagedestroy($img);

Анализируем результат и если нет ошибок, то выводим полученную информацию.

if ($obj === null) {     echo "Server not connected!\n"; } elseif (!$obj->result) {     echo "Not found\n"; } else {     var_dump($obj); }

Замечание 1

Если не использовать автозагрузку классов, то можно написать иначе.

require("src/SearchClient.php");

Замечание 2

Если нужно получить информацию о видео не на английском (работает по-умолчанию) а на русском языке, то поисковый запрос следует немного изменить и добавить второй параметр.

$obj = $search->get($img,"ru");


ссылка на оригинал статьи https://habr.com/ru/post/653371/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *