AmicoScript local audio transcription tool.
β Star if useful Β· π¬ Telegram @amicoscript Β· π Issues welcome
AmicoScript is a privacy-focused, local-first transcription tool built on OpenAI's Whisper models. It allows you to transform audio recordings into structured, searchable transcripts without your data ever leaving your repository or machine. Whether you need speaker identification (diarization), translation, or simple subtitles, AmicoScript provides a fast, free, and secure alternative to cloud services.
AmicoScript is perfect for journalists, researchers, students, or anyone who wants control over their audio data and transcripts. It supports batch processing, multiple export formats, and optional AI analysis features β all running locally on your hardware.
Most transcription tools:
- require uploading your audio to the cloud
- cost money or have limits
- donβt give you control over your data
AmicoScript keeps everything local.
β Your audio never leaves your machine.
| Feature | AmicoScript | Buzz | WhisperX | Whisper WebUI | Insanely Fast Whisper |
|---|---|---|---|---|---|
| Local-only (no cloud) | β | β | β | β | β |
| Speaker diarization | β | β | β | β | β |
| Ollama / LLM integration | β | β | β | β | β |
| URL import (7 platforms) | β | YouTube only | β | YouTube only | β |
| Batch processing | β | β | β | β | β |
| Desktop app (no Python needed) | β | β | β | β | β |
| Docker support | β | β | β | β | β |
| Web UI | β | β | β | β | β |
Comparison based on official READMEs as of April 2026. See something wrong? Open a PR.
- π§ Transcribe audio and video (MP3, WAV, M4A, OGG, FLAC, AAC, MP4, MOV, MKV)
- ποΈ Record directly from your microphone (with pause support)
- π Import directly from video URLs (YouTube, TikTok, Instagram, Facebook, X, Vimeo, Twitch)
- π Batch process multiple files at once
- π§ Whisper models (tiny β large-v3)
- π€ AI analysis (summary, action items, translation, custom prompts)
- π§ LLM integration: configure local LLMs (Ollama or similar) from the UI
- π£οΈ Speaker diarization (who said what)
- π Real-time translation to English
- π Global search across transcripts
- ποΈ Organize with folders and tags
- π·οΈ Automatic platform tags for URL imports (for example: youtube, tiktok, instagram)
- π¦ Bulk operations: move to folder, assign/remove tags, export, delete selected recordings
- π±οΈ Multi-select with checkboxes, Ctrl+click (toggle), or Shift+click (range select)
- βοΈ Edit individual segments
- π€ Export to JSON, SRT, TXT, Markdown
- β¨οΈ Keyboard shortcuts for fast navigation
- π For Mac, Windows, Docker, or local Python
AmicoScript is a personal project and not affiliated with OpenAI. It uses OpenAI's Whisper models, which are open-source, but AmicoScript itself is independently developed. Use at your own risk. I cannot guarantee the security, privacy, or performance of the application. Always review the code and understand how it works before running it on your machine.
Upload a meeting recording β get a structured, time-stamped transcript you can search, edit, and export.
Paste a supported video URL in the drop area β AmicoScript fetches the audio and starts transcription automatically.
docker compose up --buildThen open: http://localhost:8002
If you're running behind a Traefik reverse proxy, use the production override:
cp .env.example .env
# Edit .env and fill in APP_DOMAIN, TRAEFIK_NETWORK, TRAEFIK_CERTRESOLVER
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -ddocker-compose.prod.yml adds Traefik labels and joins the Traefik Docker network. Traefik handles TLS termination and automatic Let's Encrypt certificates.
pip install -r backend/requirements.txt
python run.pypytest -qIn the releases page you can download the application for Windows or Mac (Linux is coming). Be careful that the .exe (or. the dmg) might be recognized as suspicious by the OS.
- Download the latest release from the Releases page.
- Because the app is not signed by Apple, macOS will initially block it. Open System Settings β Privacy & Security and enable "App Store and identified developers" (allow apps downloaded from App Store and identified developers).
- Unzip the downloaded file. Double-click the application file (
AmicoScript.app). macOS will prevent it from opening because it's from an unidentified developer. - In System Settings β Privacy & Security, click the "Open Anyway" button next to the blocked app, then confirm when prompted to allow the application to run.
- The app will launch normally after confirmation.
run.py will download ffmpeg automatically on first run.
Performance depends on your hardware (CPU/GPU) and selected model size.
- Larger models β better accuracy
- Smaller models β faster processing
Feedback and benchmarks are welcome.
If the performance on your machine are not acceptable and you are fine with releasing a bit of local-first philosophy take a look to the Google Colab section.
If you don't have a powerful local GPU, you can offload the heavy transcription workload to Google Colab for free while keeping the application and your file library strictly local. This option is absolutely optional.
- Toggle Cloud Power on in the sidebar.
- Click Open notebook in Colab β β this opens the notebook directly in Google Colab without any manual upload.
- In Colab, go to Runtime > Change runtime type and select T4 GPU.
- Run Cell 1 to install dependencies (~2β4 min).
- Get your free ngrok authtoken, paste it into
NGROK_AUTH_TOKENin Cell 2, then run it.
- Copy the generated
.ngrok-free.appURL and paste it into the Colab Bridge URL field in AmicoScript.
The ngrok URL changes every session β re-paste it each time you restart the notebook.
Your files will now be seamlessly processed on the cloud GPU, but saved and managed exclusively on your local machine!
Uses pyannote and requires a Hugging Face token.
See full setup instructions in: Documentation
New in 1.4: AmicoScript can call a local LLM to produce analyses from transcripts β summaries, action-item extraction, full translations, or custom-prompt runs. Key notes:
- Configure the LLM base URL, model name, and optional API key from the app sidebar (
LLM Settings). The default base URL ishttp://localhost:11434(Ollama-style API). - You can test the connection from the UI or via the backend endpoint
POST /api/llm/test-connection. - List available models with
GET /api/llm/modelsand trigger a model pull viaPOST /api/llm/models/pull(useful for Ollama pulls). - Per-recording analyses are created with
POST /api/recordings/{recording_id}/analysesand queried withGET /api/recordings/{recording_id}/analyses.
Docker tip: if your LLM runs outside the container, use host.docker.internal instead of localhost for the LLM base URL when running the app in Docker.
Full documentation (API, setup, details):
- Backend: Python + FastAPI (
backend/main.py+ modular routers inbackend/api/routes/) - Frontend: Single HTML (no build step)
- Processing: Sequential background worker (
asyncio.Queue) with structured logging - Storage: Local SQLite metadata + local managed recording files (with temp-file cleanup)
See docs/ROADMAP.md for full priority breakdown.
Currently planned:
- Manual speaker identification (rename speakers)
- AI-powered smart tagging
- Official website & docs
Feedback, issues, and contributions are welcome. See CONTRIBUTING.md for how to get started.
If AmicoScript saves you time, a star helps others discover it.
π¬ Join the community on Telegram @amicoscript β share feedback, request features, show what you built.
This project is licensed under the MIT License. See the LICENSE file for more details.




