Repository navigation
Releases
v2026.4.6
What changed since v2026.4.5
This release removes the CDP foreground activation that caused Chrome or Edge to take focus during automated navigation and crawl interactions.
Fixed
- Removed the shared
Page.bringToFrontcall from the CDP navigation helper. - Stopped the browser window from being pulled to the foreground on each automated navigation step.
- Kept the existing CDP-driven navigation flow intact so crawl and extraction behavior stays the same apart from focus handling.
Verification
node --check cli.jsbun ./cli.js --helprg -n "bringPageToFront|Page\.bringToFront|activatePage" lib -SBUILD_VERSION=2026.4.6 bun ./build.js./dist/stream-transcript-extractor-macos-arm64 --version
Full Changelog: v2026.4.5...v2026.4.6
v2026.4.5
What changed since v2026.4.4
This release fixes the interactive launcher regression that stopped accepting input after the first menu choice in both the Bun entrypoint and the standalone binary.
Fixed
- Awaited the nested interactive launcher flows before closing the shared readline prompt.
- Restored input handling for the second and subsequent questions in
bun ./cli.js. - Restored the same interactive input flow in compiled binaries launched through the entrypoint.
Verification
node --check cli.jsbun ./cli.js --helpbun ./build.js macos-arm64BUILD_VERSION=2026.4.5 bun ./build.js./dist/stream-transcript-extractor-macos-arm64 --version- Manual PTY validation of
bun ./cli.jsand./dist/stream-transcript-extractor-macos-arm64through the interactive launcher
Full Changelog: v2026.4.4...v2026.4.5
v2026.4.4
What changed since v2026.4.3
This release streamlines the crawl operator flow and makes reruns resume the saved queue cleanly.
Changed
- Added a top-level interactive split between
recommended settingsandcustom settings. - The recommended path now asks for the browser only, then launches the crawl workflow with the pending queue.
- Pending queue execution now retries failed items first, then newly discovered items, then any remaining pending items.
Fixed
- Default crawl queue artifacts now live at stable paths such as
output/crawl.state.jsonandoutput/crawl.batch.jsonso reruns reopen the same queue by default. - The crawler now restores from saved
stateorbatchartifacts, retries previous failures automatically, and merges newly discovered meetings into the same queue. - Older timestamped crawl artifacts are imported and migrated forward automatically on the next run.
Added
- Batch summaries now include resume and queue snapshot metadata so reruns can recover even if only the batch file remains.
Verification
python3 ./scripts/validate_readme.pynode --check cli.jsnode --check lib/network-mode-runtime.jsbun ./cli.js --helpbun ./cli.js crawl --help- Live Edge rerun validated against the existing saved crawl artifacts in
./output
Full Changelog: v2026.4.3...v2026.4.4
v2026.4.3
What changed since v2026.4.2
This is a hotfix release for the compiled binary launch path.
Fixed
- Fixed the no-argument compiled binary launch path for detached launches.
- Added an explicit terminal handoff for compiled binaries that are opened without a usable interactive TTY.
- On macOS, the binary now asks Terminal to relaunch it when needed.
- On Windows, the binary now relaunches itself in a real console window when needed.
Why this release exists
v2026.4.2 shipped the refactored runtime successfully, but the compiled no-argument binary could exit immediately when launched outside an existing terminal session. The supported interactive launcher itself was still correct in a real terminal. This hotfix restores the expected double-click-style launch behavior for compiled binaries.
Verification
- Rebuilt
macos-arm64,macos-x64, andwindows-x64binaries. - Re-verified the CLI help surface and the compiled macOS binary help output.
Full Changelog: v2026.4.2...v2026.4.3
v2026.4.2
What changed since v2026.4.1
This release finishes the runtime refactor and brings the shipped surface back in line with the supported workflow.
Runtime architecture
- Replaced the old monolithic
extract.jsentrypoint with a thincli.jsentrypoint. - Split the implementation into focused modules under
lib/for browser session management, crawl state, meeting discovery, transcript capture, transcript output, DOM helpers, and workflow runtimes. - Kept
extractandcrawlon the same underlying extraction path so batch extraction reuses the same capture logic as single-meeting extraction.
CLI and supported workflow
- Finalized the supported public workflow as
bun ./cli.jsandbun ./cli.js crawl. - Removed the temporary refactor-only JavaScript harnesses and verification scripts from
scripts/. - Removed the unsupported MP4 downloader surface. The tool remains focused on transcript extraction to local
.jsonand.mdoutputs.
Help, docs, and build contract
- Updated the CLI help text to reflect the final workflow and mode boundaries.
- Updated the README to match the new module layout, the final supported workflow, and the actual build outputs.
- Clarified that the build produces standalone macOS and Windows executables, not installer packages.
Build verification
- Rebuilt all release targets successfully:
stream-transcript-extractor-macos-arm64stream-transcript-extractor-macos-x64stream-transcript-extractor-windows-x64.exe
- Smoke-checked the fresh macOS arm64 binary help output after the refactor.
Full Changelog: v2026.4.1...v2026.4.2
v2026.4.1
Full Changelog: v2026.3.3...v2026.4.1
v2026.3.3
Stream Transcript Extractor v2026.3.3
This release now includes the updated guided startup flow, Markdown-first defaults,
and the refreshed operator-facing CLI copy.
What changed
- Added a no-flag guided setup flow for the raw CLI and packaged binaries.
- Exposed mode, browser, profile, output format, output naming, output directory,
diagnostics, browser control port, and keep-browser-open behavior through menus. - Changed the recommended and default output format to Markdown for no-flag and
flag-driven runs that omit--format. - Updated the runtime terminal copy so startup, waiting states, fallback prompts,
and diagnostic output are clearer for non-technical users. - Refreshed the banner and README so the release assets and docs match the current
product flow.
Validation
bun ./extract.js --help- interactive TTY smoke test of the guided no-flag startup flow
python3 scripts/generate_assets.pypython3 scripts/validate_readme.pyBUILD_VERSION=v2026.3.3 bun ./build.js./dist/stream-transcript-extractor-macos-arm64 --version
Release assets
This release includes updated standalone binaries with embedded version v2026.3.3 for:
- macOS arm64
- macOS x64
- Windows x64
v2026.3.2
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--debugis 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. --debugin automatic mode prints the full UI action trace, retry flow, and
fallback reason.--debugin 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.jsonfile unless
--debugis 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
misetask wrappers for the documentation asset and validation flow. - Added Python cache ignores to
.gitignoreso 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
v2026.3.1
Stream Transcript Extractor v2026.3.1
This release turns the extractor into a much easier tool to operate in the
real world. The network path is still the preferred path, but it now gives
better terminal feedback, clearer failure summaries, and a new automatic mode
that tries to perform the fragile UI steps for you before it falls back to
manual help.
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--debugis enabled. - Build standalone binaries for macOS arm64, macOS x64, and Windows x64 with
Bun.
Extraction modes
The extractor now 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
A new mode built on the same network extractor. 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 tool can now explain its state more clearly while it runs:
- Network capture prints a live terminal confirmation when likely transcript
traffic is seen. - Run summaries now 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. --debugin automatic mode prints the full UI action trace, retry flow, and
fallback reason.--debugin network and automatic modes saves detailed request or response
lifecycle data, candidate bodies, WebSocket frames, and richer capture
metadata.- Failed network or automatic runs no longer save a
.network.jsonfile unless
--debugis enabled.
CLI surface
The CLI supports:
--mode <network|automatic|dom>--browser <chrome|edge>--profile <query>--output <name>--output-dir <path>--format <json|md|both>--debug-port <port>--debug--keep-browser-open--help--version
What changed in v2026.3.1
- Added
automaticmode for transcript-panel automation on top of the network
extractor. - Added terminal confirmation when likely transcript traffic is detected during
capture. - Added clearer fallback summaries so users can understand why automatic mode
could not finish without help. - Added automatic-mode debug logging for UI actions, retries, and fallback
reasons. - Changed run summaries to report potentially relevant responses separately from
actual parsed transcript payload matches. - Gated failed-run
.network.jsoncreation behind--debug. - Updated README and help text to document the new mode and diagnostics.
Release assets
This release includes standalone binaries with embedded version
v2026.3.1 for:
- macOS arm64
- macOS x64
- Windows x64