Scriberr is an open-source, and completely offline audio transcription application designed for self-hosters who value privacy and performance.
Meeting Transcription API
If you're looking for a transcription API for meetings, consider checking out Recall.ai, an API that works with Zoom, Google Meet, Microsoft Teams, and more. Recall.ai diarizes by pulling the speaker data and seperate audio streams from the meeting platforms, which means 100% accurate speaker diarization with actual speaker names.
At its core, Scriberr allows you to transcribe audio and video locally on your machine, ensuring no data is ever sent to a third-party cloud provider. Leveraging state-of-the-art machine learning models (such as NVIDIA Parakeet, and Canary) or the older more popular Whisper models, it delivers high-accuracy text with word-level timing.
Scriberr goes beyond simple transcription and provides various advanced capabilities. It combines powerful under-the-hood AI with a polished, fluid user interface that makes managing your recordings feel effortless. Whether you are sorting through voice notes or analyzing long meetings, Scriberr provides a beautiful environment to get work done:
View full list of features →
The inspiration for Scriberr was born out of privacy paranoia and not wanting to pay for subscription. About a year ago, I purchased a Plaud Note for recording voice memos. I loved the device itself; the form factor, microphone quality, and workflow were excellent.
However, transcription was done on their cloud servers. As someone who is paranoid about privacy I wasn't comfortable with uploading my recordings to a third party provider. Moreover I was hit with subscription costs: $100 a year for 20 hours of transcription per month, or $240 a year for unlimited access. As an avid self-hoster with a background in ML and AI, it felt wrong to pay such a premium for a service I knew I could engineer myself.
I decided to build Scriberr to bridge that gap, creating a powerful, private, and free alternative for everyone.
Get Scriberr running on your system in a few minutes.
If you are upgrading from v1.1.0, please follow these steps to ensure a smooth transition. Version 1.2.0 introduces a separation between application data (database, uploads) and model data (Python environments).
You will need to update your Docker volume configuration to split your data:
CRITICAL: You must delete any existing folder from your previous installation.
The Python environment and models need to be reinitialized for v1.2.0. If the application detects an old environment, it may attempt to use it, leading to compatibility errors. Starting with a fresh volume ensures the correct dependencies are installed.
The easiest way to install Scriberr is using Homebrew. If you don't have Homebrew installed, get it here first.
Open http://localhost:8080 in your browser.
Scriberr works out of the box. However, for Homebrew or manual installations, you can customize the application behavior using environment variables or a file placed in the same directory as the binary (or where you run the command from).
For a containerized setup, you can use Docker. We provide two configurations: one for standard CPU usage and one optimized for NVIDIA GPUs (CUDA).
Use this configuration for running Scriberr on any machine without a dedicated NVIDIA GPU.
If you have a compatible NVIDIA GPU, this configuration enables hardware acceleration for significantly faster transcription.
Scriberr provides separate Docker images for different NVIDIA GPU generations due to CUDA/PyTorch compatibility requirements:
RTX 50-series users (RTX 5080, 5090, etc.): You must use the Blackwell-specific image. The standard CUDA image will not work due to PyTorch CUDA compatibility requirements. Use:
Or for local builds:
When you run Scriberr for the first time, it may take several minutes to start. This is normal!
You will know the application is ready when you see the line: .
If you see an "out of memory (14)" error from SQLite (specifically ), it usually means a permissions issue. The database engine cannot create temporary files in the data directory.
If the application loads but you cannot play or see the audio waveform (receiving "Unable to load audio stream"), this is often due to the Secure Cookies security flag.
This project was developed using AI agents as pair programmer. It was NOT vibe coded. For context I'm a ML/AI researcher by profession and I have been programming for over a decade now. The codebase follows software engineering best practices and principles and all architecture decisions were made by me. All code generated by LLMs was reviewed and tested to the best of my abilities.