В рубрике DOU Проекторвсе желающие могут презентовать свой продукт (как стартап, так и ламповый pet-проект). Если вам есть о чем рассказать — приглашаем поучаствовать. Если нет — возможно, серия вдохновит на создание собственного made in Ukraine продукта. Вопросы и заявки на участие присылайте на editors@dou.ua.
Привет, меня зовут Дима. Я разработчик проекта YoutubeTutor — это Chrome extension, дополняющий функционал YouTube для комфортного самообучения.
Сейчас с помощью расширения можно сохранять плей-листы как курсы, и они будут показаны на главной странице в отдельной секции. Также отслеживается прогресс обучения и составляется список рекомендованных курсов. В дальнейшем будет сделана синхронизация между браузерами.
Идея
YouTube — классный сервис, и главное его направление — развлечения. Но это не мешает огромному количеству людей делиться знаниями, курсами с его помощью.
Изначально существовал сервис Nerdster.io, который делали 3 украинских разработчика. Nerdster.io был образовательным сервисом, который копировал плейлисты из Youtube и добавлял другие элементы обучения, такие как отслеживание прогресса и оценивание по пройденному материалу. Но из за отсутствия монетизации в данный момент он заморожен.
Обучаться на YouTube было все так же неудобно. Например, нельзя сохранить плей-лист и кинуть его на главную страницу, чтобы пользователь о нем не забыл. Нельзя отметить видео в плейлисте, которые просмотрел и разобрал. Нужно фолловить огромное количество ютуберов и актуализировать этот список. Поэтому у меня появилась идея создать YoutubeTutor.
Реализация
Chrome extension был выбран, чтобы не «пересаживать» пользователя на другой сервис — просто заходи на Youtube, как и раньше, и проводи время с пользой. Стоимость разработки равна времени разработчика + $5, поэтому это лучший вариант проверить идею на востребованность.
Главный недостаток Chrome extension’ов, на мой взгляд, — отсутствие шаблонов. Есть обходной путь - внедрить JS, который подтягивает и инжектит необходимые templates. Но сейчас появился JSX и шаблонные строки, поэтому всё стало значительно приятней.
Вторая проблема — это корректное слежение за изменением URL и инжект готового HTML, так как YouTube использует spfjs. Поэтому сейчас применяется Gistс использованием setInterval, что мне не очень нравится.
Если у вас есть идеи, как сделать проверку рендера элемента лучше, - буду рад узнать в комментариях.
Также есть проблемы с синхронизацией между устройствами. Chrome extension предоставляет chrome.storage.sync, но с большими ограничениями, поэтому этот storage использовать для хранения больших данных нельзя. Была идея уменьшить и оптимизировать данные, которые хранятся, за счет увеличения запросов к YouTube API, но со временем хранилище всё равно быстро заполняется. Поэтому решил в дальнейшем сделать авторизацию и синхронизировать данные на любой cloud NoSQL database.
Результаты
Расширение запустил в феврале и продолжаю работать над ним. Главная проблема сейчас — маркетинг, получение большего количества отзывов о востребованности решения, удобстве пользования.
Буду рад поддержке проекта на ProductHunt, а также любым корректным отзывам и предложениям.