Проект: Бот для сохранения заметок с Youtube (timepoint + субтитры)  Публичный пост
4 мая 2022  3034
Бот для сохранения заметок с Youtube (timepoint + субтитры)
https://t.me/vimarker_bot

Расскажите о себе и сути проекта?

Привет всем! Я активный lifelong learner. Вечно что-то изучаю в крайне разных сферах (от эмоционального интеллекта до Nodejs). За последние годы мой процесс поглощения контента на 90% переехал в Youtube. Хочу сделать его удобнее для себя и себе подобных.

Как появилась идея? Что вдохновило?

Мой типичный workflow при изучении конкретного видео состоит из двух этапов.

  1. Ознакомление + "зарубки". Сначала я просматриваю его в ускоренном режиме (обычно 1,5x). В процессе просмотра делаю пометки, в каких таймпоинтах видео есть ценные кусочки информации. Обычно это происходит с телефона где-нибудь на ходу или в транспорте. Мои "информационные зарубки" отправляются сразу в Telegram (как заведено - в "Saved messages").
  2. Конспектирование по "зарубкам". Наконец, когда добираюсь домой, рыскаю по оставленным пометкам, пересматриваю их, чтобы законспектировать эссенцию полезных знаний в свой Obsidian (если кто не знает - бомбезное хранилище знаний).

Но вот незадача - несмотря на оформленный Youtube Premium, я так и не нашел удобного способа сохранять себе ссылку на конкретный таймпоинт с телефона. В целом, есть несколько "обходных путей", но они, по ощущению, жутко кривые. В итоге, мне приходилось сначала сохранять в Telegram ссылку на видео, а затем по мере просмотра видео - под этой ссылкой циферками сеять отметки времени, где встречаются инфо-полезняшки.


Такой способ сохранения в целом комфортен и вошел в привычку, однако при последующем разборе таких заметок неудобно искать соответствующие фрагменты на видео.

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

Во-первых, можно выбрать что важно обработать в первую очередь, а о чем - можно вообще забыть (далеко не всегда то, что на первый взгляд показалось полезным, остается таковым после овладения "whole picture"). Во-вторых, иногда суть можно быстро сохранить, без траты времени на пересмотр фрагмента.

Ввиду накопившихся хотелок, я наконец решил редизайнить процесс самостоятельно.

Что вошло в прототип и сколько времени на него было потрачено?

Мой прототип - Telegram бот. Потратил неделю, (часть работы по коду делегировал, лень было вникать). Текущая версия поддерживает такой типичный сценарий:

1. Отправляешь боту ссылку на видео:


2. Затем посылаешь боту отметки времени (с этого видео), которые треубется сохранить как "зарубки". Поддерживается 3 формата: "mm" (минуты), "mm ss" (минуты секунды) или "hh mm ss" (часы минуты секунды). Бот в ответ возвращает прямую ссылку на таймпоинт и прямо под ней - субтитры вокруг этого таймпоинта.

!UPDATE!: Кстати, сразу после таймкода можно написать любой текст. Его бот распознает как твою заметку, относяющуюся к текущему этому таймкоду.


!UPDATE!: Теперь кроме отметок времени боту можно закидывать комментарии и картинки, не привязанные к конкретному таймпоинту.

!UPDATE! (19.05.22): Если к таймкоду (сразу без пробела) добавить символ 's' или 'c' (русскую или английскую), то вместе с субтитрами бот выдернет скриншот. Удобно, если нужно заскриншотить график или диаграмму на видео). Это также работает для видео без субтитров.

(!UPDATED!) 3. Когда просмотрел одно или несколько видео, нажимаешь кнопку "Собрать все". Бот расфасовывает все твои заметки по отдельным pdf и MD файлам - качай на здоровье.

Я MD-шники сохраняю сразу в Obsidian волт:

Что еще умеет бот

a. Также, боту можно напрямую отправить ссылку с таймпоинтом (которую позволяет скопировать веб-версия Youtube): https://youtu.be/VIDEO_ID?t=TIME . Тогда он из нее сразу вытащит субтитры (если они, конечно, там есть)))

!UPDATE!: b. По команде /all отдает все субтитры текущего видео.

Какой технологический стек вы использовали?

Классика жанра: Node.js (хочу перевести на TS) + Telegraf.js + Mongo.

Сколько потратили и заработали? Есть идеи как это можно монетизировать?

Как раз в последние месяцы занялся разработкой ботов. Поэтому почти ничего не потратил. Бот живет на бесплатном хероку. Заработал пока - сплошной кайф от удобного процесса работы с видео.

Чувствую, что коммерческий потенциал у бота имеется, но сейчас нет энергии заниматься продуктовыми вопросами и маркетингом.

Какие планы на будущее?

В грезах виднеется примерно такой Roadmap:
1. Сделать бот еще более удобным и полезным для Youtube-лернеров.
2. Превратить бот в сервис (или приложение), который позволяет при просмотре видео "не отходят от кассы" делать заметки (сразу в маркдауне) и "обогащать" их кусочками субтитров.

Нужны ли какие-то советы или помощь Клуба?

Очень любопытно ваше мнение по вопросам:
1. Какие полезняшки в бот доработать, под какие удобные сценарии заточить?
2. Для кого бот может оказаться особенно полезным (хочу в перспективе поискать узкий сегмент ерли адоптеров)?
3. Как бы монетизировали?

p.s. в боте пока могут проскакивать баги, сигнализируйте по возможности
p.p.s. если бот "висит" и ни на что не откликается - введите "/start*" и нажмите Enter. Должно помочь)*

Связанные посты
44 комментария 👇

А есть техническая возможность сразу скриншоты вытаскивать по таймкоду? Было бы полезно для всяких схем, слайдов презентаций. Чтоб сразу добавлять в тот же обсидиан.

  Развернуть 1 комментарий

@ykosyakov, хорошая мысль, сам об этом думал, +1

  Развернуть 1 комментарий

@ykosyakov, доработал эту штуку. Чтобы выдернуть скриншот - после таймкода (без пробела) сразу ставим символ 's' или в русской раскладке 'с'

  Развернуть 1 комментарий

@apris, супер!

  Развернуть 1 комментарий
Daniel Markoff Развиваю Тюменские Аккумуляторы 4 мая 2022

Ещё бы добавить кнопочку -

Бот: "Желаете добавить комментарий к данному фрагменту?" - выбор да или нет.

И сразу комментируешь данный фрагмент! А потом все по фрагментам собрать в один текст. Топ.

  Развернуть 1 комментарий

@MARKOFF, я хочу прикрутить добавление коммента прямо после ввода временной метки, например 15 10 комментарий к метке

  Развернуть 1 комментарий

@apris, да или сразу так. :)

Классный проект

  Развернуть 1 комментарий

@MARKOFF, сегодня уже доделал это, только пока не придумал как пользователей оповещать об обновлениях лучше) Когда вводите циферки (в качестве таймкода) после них через пробел печатаете текст, это и будет заметка

  Развернуть 1 комментарий

Ещё было бы круто:
-подгружать в бота автоматом пару последних видео из истории просмотра.
-отображать сразу пользователю длительность видео и соответсвенно парсить входные данные, если видео длиннее 59:59.

  Развернуть 1 комментарий

Никогда так не сохранял и не прорабатывал видео, но теперь интересно попробовать.

  Развернуть 1 комментарий

Давно мечтаю, чтобы можно было посмотреть tldr видео. Лень смотреть, а уж тем более конспектировать. Хочу сразу получить суть видео в кратком текстоформате

Заплатил бы за такое)

  Развернуть 1 комментарий

@alexkuzn, tldr - это что-то вроде эссенции ключевых мыслей? Или что имеете ввиду в данном контексте?

  Развернуть 1 комментарий

@apris, да, именно оно

  Развернуть 1 комментарий

@alexkuzn, вроде я видел какой-то сервис, делающий так, но больше сказать не могу.

  Развернуть 1 комментарий
Dias Yeszhanov Backend Developer (Go) 5 мая 2022

Процесс перепрыгивания из ютуб в телегу муторен. Есть вариант такого флоу:

  1. Не отрываясь от видео делаешь скрины, чтобы были видны таймкоды.
  2. После просмотра видео высылаешь все скрины боту.
  3. Бот умеет в парсинг этого таймкода по определенным зонам скрина.
  4. end;
  Развернуть 1 комментарий

@diassyes, Очень поддерживаю про муторность процесса. #flow примерно такой и вижу в идеале. Есть подозрение, что для его качественной реализации лучше несколько поменять "среду", в которой все происходит. Копаю туда.

  Развернуть 1 комментарий

Очень здорово, думал о таком проекте но руки как-то не дошли, отлично что его кто-то написал )
Плюсую к идее про скриншоты

А в качестве платной фичи могла бы, например, быть генерация pdfки на основе этих скринов, сабов и ссылок с таймкодами

  Развернуть 1 комментарий

@hauu, жирный плюс с идеей про pdf ки #monetization

  Развернуть 1 комментарий

@hauu, доделал генерацию pdf и MD файлов. Кроме таймкодов с субтитрами в нее входят комменты пользователя и картинки, отправленные пользователем. Фичи распознавания таймпоинта по скрину пока не реализовал. Пока ресерчу и размышляю насчет нее.

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Отлично! Я сам учусь подобным образом, и много потребляю контента с youtube. Но действую деревянно - все видео выкачиваю себе на телефон, чтобы смотреть их офф-лайново (в метро, в самолете), а заметки пишу рукой в тетрадке, которую не выпускаю из цепких лап никогда. Но правда потом все проработанное перебиваю в Evernote для электронности.

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

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

Именно из-за того, что к ролику приходится возвращаться много раз, дописывать конспект, править таймкоды - мне и мерещится прямо целый плейер.

А может кто вдруг знает уже существующий подобный проект? Я не весь интернет прочитал, что-то точно пропустил.

  Развернуть 1 комментарий

@rpozlevich, очень солидарен про "заметки от руки". По поводу spaced repetition... Тут есть парочка но (сейчас копаю в то, как эффективно учиться как раз). С одной стороны, SR лучше работает, если есть элемент "active recall". Как это реализовать на практике описывал в этой статье. С другой стороны, в этом видео Justin хорошо доносит 2 мысли:

  1. Spaced Repetition при активном обучении не особо "scalable" история. Его поинт, что если фокусировать себя на запоминании, то объем времени на SR растет экспоненциально.
  2. С другой стороны - предлагает хорошую альтернативу в виде подходов "relational learning". То есть при обучении мы фокусируемся на том, чтобы вместо запоминания изолированных кусочков информации, запоминать инфу в связи (отсюда "relational") с уже существующей (в идеале по более высоким уровням таксономии блума, то есть под призмой применения, анализа, оценки) → этот процесс сигналит мозгу, что инфа важная → мозг "корректирует кривую забывания" → для хорошего удержания достаточно повторить 1-2 раза:

  Развернуть 1 комментарий

прошу добавить альтернативный разделитель минут и секунд

на айпаде смотреть боль

  1. переключить на цифры
  2. набрать например 23
  3. нажать пробел. клавиатура обратно переключается на буквы
  4. обратно переключится на цифры
  5. набрать например 55

вот если бы

  1. переключить на цифры
  2. набрать 23:55

???
profit!!!

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

@gwyllium, ок учту. Согласен, что из таких мелочей часто складывается привычка к продукту) Кстати, задумался о том, где разместить продукт, чтобы те, кому зашел функционал могли подписаться на оповещения, что доработана конкретная фича?

  Развернуть 1 комментарий

Привет, классная идея! Я тоже подобные интеграции люблю придумывать и решать.
Есть предложение, что для декстоп устройсв можно сделать расширение, по хоткею будет сохранять тайм коды в буфер или сразу отсылать боту.
То есть смотришь видео, cmd+\ (пример запомнить текущий тайм штемп + нормализовать), cmd+/ (запомнить end). Повтоный вызов или редактировние или начало новых отрезков.
Как итог получится делать заметки не покидая видео и не задумываясь сильно

  Развернуть 1 комментарий

@undefined, очень резонирует мысль (у самого проскакивала). Буду рад созвониться обсудить. Пиши, когда будет удобно!

  Развернуть 1 комментарий

Может кто-то не знал, но в мобильном приложении Telegram, можно в сообщение где линк на ютуб или в reply на это сообщение написать таймкод и по клику откроется видео в этом моменте.

Saved Messages
Saved Messages

клик по времени
клик по времени

  Развернуть 1 комментарий

@bakalov, действительн, не знал этого. Возможно, подскажите, может, оно "из коробки" и субтитры выдергивает?

  Развернуть 1 комментарий

@apris, такой фичи не видел)

  Развернуть 1 комментарий

@apris, по апишке youtube думаю можно скачать субтритры.
В каком формате и как это работает не разбирался, но апишка есть)
https://developers.google.com/youtube/v3/docs/captions/download

  Развернуть 1 комментарий
🕵️ Юзер скрыл свои комментарии от публичного просмотра...

Если сделаешь какое-нибудь апи, попробую написать плагин для Worflowy, который позволяет делать это прям там :)

  Развернуть 1 комментарий

😱 Комментарий удален его автором...

  Развернуть 1 комментарий

для заметок с ютуба для себя полезным нашел Notion + Snipo

  Развернуть 1 комментарий

Недавно наткнулся на такой сервис, отчасти решает, то что хочешь сделать:
https://glasp.co/youtube-summary
Надеюсь тебя это не остановит пилить свое решение и ты сделаешь лучше!

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб