Разработка серверной части приложения поиска рецептов на базе Youtube

100 000 руб. за проект
15 июля 2023, 21:00 • 20 откликов • 156 просмотров
Необходимо создать поиск видеозаписей на YouTube по ключевым словам на основе субтитров с использованием API стороннего сервиса. Был опыт первой попытки разработки серверной части, результаты (PHP+MySQL) можно использовать в качестве отправной точки.

На вход будут подаваться ключевые слова. На выходе приложение должно отдавать выдачу с релевантными видеозаписями.

Предполагаемая механика запроса:

1. Производим запрос по ранее подготовленному перечню каналов.
2. Получаем выдачу со всеми найдеными ключевыми словами. (Для получения максимально полного списка можно отправлять отдельный запрос на каждое ключевое слово в запросе, затем производить индексацию, добавлять в нашу базу и в последствии работать уже с ней.)
3. Сопоставляем выдачу с ранее кэшированными видеозаписями (см. также пункт 7)
4. Отправляем запросы для получения субтитров по видеозаписям, которых нет в базе.
5. Производим проверку по субтитрам каждого видео на предмет поиска всех ингредиентов на основе общего списка ингредиентов
6. Сопоставляем полный список ингредиентов со списком запроса и выводим информацию о том, какие доп. ингредиенты требуются.
7. Кэшируем информацию по новым видеозаписям. (кэширование необходимо для избежания повторных запросов через стороннее API, т.к. оно является платным)
8. При ранжировании выдачи, выше показываются видеозаписи (приоритет от высшего к низшему):
1. которые соответствуют запрашиваемым ингредиентам в полной мере (чем меньше соответствия, тем ниже в выдаче)
2. лучшее соотношение лаков/дизлайков
3. меньшее количество жалоб на видео

Кэшированное видео представляет из себя:

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

Предполагаемый план работ

1. **База**. Делаем фронт на сервере. Сначала копируем категории с сайта-донора вместе со всеми ингредиентами. Потом выводим это всё в виде двух-уровневого чекбокс-листа на фронт. Поисковая строка исчезает. Возможность искать как конкретные ингридиенты, так и категории целиком.

2. **Ранжирование**. Каждому видео из результатов присваивается количество совпадений по ингридиентам и сразу же присваивается список "недостающих ингредиентов", если совпадение неполное.

3. **АПИ**. Добавляем возможность принимать запросы по апи, которые дополняются данными для авторизации на филмоте, санитизируются и отправляются на сторонний сервис. После этого добавляем ответное апи, которое будет отсылать уже обработанные результаты обратно на фронт.

5. **Документация**. Описание классов, методов и прочих функций и апи, которые будут созданы в процессе разработки.

6. **Тестирование**. Плюс две недели. Код ревью, правки.

Также серверная часть должна в себя включать:
- Возможность авторизации через google/apple iD
- Возможность добавления видеозаписей в избранное
- лайки/дизлайки по каждому видео (для участия в ранжировании)
- возможность отправлять жалобы на видеозаписи (по сути добавление в отдельную базу ссылок с количеством отправленных жалоб по ним)

Более подробное описание в личной переписке.

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

Пожалуйста, начните свой ответ со слова «поиск» и описания опыта реализации подобных механик в проектах.