Skip to content

v2026.3.2

Choose a tag to compare

@benjaminwestern benjaminwestern released this 01 Apr 01:24
· 11 commits to main since this release

Stream Transcript Extractor v2026.3.2

This release keeps the extractor behavior from v2026.3.1 and improves the
packaging around it. The tool surface is the same network-first Stream
transcript extractor, but the documentation is now much stronger, more
maintainable, and easier to operate from.

What this tool does

Stream Transcript Extractor lets you pull Microsoft Teams recording transcripts
from Microsoft Stream by driving your signed-in Chrome or Edge profile instead
of depending on Microsoft Graph transcript APIs.

It can:

  • Use your local Chrome or Edge profile, including profile selection by name,
    email, or directory.
  • Attach to a browser launched in remote debugging mode with an isolated
    temporary profile wrapper.
  • Extract transcript payloads directly from Microsoft Stream network traffic.
  • Decrypt transcript payloads when Stream serves encrypted transcript bodies.
  • Parse transcript payloads from JSON and WebVTT-style responses.
  • Fall back to DOM extraction when the network transport is not usable.
  • Write transcript output as JSON, Markdown, or both.
  • Capture meeting metadata such as title, date, source URL, creator details,
    and recording start or end times when available.
  • Save network capture diagnostics for successful runs, and for failed runs
    when --debug is enabled.
  • Build standalone binaries for macOS arm64, macOS x64, and Windows x64 with
    Bun.

Extraction modes

The extractor supports three modes:

  • network
    The recommended mode. Open the Stream page with the Transcript panel closed,
    arm capture, then open the panel. This mode captures transcript-related
    network responses, ranks likely candidates, loads response bodies, decrypts
    when necessary, and extracts transcript entries from the payload.
  • automatic
    The network extractor with UI assistance layered on top. After you select the
    page, the tool reloads with capture armed, tries to locate and open the
    Transcript panel, nudges the panel to trigger lazy loading, retries when
    needed, waits for transcript-like traffic, and only then falls back to
    manual assistance.
  • dom
    The fallback mode. This mode scrolls the rendered Stream transcript UI and
    extracts entries from the visible DOM when the network path is unsuitable or
    when you want to inspect how the rendered transcript behaves.

Outputs and diagnostics

The extractor can explain its state more clearly while it runs:

  • Network capture prints a live terminal confirmation when likely transcript
    traffic is seen.
  • Run summaries distinguish between potentially relevant network responses and
    actual parsed transcript payload matches.
  • Automatic mode explains why it fell back to manual help, including what it
    found, what it clicked, and what signal it failed to confirm.
  • --debug in automatic mode prints the full UI action trace, retry flow, and
    fallback reason.
  • --debug in network and automatic modes saves detailed request or response
    lifecycle data, candidate bodies, WebSocket frames, and richer capture
    metadata.
  • Failed network or automatic runs do not save a .network.json file unless
    --debug is enabled.

What changed in v2026.3.2

  • Reworked the README so the source workflow, extraction modes, outputs,
    troubleshooting flow, and release path are clearer and easier to scan.
  • Added generated documentation assets for the README, including a banner and
    section header graphics with a documented source of truth.
  • Added documentation maintenance scripts for regenerating README assets and
    validating local README references.
  • Added mise task wrappers for the documentation asset and validation flow.
  • Added Python cache ignores to .gitignore so the repository stays clean when
    the docs scripts are run locally.

Release assets

This release includes standalone binaries with embedded version
v2026.3.2 for:

  • macOS arm64
  • macOS x64
  • Windows x64