Skip to content

Commit 203dac7

Browse files
committed
updates readme
1 parent 15aaf4c commit 203dac7

File tree

2 files changed

+185
-25
lines changed

2 files changed

+185
-25
lines changed

README.md

Lines changed: 168 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,187 @@
1-
# Scriberr
1+
<div align="center">
22

3-
Ever wished you could just record something and get an accurate transcript with speaker identification? That's exactly what Scriberr does.
3+
<img alt="Scriberr" src="assets/scriberr-logo.svg" width="480" />
44

5-
## What is this?
5+
Self‑hosted, offline transcription — transcribe audio, summarize, annotate, and build on a clean REST API.
66

7-
Scriberr is a web app that takes your audio files and turns them into detailed transcripts. It uses WhisperX under the hood, so you get:
7+
[Website](https://scriberr.app)[Docs](https://scriberr.app/docs/intro.html)[API Reference](https://scriberr.app/api.html)[Changelog](https://scriberr.app/changelog.html)
88

9-
- **Accurate transcription** - WhisperX is really good at this
10-
- **Speaker diarization** - It figures out who said what
11-
- **Multiple formats** - Get your transcript as text, SRT, VTT, or JSON
12-
- **Chat with your audio** - Ask questions about what was said using AI
13-
- **Take notes** - Annotate important parts as you listen
9+
</div>
1410

15-
## Quick start
11+
---
1612

17-
The easiest way to get started:
13+
## Introduction
14+
15+
Scriberr is a self‑hosted offline transcription app for converting audio into text. Record or upload audio, get it transcribed, and quickly summarize or chat using your preferred LLM provider. Scriberr runs on modern CPUs (no GPU required, though GPUs can accelerate processing) and offers a range of trade‑offs between speed and transcription quality.
16+
17+
- Built with React (frontend) and Go (backend), packaged as a single binary
18+
- Uses WhisperX with open‑source Whisper models for accurate transcription
19+
- Clean, distraction‑free UI optimized for reading and working with transcripts
20+
21+
<p align="center">
22+
<img alt="Scriberr homepage" src="screenshots/scriberr-homepage.png" width="720" />
23+
</p>
24+
25+
## Features
26+
27+
- Accurate transcription with word‑level timing
28+
- Speaker diarization (identify and label speakers)
29+
- Transcript reader with playback follow‑along and seek‑from‑text
30+
- Highlights and lightweight note‑taking (jump note → audio/transcript)
31+
- Summarize and chat over transcripts (OpenAI or local models via Ollama)
32+
- Transcription profiles for re‑usable configurations
33+
- YouTube video transcription (paste a link and transcribe)
34+
- Quick transcribe (ephemeral) and batch upload
35+
- REST API coverage for all major features + API key management
36+
- Download transcripts as JSON/SRT/TXT (and more)
37+
38+
## Screenshots
39+
40+
<details>
41+
<summary>Show screenshots</summary>
42+
43+
<p align="center">
44+
<img alt="Transcript view" src="screenshots/scriberr-transcript page.png" width="720" />
45+
</p>
46+
<p align="center"><em>Minimal transcript reader with playback follow‑along and seek‑from‑text.</em></p>
47+
48+
<p align="center">
49+
<img alt="Summarize transcripts" src="screenshots/scriberr-summarize transcripts.png" width="720" />
50+
</p>
51+
<p align="center"><em>Summarize long recordings and use custom prompts.</em></p>
52+
53+
<p align="center">
54+
<img alt="API key management" src="screenshots/scriberr-api-key-management.png" width="720" />
55+
</p>
56+
<p align="center"><em>Generate and manage API keys for the REST API.</em></p>
57+
58+
<p align="center">
59+
<img alt="YouTube video transcription" src="screenshots/scriberr-youtube-video.png" width="720" />
60+
</p>
61+
<p align="center"><em>Transcribe audio directly from a YouTube link.</em></p>
62+
63+
</details>
64+
65+
## Installation
66+
67+
Visit the website for the full guide: https://scriberr.app/docs/installation.html
68+
69+
### Homebrew (macOS & Linux)
1870

1971
```bash
2072
brew tap rishikanthc/scriberr
2173
brew install scriberr
74+
75+
# Start the server
76+
scriberr
77+
```
78+
79+
Open http://localhost:8080 in your browser.
80+
81+
Optional configuration via .env (sensible defaults provided):
82+
83+
```env
84+
# Server
85+
HOST=localhost
86+
PORT=8080
87+
88+
# Storage
89+
DATABASE_PATH=./data/scriberr.db
90+
UPLOAD_DIR=./data/uploads
91+
WHISPERX_ENV=./data/whisperx-env
92+
93+
# Custom paths (if needed)
94+
UV_PATH=/custom/path/to/uv
2295
```
2396

24-
Then just run `scriberr` and open http://localhost:8080 in your browser.
97+
### Docker
2598

26-
## What you can do
99+
Multiline example:
27100

28-
- Upload audio files or record directly in the app
29-
- Get transcripts with timestamps and speaker labels
30-
- Download transcripts in whatever format you need
31-
- Chat with AI about your recordings
32-
- Create summaries of long audio
33-
- Manage everything through a clean web interface
101+
```bash
102+
docker run -d \
103+
--name scriberr \
104+
-p 8080:8080 \
105+
-v scriberr_data:/app/data \
106+
--restart unless-stopped \
107+
ghcr.io/rishikanthc/scriberr:latest
108+
```
34109

35-
## Requirements
110+
Docker Compose:
36111

37-
- Python 3.11+ (for the transcription engine)
38-
- A few GB of disk space for the AI models
112+
```yaml
113+
version: '3.9'
114+
services:
115+
scriberr:
116+
image: ghcr.io/rishikanthc/scriberr:latest
117+
container_name: scriberr
118+
ports:
119+
- "8080:8080"
120+
volumes:
121+
- scriberr_data:/app/data
122+
restart: unless-stopped
123+
124+
volumes:
125+
scriberr_data:
126+
```
127+
128+
Then open http://localhost:8080.
129+
130+
## Diarization (speaker identification)
131+
132+
Scriberr uses the open‑source pyannote models for local speaker diarization. Models are hosted on Hugging Face and require an access token (only used to download models — diarization runs locally).
133+
134+
1) Create an account on https://huggingface.co
135+
136+
2) Visit and accept the user conditions for these repositories:
137+
- https://huggingface.co/pyannote/speaker-diarization-3.0
138+
- https://huggingface.co/pyannote/speaker-diarization
139+
- https://huggingface.co/pyannote/speaker-diarization-3.1
140+
- https://huggingface.co/pyannote/segmentation-3.0
141+
142+
Verify they appear here: https://huggingface.co/settings/gated-repos
143+
144+
3) Create an access token under Settings → Access Tokens and enable all permissions under “Repositories”. Keep it safe.
145+
146+
4) In Scriberr, when creating a profile or using Transcribe+, open the Diarization tab and paste the token into the “Hugging Face Token” field.
147+
148+
See the full guide: https://scriberr.app/docs/diarization.html
149+
150+
<p align="center">
151+
<img alt="Diarization setup" src="screenshots/scriberr-diarization-setup.png" width="420" />
152+
</p>
153+
154+
## API
155+
156+
Scriberr exposes a clean REST API for most features (transcription, chat, notes, summaries, admin, and more). Authentication supports JWT or API keys depending on endpoint.
157+
158+
- API Reference: https://scriberr.app/api.html
159+
- Quick start examples (cURL and JS) on the API page
160+
- Generate or manage API keys in the app
161+
162+
## Contributing
163+
164+
Issues and PRs are welcome. Please open an issue to discuss large changes first and keep PRs focused.
165+
166+
Local dev overview:
167+
168+
```bash
169+
# Backend (dev)
170+
cp -n .env.example .env || true
171+
go run cmd/server/main.go
172+
173+
# Frontend (dev)
174+
cd web/frontend
175+
npm ci
176+
npm run dev
177+
178+
# Full build (embeds UI in Go binary)
179+
./build.sh
180+
./scriberr
181+
```
39182

40-
That's it. Everything else is handled for you.
183+
Coding style: `go fmt ./...`, `go vet ./...`, and `cd web/frontend && npm run lint`.
41184

42-
## Built with
185+
## License
43186

44-
Go backend, React frontend, WhisperX for transcription, and a lot of coffee.
187+
Licensed under the [MIT License](LICENSE).

assets/scriberr-logo.svg

Lines changed: 17 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)