Skip to content

Commit b66dcad

Browse files
docs: README layout — TOC, badges, tables, release how-to
Made-with: Cursor
1 parent 7b5b7a7 commit b66dcad

File tree

1 file changed

+91
-46
lines changed

1 file changed

+91
-46
lines changed

README.md

Lines changed: 91 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,88 +1,133 @@
11
# LocalStream – Private Lecture Transcriber
22

3-
This project’s GitHub repository is **[LocalStream-Transcriber](https://github.com/appsdothingsiguess/LocalStream-Transcriber)**. The same codebase is also known as **MP3 Grabber** (`mp3grabber` on npm) in older docs—one app, one repo.
3+
<p align="center">
4+
<strong>Turn Canvas, Panopto, and YouTube-style lectures into searchable notes—on your own laptop.</strong><br/>
5+
<sub>Open source · 100% local · No cloud transcription</sub>
6+
</p>
47

5-
## What is this?
8+
<p align="center">
9+
<a href="https://github.com/appsdothingsiguess/LocalStream-Transcriber/releases/latest"><img src="https://img.shields.io/github/v/release/appsdothingsiguess/LocalStream-Transcriber?label=Download&logo=github" alt="Latest release"/></a>
10+
<a href="https://github.com/appsdothingsiguess/LocalStream-Transcriber"><img src="https://img.shields.io/badge/repo-LocalStream--Transcriber-24292f?logo=github" alt="Repository"/></a>
11+
</p>
12+
13+
---
14+
15+
| | |
16+
|:---|:---|
17+
| **Repository** | **[LocalStream-Transcriber](https://github.com/appsdothingsiguess/LocalStream-Transcriber)** on GitHub |
18+
| **Also known as** | **MP3 Grabber** (`mp3grabber` in `package.json`) — same app, one repo |
19+
20+
---
21+
22+
## Table of contents
23+
24+
1. [Start here (students)](#start-here-students)
25+
2. [Quick start (Windows)](#quick-start-windows)
26+
3. [Downloads and releases](#downloads-and-releases)
27+
4. [Technical overview](#technical-overview)
28+
5. [Prerequisites](#prerequisites)
29+
6. [How it works](#how-it-works)
30+
7. [Troubleshooting](#troubleshooting)
31+
32+
---
33+
34+
## Start here (students)
35+
36+
### What is this?
637

738
LocalStream turns lecture audio and video into **searchable text on your computer**—so you can skim, search, and study without rewatching whole recordings.
839

9-
## Why should I care as a student?
40+
### Why should I care?
1041

1142
If you are juggling deadlines, need captions or text to follow along, or you learn better from notes than from scrubbing through long replays, this helps you **turn lectures into notes you can actually search**.
1243

13-
## Does this work with Canvas, Panopto, or YouTube?
44+
### Canvas, Panopto, YouTube?
1445

1546
**Yes.** It is built for **Canvas**, **Panopto**, **Kaltura**, and **YouTube**-style lecture pages (plus similar sites). You can also transcribe **files you already saved** (MP3, MP4, etc.) from any source.
1647

17-
## Is my data staying on my laptop?
48+
### Is my data staying on my laptop?
1849

1950
**Yes.** Transcription runs **entirely on your machine**. Your lecture audio is **not** sent to a cloud service for processing.
2051

2152
### At a glance
2253

23-
- Turn **Canvas / Panopto / Kaltura / YouTube** lectures into text.
24-
- Works with **logged-in** school streams (Canvas, etc.).
25-
- **100% local** – no audio sent to external servers.
26-
- **Faster on a gaming-style NVIDIA GPU** if you have one; **works fine on CPU** too (usually slower).
54+
| | |
55+
|:---|:---|
56+
| **Platforms** | Canvas · Panopto · Kaltura · YouTube-style pages |
57+
| **School login** | Works with **logged-in** streams (e.g. Canvas) |
58+
| **Privacy** | **100% local** — no audio sent to external servers for transcription |
59+
| **Speed** | **GPU** faster if available; **CPU** works too (often slower) |
2760

28-
### Who this is for
61+
**Who it’s for:** college and grad students who want **private, searchable lecture notes** without being developers.
2962

30-
**Stressed college and grad students** who want **private, searchable lecture notes**—without being developers.
63+
**What you do:** put files in **`media/`** *or* use a small **Chrome add-on** plus a local helper for browser lectures; open **`http://localhost:8787`** for status; read transcripts in **`transcriptions/`**.
3164

32-
### What it does
65+
---
3366

34-
You either **put media files** in a folder and run the app, or use a **small Chrome add-on** plus a local helper so pages you are already signed into can be turned into transcripts. You open a simple page in your browser at **`http://localhost:8787`** to watch progress. Finished text files land in the **`transcriptions/`** folder.
67+
## Quick start (Windows)
3568

36-
---
69+
**You need once:** [Node.js (LTS)](https://nodejs.org/) and [Python 3.10–3.12](https://www.python.org/downloads/) — during Python setup on Windows, enable **“Add python.exe to PATH”**.
3770

38-
## Quick Start for Students (Windows)
71+
| Step | What to do |
72+
|:---:|:---|
73+
| 1 | **Get the app:** [Latest release ZIP](https://github.com/appsdothingsiguess/LocalStream-Transcriber/releases/latest) *or* **Code → Download ZIP** on the repo, then unzip (e.g. `Documents\LocalStream-Transcriber`). |
74+
| 2 | **Run it:** Double-click **`START.bat`**. *(Fallback: open Command Prompt in the folder and run `npm run setup`.)* First run may take a while — normal. |
75+
| 3 | **Pick a mode:** **Option 1** — put audio/video in **`media/`** and transcribe. **Option 2** — browser helper for Canvas / Panopto / YouTube (install extension next). |
76+
| 4 | **Chrome extension (option 2 only):** `chrome://extensions/`**Developer mode****Load unpacked** → select the **`extension/`** folder. |
77+
| 5 | **Progress & files:** Open **`http://localhost:8787`**. Transcripts save under **`transcriptions/`** as `.txt` with lines like `[00:01.234]`. |
3978

40-
You need two free runtimes installed once: **Node.js** and **Python**. If you do not have them yet:
79+
> **No dedicated GPU?** CPU is fine; it may just take longer.
80+
> **Privacy:** All speech-to-text runs **on your laptop**.
4181
42-
- **Node.js** (LTS): [https://nodejs.org/](https://nodejs.org/)
43-
- **Python** 3.10–3.12: [https://www.python.org/downloads/](https://www.python.org/downloads/) — on Windows, check **“Add python.exe to PATH”** during install.
82+
---
4483

45-
Then:
84+
## Downloads and releases
4685

47-
1. **Get the project:** On GitHub, use **Code → Download ZIP**, then unzip the folder somewhere easy to find (for example `Documents\LocalStream-Transcriber`).
48-
2. **Open the folder** in File Explorer. Double-click **`START.bat`**.
49-
- If double-click does not work, open **Command Prompt** in that folder and type: `npm run setup` then press Enter.
50-
- The first run may take a while while it sets up helpers (including speech tools). That is normal.
51-
3. **Choose what you want:**
52-
- **Option 1 – Transcribe files:** Put your audio or video files in the **`media/`** folder, then pick option **1** and follow the prompts. Good for files you already downloaded or recorded.
53-
- **Option 2 – Browser + Canvas / Panopto / YouTube:** Pick option **2** to start the local helper. Then install the Chrome add-on (next step) and play your lecture in the browser while signed in.
54-
4. **Load the Chrome add-on (only for option 2):** In Chrome, go to `chrome://extensions/`, turn on **Developer mode**, click **Load unpacked**, and select the project’s **`extension/`** folder (the whole folder).
55-
5. **Watch progress:** In your browser, open **`http://localhost:8787`** to see status. **Finished transcripts** are saved under **`transcriptions/`** as `.txt` files with timestamps (like `[00:01.234]`) so you can match text to the recording.
86+
There is **no Windows installer** yet — releases are **“download ZIP + first-run setup”** using **`START.bat`** and **`npm run setup`** (package name **`mp3grabber@1.0.0`** in `package.json`).
5687

57-
**No GPU?** That is okay. The app can use your **CPU**; it may take longer, but you get the same kind of output.
88+
### What goes in a release ZIP
5889

59-
**Privacy:** All transcription stays **on your laptop**; nothing is uploaded to the cloud for speech-to-text.
90+
| Include | Why |
91+
|:---|:---|
92+
| **Full project** | `start.js`, `relay.js`, `transcribe.py`, `package.json`, `requirements.txt`, **`extension/`**, **`START.bat`**, `media/`, `transcriptions/` (can be empty) |
93+
| **Setup on the user’s PC** | Run **`npm install`** / **`npm run setup`** on *their* machine — **do not** bundle your own **`node_modules/`** (breaks across PCs) |
94+
| **Optional `INSTALL.txt`** | “Install Node + Python → unzip → double-click `START.bat` → option 1 or 2” |
6095

61-
---
96+
Pre-bundling **`node_modules/`** or a full Python environment is possible for experts but is **fragile** on Windows; the **default** is **source ZIP + first-run setup**.
6297

63-
## Downloads & Releases
98+
### For users: install from a release
6499

65-
This section describes a **simple GitHub Releases** approach—no fancy installer, just a **download-and-run** flow on top of what already exists (`START.bat`, `npm run setup`, `package.json` as `mp3grabber@1.0.0`).
100+
1. Open **[Releases](https://github.com/appsdothingsiguess/LocalStream-Transcriber/releases)** → download the **latest** source/archive ZIP.
101+
2. Unzip anywhere (e.g. `Documents\LocalStream-Transcriber`).
102+
3. Install **Node.js** and **Python** if you have not already ([Quick start (Windows)](#quick-start-windows)).
103+
4. Double-click **`START.bat`** (or run `npm run setup` in that folder).
104+
5. Choose **option 1** (`media/`) or **option 2** (extension + `http://localhost:8787`); transcripts appear in **`transcriptions/`**.
66105

67-
### What a “Windows release ZIP” should contain
106+
### For maintainers: how to publish a release
68107

69-
- **Full project source** as in the repo: `start.js`, `relay.js`, `transcribe.py`, `package.json`, `requirements.txt`, **`extension/`**, **`START.bat`**, empty or placeholder **`media/`** and **`transcriptions/`**, etc.
70-
- **Do not** ship a copied **`node_modules/`** folder from your machine (paths and binaries differ). The ZIP should instruct users to run setup so **`npm install`** runs on *their* PC.
71-
- **Optional:** A short **`INSTALL.txt`** in the ZIP: install Node + Python from the links above, unzip, double-click `START.bat`, choose option 1 or 2.
108+
Use **either** the GitHub website **or** git tags — both end up on the same Releases page.
72109

73-
Shipping **pre-filled `node_modules`** or a frozen Python env is possible for advanced maintainers but is **brittle** across Windows versions; the realistic default is **“ZIP + first-run `npm run setup`**.
110+
**Option A — GitHub (no git CLI required)**
74111

75-
### How a student uses a release (3–5 steps)
112+
1. Push your changes to **`main`** (or your default branch).
113+
2. On the repo, click **Releases****Create a new release**.
114+
3. Click **Choose a tag**, type a new tag name (e.g. **`v1.0.1`**), select **Create new tag on publish**, target **`main`**.
115+
4. **Release title:** e.g. `v1.0.1` or a short headline.
116+
5. **Describe** what changed (bullets are fine).
117+
6. Attachments: GitHub usually offers **Source code (zip/tar)** automatically when you publish — that is enough for students. Optionally add a second ZIP only if you have a **clean, reproducible** build script; otherwise avoid custom `node_modules` bundles.
118+
7. Click **Publish release**.
76119

77-
1. On GitHub, open **Releases**, download the **latest Windows/source ZIP**.
78-
2. Unzip to a folder (for example `Documents\LocalStream-Transcriber`).
79-
3. Install **Node.js** and **Python** if prompted or if setup fails (links in **Quick Start for Students** above).
80-
4. Double-click **`START.bat`** (or run `npm run setup` in that folder).
81-
5. Choose **option 1** (files in `media/`) or **option 2** (Chrome extension + `http://localhost:8787`), then find transcripts in **`transcriptions/`**.
120+
**Option B — Tag from git, then publish on GitHub**
121+
122+
```bash
123+
# From your repo folder, after committing:
124+
git tag -a v1.0.1 -m "Release v1.0.1: short description"
125+
git push origin v1.0.1
126+
```
82127

83-
### Maintainer note
128+
Then open **Releases → Draft a new release**, pick tag **`v1.0.1`**, add notes, **Publish**.
84129

85-
Tag releases (e.g. `v1.0.0`) and attach the ZIP built from a **clean `git archive` or GitHub’s ZIP** of that tag so what students download matches the tagged commit.
130+
**Versioning tip:** Bump **`version`** in `package.json` when you cut a meaningful release so docs and support match (e.g. `1.0.1` alongside tag `v1.0.1`).
86131

87132
---
88133

0 commit comments

Comments
 (0)