Skip to content

rishikanthc/Scriberr

Repository files navigation

Scriberr

Self‑hosted, offline transcription — transcribe audio, summarize, annotate, and build on a clean REST API.

WebsiteDocsAPI ReferenceChangelog


Introduction

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.

  • Built with React (frontend) and Go (backend), packaged as a single binary
  • Uses WhisperX with open‑source Whisper models for accurate transcription
  • Clean, distraction‑free UI optimized for reading and working with transcripts

Scriberr homepage

Features

  • Accurate transcription with word‑level timing
  • Speaker diarization (identify and label speakers)
  • Transcript reader with playback follow‑along and seek‑from‑text
  • Highlights and lightweight note‑taking (jump note → audio/transcript)
  • Summarize and chat over transcripts (OpenAI or local models via Ollama)
  • Transcription profiles for re‑usable configurations
  • YouTube video transcription (paste a link and transcribe)
  • Quick transcribe (ephemeral) and batch upload
  • REST API coverage for all major features + API key management
  • Download transcripts as JSON/SRT/TXT (and more)

Screenshots

Show screenshots

Transcript view

Minimal transcript reader with playback follow‑along and seek‑from‑text.

Summarize transcripts

Summarize long recordings and use custom prompts.

API key management

Generate and manage API keys for the REST API.

YouTube video transcription

Transcribe audio directly from a YouTube link.

Installation

Visit the website for the full guide: https://scriberr.app/docs/installation.html

Homebrew (macOS & Linux)

brew tap rishikanthc/scriberr
brew install scriberr

# Start the server
scriberr

Open http://localhost:8080 in your browser.

Optional configuration via .env (sensible defaults provided):

# Server
HOST=localhost
PORT=8080

# Storage
DATABASE_PATH=./data/scriberr.db
UPLOAD_DIR=./data/uploads
WHISPERX_ENV=./data/whisperx-env

# Custom paths (if needed)
UV_PATH=/custom/path/to/uv

Docker

Multiline example:

docker run -d \
  --name scriberr \
  -p 8080:8080 \
  -v scriberr_data:/app/data \
  --restart unless-stopped \
  ghcr.io/rishikanthc/scriberr:latest

Docker Compose:

version: '3.9'
services:
  scriberr:
    image: ghcr.io/rishikanthc/scriberr:latest
    container_name: scriberr
    ports:
      - "8080:8080"
    volumes:
      - scriberr_data:/app/data
    restart: unless-stopped

volumes:
  scriberr_data:

Then open http://localhost:8080.

Diarization (speaker identification)

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).

  1. Create an account on https://huggingface.co

  2. Visit and accept the user conditions for these repositories:

    Verify they appear here: https://huggingface.co/settings/gated-repos

  3. Create an access token under Settings → Access Tokens and enable all permissions under “Repositories”. Keep it safe.

  4. In Scriberr, when creating a profile or using Transcribe+, open the Diarization tab and paste the token into the “Hugging Face Token” field.

See the full guide: https://scriberr.app/docs/diarization.html

Diarization setup

API

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.

Contributing

Issues and PRs are welcome. Please open an issue to discuss large changes first and keep PRs focused.

Local dev overview:

# Backend (dev)
cp -n .env.example .env || true
go run cmd/server/main.go

# Frontend (dev)
cd web/frontend
npm ci
npm run dev

# Full build (embeds UI in Go binary)
./build.sh
./scriberr

Coding style: go fmt ./..., go vet ./..., and cd web/frontend && npm run lint.

License

Licensed under the MIT License.