Skip to content

sim186/AmicoScript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

116 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

AmicoScript Logo

AmicoScript

AmicoScript local audio transcription tool.

Stars Latest Release License Python 3.10+

⭐ 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 Demo

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.

✨ Why AmicoScript

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.


πŸ“Š How it compares

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.


πŸš€ Features

  • 🎧 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

⛔️ Disclaimer

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.

⚑ Example

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.


πŸ–₯️ Quick Start

Docker (recommended)

docker compose up --build

Then open: http://localhost:8002

Production deployment with HTTPS (Traefik)

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 -d

docker-compose.prod.yml adds Traefik labels and joins the Traefik Docker network. Traefik handles TLS termination and automatic Let's Encrypt certificates.


Local

pip install -r backend/requirements.txt
python run.py

Tests

pytest -q

πŸƒπŸΌ Running from the installer

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

macOS: Running unsigned apps (Not disabling Gatekeeper)

  1. Download the latest release from the Releases page.
  2. 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).
  3. Unzip the downloaded file. Double-click the application file (AmicoScript.app). macOS will prevent it from opening because it's from an unidentified developer.
  4. 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.
  5. The app will launch normally after confirmation.

run.py will download ffmpeg automatically on first run.


πŸ§ͺ Performance

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.


☁️ Optional: Cloud Power (Google Colab)

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.

  1. Toggle Cloud Power on in the sidebar.
  2. Click Open notebook in Colab β†— β€” this opens the notebook directly in Google Colab without any manual upload.
  3. In Colab, go to Runtime > Change runtime type and select T4 GPU.

Colab Runtime Setup

Colab GPU Setup

  1. Run Cell 1 to install dependencies (~2–4 min).
  2. Get your free ngrok authtoken, paste it into NGROK_AUTH_TOKEN in Cell 2, then run it.

Ngrok Token

Ngrok Colab

  1. Copy the generated .ngrok-free.app URL 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!


🧩 Optional: Speaker Diarization

Uses pyannote and requires a Hugging Face token.

See full setup instructions in: Documentation

πŸ€– AI Analysis & LLM

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 is http://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/models and trigger a model pull via POST /api/llm/models/pull (useful for Ollama pulls).
  • Per-recording analyses are created with POST /api/recordings/{recording_id}/analyses and queried with GET /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.


πŸ“š Documentation

Full documentation (API, setup, details):

Documentation


πŸ—οΈ Architecture (brief)

  • Backend: Python + FastAPI (backend/main.py + modular routers in backend/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)

πŸ—ΊοΈ Roadmap

See docs/ROADMAP.md for full priority breakdown.

Currently planned:

  • Manual speaker identification (rename speakers)
  • AI-powered smart tagging
  • Official website & docs

🀝 Contributing

Feedback, issues, and contributions are welcome. See CONTRIBUTING.md for how to get started.


⭐ Star & Share

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.


βš–οΈ License

This project is licensed under the MIT License. See the LICENSE file for more details.