Skip to main content

amagi-listen

Give Claude a podcast, meeting recording, or any audio/video file and get back a transcript it can actually use — chaptered, timestamped, and split into speaker turns.

demo

amagi-listen downloads the audio if you give it a URL (same yt-dlp pipeline as amagi-watch), transcribes it locally with faster-whisper, splits the transcript into chapters at the longest pauses, and optionally marks probable speaker turn breaks. Everything lands in one index.md.

Everything runs locally. There are no API keys and nothing leaves your machine except yt-dlp downloading the source, if you pass a URL.

Install

pipx install amagi-listen

You also need these on your PATH:

Python 3.10 or newer. faster-whisper is installed as a dependency; the first transcription downloads the Whisper model you pick.

Usage

amagi-listen <file-or-url> [-o OUTDIR] [--model small] [--chapters 6] [--speakers] [--pause-threshold 1.5]
Option What it does
-o, --outdir Where run folders go (default amagi_listen_out)
--model faster-whisper size: tiny, base, small (default), medium, large-v3
--chapters Target number of chapters, split at the longest pauses (default 6)
--speakers Mark speaker turn breaks (pause-length heuristic — see Limitations)
--pause-threshold Seconds of silence that counts as a new turn (default 1.5)
--keep-audio Keep the downloaded/normalized audio file

Examples:

# A local meeting recording
amagi-listen ./standup_2026-10-19.m4a -o runs --speakers

# A podcast episode by URL
amagi-listen "https://example.com/episode-42" -o runs --chapters 8

The last line of stdout is the path to the run folder.

Output

Each run writes <outdir>/<name>/:

  • index.md: the file to read. Chapters in time order, each with an extractive title (the first ~12 words of its first line — not an LLM summary) and its timestamped lines.
  • transcript.md: the flat, unchaptered transcript.
  • metadata.json: title, source, duration, and segment/chapter counts.

Real output from a short synthesized two-speaker test clip:

# demo_meeting

- Source: demo_meeting.wav
- Speaker turns: pause-length heuristic, not voice identification

## Chapters

### Chapter 1 — [00:00] Welcome to the AmagiLabs Weekly Sync.

**[00:00]** Speaker A: Welcome to the AmagiLabs Weekly Sync.
**[00:03]** Speaker A: Today we are covering three topics.
**[00:08]** Speaker A: First, the amagi screen launch went well.

### Chapter 2 — [00:11] Second, amagi listen is almost ready to ship.

**[00:11]** Speaker A: Second, amagi listen is almost ready to ship.

(That test clip used one synthesized voice for both halves, split only by a silence gap — which is why it's one speaker label throughout. See Limitations below.)

Use it as a Claude Code skill

The repo includes a SKILL.md. Copy it into your skills folder:

mkdir -p ~/.claude/skills/amagi-listen
cp SKILL.md ~/.claude/skills/amagi-listen/SKILL.md

When you paste an audio file or URL and ask what was said, Claude runs amagi-listen and reads index.md.

Limitations

  • --speakers is a pause-length heuristic, not voice-based diarization. It has no model of who is speaking — only that a long-enough silence probably means a new turn. Two people talking without a pause between them get mislabeled as one speaker. Treat the labels as approximate.
  • Chapter titles are extractive (the first words of the chapter), not generated summaries — amagi-listen doesn't call an LLM.
  • Whisper on CPU runs at roughly real time or slower with small.
  • URL downloads depend on yt-dlp supporting the site and the content being publicly accessible.

If amagi-listen saves you from replaying a two-hour recording, a star helps other people find it.

Only download recordings you have the right to download. Follow each platform's terms of service and respect copyright. amagi-listen is for personal research and analysis.

License

MIT. Copyright (c) 2026 AmagiLabs (Amagisolutionsgroup, Inc.). See LICENSE.

Built by AmagiLabs.

Metadata

Release files for amagi-listen 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amagi-listen 0.1.0
File Size Uploaded Provenance
amagi_listen-0.1.0.tar.gz 9.9 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for amagi-listen 0.1.0
File Interpreter ABI Platform
amagi_listen-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.5 kB

Release files / amagi_listen-0.1.0.tar.gz

Download URL amagi_listen-0.1.0.tar.gz
Size 9.9 kB
Tags Source
SHA-256 checksum
How to use checksums
65a0234da6fb10a53adc27ec55b2eb8f4d13f90baccf21f8c1fa4eb963d9e096
BLAKE2b-256 checksum
How to use checksums
6002bf6659762d2b0a5f681b91b9251a544fd06be401edd45af82c9ac7c4f946
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / amagi_listen-0.1.0-py3-none-any.whl

Download URL amagi_listen-0.1.0-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dbc69c8e27ce09ee6078f33459d94374301a2f19f4c7f2d7d22a05f0c4cec78d
BLAKE2b-256 checksum
How to use checksums
065ac48e38cfcc08429ded5d3f43c9786c539f77e7cd80ae3bfc410342146b44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for amagi-listen 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for amagi_listen-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page