Automation Tool to auto generate markdown notes from online classes/talks/presentations.

autonotes

Automation tool to autocapture screenshots and join them with a supplied .srt or .txt file and output a notes file in markdown.

Problem?

Watching classes / presentations online and taking notes at the same time can be hard sometimes. If they are pre-recorded you can spend a lot of time pausing and unpausing the video. So I wanted to automate the process of taking notes for later reference so I could also just focus on paying uninterrupted attention to the class/presentation.

Solution

Tool that takes sceenshots from the classes / presentations (ideally in the right time) and joins them together with a later supplied .srt (or txt but not supported yet) file. This .srt file can be generated with a number of tools, I'm using otter.ai for converting Speech-to-Text. If you're using this with youtube videos, and the video already has subtitles, you can get that file instead of converting speech to text.

Note: This is a WIP, right now you I recommend using otter.ai to generate an .srt file from the talk you are listening to and then feed it to this script. You should start recording with otter.ai and autonotes at the same time.

Example

Inside both input and output folders you can find a real use case scenario with the name example-what-is-linux that was generated from the video: https://www.youtube.com/watch?v=YA-3NI_Lfns In this scenario, I did the following steps:

  1. I had a mobile on the desk with otter.ai open.
  2. Started autonotes with the command: mage screen:capture 5 0 5000 jpeg example-what-is-linux (it has a start delay of 5s)
  3. Started both the video on youtube and otter.ai recording at the same time as the autonotes start delay was ending.
  4. Exported the .srt file from otter.ai and put it on the input folder with the name example-what-is-linux.srt otter
  5. Generate markdown file with the command mage notes:generate example-what-is-linux and the file is save to output/example-what-is-linux/example-what-is-linux.md

capture generate

  1. Output: markdown

View output markdown file: output file

Setup

git clone https://github.com/marcos10soares/autonotes.git
cd autonotes
go get -d ./...

Usage

For the sake of simplicity, mage was used, there is no need to install it.

If you have mage installed just call mage othewise you can do go run main.go where you see mage being used.

Just in case you want to install it: How to Install mage

Show list of options if you have mage installed:

mage

otherwise do:

go run main.go

outputs:

❯ mage
Mage is a make-like command runner.  See https://magefile.org for full docs.

Targets:
  notes:generate    .md notes file - usage: mage generate <file_and_folder_name_must_have_the_same_name>
  screen:capture    screen - usage: mage screen:capture <start_delay_seconds> <screen_index> <capture_interval_ms> <jpeg_or_png> <output_folder_name>
  screen:test       screen capture all screens and saves them to a "screen_test" folder with the number of the screen

screen test

Tests screen capture on all screens and outputs the images to "output/screen_test".

Use this to find the index of the screen you want to capture in case you have multiple monitors.

mage screen:test

or

go run main.go screen:test

screen capture

Captures screenshots from a monitor, within an interval (if the image is different - overall works well but your usage may vary), and saves them to a folder with a timestamp on the name.

mage screen:capture <start_delay_seconds> <screen_index> <capture_interval_ms> <jpeg_or_png> <output_folder_name>

example usage:

mage screen:capture 0 0 5000 jpeg my-presentation-notes

generate notes

This assumes that a folder with screenshots was already created (refer to screen capture above).

Both the folder and the .srt file should have the same name, example folder: my-presentation-notes and example .srt file: my-presentation-notes.srt.

mage generate <file_and_folder_name_must_have_the_same_name> <obsidianFormat_true_false>

example usage:

mage generate my-presentation-notes true

TODO

  • support txt files
  • integrate with google or aws speech-to-text solutions
  • output with obsidian image links format
  • add name of file as title in md file
  • fetch srt from youtube
Owner
Marcos Soares
Maker Hacker Dev
Marcos Soares
Similar Resources

Auto-gen fuzzing wrappers from normal code. Automatically find buggy call sequences, including data races & deadlocks. Supports rich signature types.

fzgen fzgen auto-generates fuzzing wrappers for Go 1.18, optionally finds problematic API call sequences, can automatically wire outputs to inputs acr

Dec 23, 2022

Blackfriday: a markdown processor for Go

Blackfriday Blackfriday is a Markdown processor implemented in Go. It is paranoid about its input (so you can safely feed it user-supplied data), it i

Jan 8, 2023

⚙️ Convert HTML to Markdown. Even works with entire websites and can be extended through rules.

⚙️ Convert HTML to Markdown. Even works with entire websites and can be extended through rules.

html-to-markdown Convert HTML into Markdown with Go. It is using an HTML Parser to avoid the use of regexp as much as possible. That should prevent so

Jan 6, 2023

Produces a set of tags from given source. Source can be either an HTML page, Markdown document or a plain text. Supports English, Russian, Chinese, Hindi, Spanish, Arabic, Japanese, German, Hebrew, French and Korean languages.

Produces a set of tags from given source. Source can be either an HTML page, Markdown document or a plain text. Supports English, Russian, Chinese, Hindi, Spanish, Arabic, Japanese, German, Hebrew, French and Korean languages.

Tagify Gets STDIN, file or HTTP address as an input and returns a list of most popular words ordered by popularity as an output. More info about what

Dec 19, 2022

Upskirt markdown library bindings for Go

Goskirt Package goskirt provides Go-bindings for the excellent Sundown Markdown parser. (F/K/A Upskirt). To use goskirt, create a new Goskirt-value wi

Oct 23, 2022

A CLI markdown converter written in Go.

MDConv is a markdown converter written in Go. It is able to create PDF and HTML files from Markdown without using LaTeX. Instead MDConv u

Dec 20, 2022

A markdown renderer package for the terminal

A markdown renderer package for the terminal

go-term-markdown go-term-markdown is a go package implementing a Markdown renderer for the terminal. Note: Markdown being originally designed to rende

Nov 25, 2022

A markdown parser written in Go. Easy to extend, standard(CommonMark) compliant, well structured.

goldmark A Markdown parser written in Go. Easy to extend, standards-compliant, well-structured. goldmark is compliant with CommonMark 0.29. Motivation

Dec 29, 2022

:triangular_ruler:gofmtmd formats go source code block in Markdown. detects fenced code & formats code using gofmt.

:triangular_ruler:gofmtmd formats go source code block in Markdown. detects fenced code & formats code using gofmt.

gofmtmd gofmtmd formats go source code block in Markdown. detects fenced code & formats code using gofmt. Installation $ go get github.com/po3rin/gofm

Oct 31, 2022
golang 在线预览word,excel,pdf,MarkDown(Online Preview Word,Excel,PPT,PDF,Image by Golang)
golang 在线预览word,excel,pdf,MarkDown(Online Preview Word,Excel,PPT,PDF,Image by Golang)

Go View File 在线体验地址 http://39.97.98.75:8082/view/upload (不会经常更新,保留最基本的预览功能。服务器配置较低,如果出现链接超时请等待几秒刷新重试,或者换Chrome) 目前已经完成 docker部署 (不用为运行环境烦恼) Wor

Dec 26, 2022
🚩 TOC, zero configuration table of content generator for Markdown files, create table of contents from any Markdown file with ease.
🚩 TOC, zero configuration table of content generator for Markdown files, create table of contents from any Markdown file with ease.

toc toc TOC, table of content generator for Markdown files Table of Contents Table of Contents Usage Installation Packages Arch Linux Homebrew Docker

Dec 29, 2022
Markdown - Markdown converter for golang

markdown ?? Talks ?? Join ?? Youtube ❤️ Sponsor Install via nami nami install ma

Jun 2, 2022
Mdfmt - A Markdown formatter that follow the CommonMark. Like gofmt, but for Markdown

Introduction A Markdown formatter that follow the CommonMark. Like gofmt, but fo

Dec 18, 2022
Generate a global index for multiple markdown files recursively
Generate a global index for multiple markdown files recursively

markdown index Markdown-index is a library to help you generate a global index for multiple markdown files recursively in a directory, containing a su

Sep 25, 2022
Generate markdown from go-flags

goflags-markdown -- generate markdown from a go-flags parser TODO Commands/sub-commands/etc Custom formatting Usage package main import ( "os" fla

May 22, 2022
Generate markdown formatted sprint updates based on the Jira tickets were involved in the given sprint.

Generate markdown formatted sprint updates based on the Jira tickets were involved in the given sprint.

Nov 15, 2021
This is a simple text completion/editing/auto-correction tool I created in Go.
This is a simple text completion/editing/auto-correction tool I created in Go.

Auto Text Completion Tool This is a simple text completion/editing/auto-correction tool I created in Go. The tool receives the following arguments: Th

Oct 25, 2022
Simple Markdown-Driven Scaffolding tool written by Go
Simple Markdown-Driven Scaffolding tool written by Go

Manaita Simple Markdown-Driven Scaffolding tool written by Go Write your scaffolding code on SCAFFOLD.md and generate files using the scaffold. Scaffo

Jun 25, 2022
A terminal based preview tool for markdown 🍪
A terminal based preview tool for markdown 🍪

Smooth Smooth is a terminal based preview tool for markdown. Features Turning: turn next/previous slide Scroll: scroll up/down slide Search: search wo

May 22, 2022