course2md
2.0 A new desktop app · release notes

Turn lecture videos into illustrated notes

Paste a YouTube or Bilibili link, or drop in a local video. course2md captures a screenshot every time the slide changes, transcribes what is said beneath it, and keeps the result in a library on your computer.

Windows x64 (ZIP) Linux x86_64 (tar.gz) All downloads

brew install --cask mizorewww/tap/course2md-gui

Homebrew installs the app together with ffmpeg, yt-dlp and aria2. Free and open source under the MIT license.

The course2md reader showing a lecture note with a summary, an outline and typeset formulas

Why course2md

Notes you can read, search and keep

Notes shaped like the lecture

One screenshot per slide, with the matching transcript in paragraphs underneath, saved as ordinary course.md and course.html files you can open anywhere.

Private by default

Speech is recognized on your own computer: Apple Silicon works out of the box, and other systems use a graphics card, the CPU or an Intel Core Ultra NPU. Audio leaves your computer only if you choose a cloud service.

Subtitles first

When a video already has subtitles they are used directly, with no speech recognition needed.

Optional AI

Proofreading, summaries, bilingual notes in eight languages and math formulas, including spoken ones, written as LaTeX and typeset. Works with any OpenAI-compatible service, a local Ollama server or a ChatGPT subscription. Off until you turn it on.

Take it anywhere

Export a note as HTML with its images, as Markdown with screenshots in a .zip, or as JSON data.

Four languages

English, 简体中文, 繁體中文 and 日本語, following your system language. Switch any time in Settings → Appearance.

A tour of the app

From a link to a finished note

Add a video

Paste a link or drag a file onto Home. course2md reads the video first, so you can check the title, length and processing options before anything is converted. Multi-part Bilibili videos and playlists can be queued in one batch.

Home page with a previewed video and its processing options

Read, find and copy

The reader opens on a summary and key points, keeps an outline of the sections beside the note, and finds text across the whole note.

  • Typeset formulas. Copying a passage gives you the original text with each formula's LaTeX.
  • Wide formulas stay whole. They get their own row that scrolls sideways.
  • Picks up where you left off. The reader remembers your position in every note.
  • Jump to the source. Play the original video, or watch from any section.

Browse every slide

The Screenshots view shows the whole lecture at a glance. Open any slide to see it large, zoom and pan, and read what was said at that moment.

Screenshots view with a grid of lecture slides
An enlarged slide with the transcript spoken while it was shown

Keep a library

Notes live in a library with nested folders, drag and drop, and search that covers subfolders. You can keep several library locations, and deleted notes go to the Trash (Recycle Bin on Windows and Linux).

Library with a folder tree and note cards

Let it work in the background

Conversions run as tasks you can pause, resume and reorder, and they carry on after you reopen the app. Each step shows its progress, and model downloads show their size, speed and time left. If one part fails, read what finished and redo only the rest.

Tasks page with a running conversion and its progress

Make it yours

Choose from 10 themes, adjust the text size and reduce motion in Settings → Appearance. The interface speaks English, 简体中文, 繁體中文 and 日本語.

Appearance settings with theme previews

Install

Get course2md

The desktop app includes the conversion engine; you do not need the command-line tool to use it. Videos need ffmpeg, which the package managers below install for you.

macOSApple Silicon, macOS 15 or later

With Homebrew, this installs the app together with ffmpeg, yt-dlp and aria2. Then open course2md from Applications.

brew install --cask mizorewww/tap/course2md-gui

Without Homebrew, download the DMG, drag course2md to Applications and install ffmpeg as described in the macOS guide. The app already includes yt-dlp.

Windowsx64

  1. Download the portable ZIP and extract everything to a permanent folder. It includes yt-dlp and aria2.
  2. Install ffmpeg in PowerShell:
    winget install --id Gyan.FFmpeg -e
  3. Open course2md-desktop.exe from the extracted folder and keep the other files next to it.

Arch Linux / CachyOSx86_64

yay -S course2md-gui-bin

Or paru -S course2md-gui-bin. This installs the app, the video tools and the graphics libraries; your GPU needs a working Vulkan driver. See the Linux guide.

Ubuntu and other Linuxx86_64

Download the tar.gz, install ffmpeg and the graphics libraries from the Linux guide, extract it and run ./course2md-desktop. Built on Ubuntu 24.04; it includes yt-dlp.

First steps

  1. Open course2md and follow the setup: choose how speech is recognized, optionally connect an AI service and Bilibili, and download the speech model (1–2.4 GB, once).
  2. If anything is missing, Settings → Application → Run checks shows which tool to install.
  3. On Home, paste a link or drop a video, review the preview and click Start conversion. Finished notes appear in Library.

Upgrading from 1.7

Downloaded models, the Bilibili login and the CLI's config.toml keep working. Notes made by 1.x stay where they were as course.md / course.html, but the 2.0 library only lists notes made by 2.0. Set up recognition and AI services again in the setup steps.

Intel Macs and Linux ARM64 have no desktop app yet; use the command-line tool. More in the first-launch guide and Troubleshooting.

Command-line tool

Prefer the terminal?

The course2md CLI does the same conversion from the terminal or your scripts. It can be installed beside the desktop app; the two share the Bilibili and ChatGPT logins and the downloaded speech models.

It needs ffmpeg; online links also need yt-dlp. Check everything with course2md doctor, and see the CLI guide for every command.

# macOS / Linux, into ~/bin
$ curl -fsSL https://raw.githubusercontent.com/mizorewww/course2md/main/install.sh | bash
# or Homebrew / Arch
$ brew install mizorewww/tap/course2md
$ yay -S course2md-bin
$ course2md ./lecture.mp4
$ course2md https://www.youtube.com/watch?v=…
$ course2md ./lecture.mp4 -o ./notes

Your next lecture, as a note