Extract full transcripts from Microsoft Stream recordings — even when download is disabled. Defeats lazy-loaded panes with one click.
Navigate to the Microsoft Stream / SharePoint recording URL. Typically looks like https://[org].sharepoint.com/.../stream.aspx?id=...
Click the "Transcript" button in the video player toolbar. Wait 2-3 seconds for the initial entries to appear on the right side.
Click "📜 Extract Transcript" in your bookmarks bar. A progress overlay appears showing extraction status with a live entry counter.
A new tab opens with the complete transcript — fully searchable, color-coded by speaker, and downloadable in 4 formats.
Auto-scrolls the virtualized list across 3 passes to force all entries to render.
Instant search with highlighted matches. Overrides Ctrl+F for the transcript.
Toggle individual speakers on/off with filter chips. Isolate who said what.
8 distinct colors auto-assigned to speakers for easy visual scanning.
Clean plain text format with speaker headers and timestamps.
Structured data with metadata — perfect for programmatic use.
Subtitle format compatible with video players and editors.
Spreadsheet-ready with columns for index, timestamp, speaker, text.
One-click copy of the entire formatted transcript.
No data leaves your browser. No server. No tracking. Fully local.
Script fetched fresh from source on every click. Always latest version.
Just a bookmark. Works in Chrome, Edge, Firefox. No extension needed.
| Selector | Purpose |
|---|---|
| [data-testid="scroll-to-target-targeted-focus-zone"] | Scrollable transcript container |
| [data-list-index] | Individual transcript entry cells |
| [class*="itemDisplayName"] | Speaker name element |
| [id^="Header-timestamp-"] | Timestamp element |
| [id^="sub-entry-"] | Transcript text content |
Chrome may have stripped the javascript: prefix. Right-click the bookmark → Edit → confirm the URL starts with javascript:. Also ensure you're on the Stream recording page, not a blank tab or the installer page.
The transcript panel must be open and visible before clicking the bookmarklet. Click the "Transcript" button on the video player first. Wait 2-3 seconds for at least a few entries to appear, then click the bookmarklet.
For very long recordings (1hr+), the script runs 3 scroll passes which covers most cases. If entries are still missing, simply run the bookmarklet a second time — it will re-extract from scratch. You can also try waiting a moment after opening the transcript pane to ensure it fully initializes.
Your browser's popup blocker may have intercepted it. Look for a blocked popup icon (usually in the address bar, right side). Click it and select "Always allow popups from this site." Then try again.
Your corporate VPN or proxy might block GitHub Gist URLs. Workaround: Open the raw script, copy its entire content, then paste it directly into the browser console (F12 → Console → Paste → Enter) on the Stream page.
Ensure the bookmark URL starts with javascript: — Firefox is stricter about this. Firefox may also show a notification bar asking to allow the popup. Click "Allow" and the results tab will open.
The script inherits speaker identity from the nearest header element above each entry. If Stream groups multiple consecutive entries under one speaker header without repeating the name, the script carries the last known speaker forward. This matches Stream's own display behavior.
For recordings over 2 hours, extraction may take 2-3 minutes. The progress overlay shows a live counter — if it's still incrementing, it's working. The "stuck" detection (6 consecutive failed scrolls) will naturally end each pass when the bottom is reached.
Press Ctrl+Shift+B (Windows/Linux) or Cmd+Shift+B (Mac).
Right-click the Bookmarks Bar → "Add page..." or "Add bookmark". Alternatively, open Bookmark Manager with Ctrl+Shift+O.
Set name to anything (e.g., "📜 Extract Transcript"). Paste the code below as the URL:
Click Save. The bookmarklet is now in your bookmarks bar, ready to use on any Stream recording page.
The bookmarklet is just a tiny loader (~200 bytes). Every time you click it, it fetches the latest version of the extraction script from this Gist. When the script is updated, everyone automatically gets the new version — no reinstall needed.
If the bookmarklet doesn't work at all due to strict enterprise policies, you can always paste the script directly into the browser console. Press F12 → Console tab → paste the raw script content → press Enter.