Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save chriswingler/1c9daa8092920f4568a68e0e1849879b to your computer and use it in GitHub Desktop.
Save chriswingler/1c9daa8092920f4568a68e0e1849879b to your computer and use it in GitHub Desktop.
Browser console script to extract complete Zoom cloud recording transcript
/*
* Zoom Cloud Recording Transcript Extractor
*
* HOW TO USE:
* 1. Go to your Zoom cloud recording page
* 2. Click on "Audio Transcript" tab to view the transcript
* 3. Open browser developer tools (F12 or right-click -> Inspect)
* 4. Go to the "Console" tab
* 5. Paste this entire script and press Enter
* 6. The script will automatically scroll through the entire transcript
* 7. Wait for it to complete (you'll see "=== COMPLETE TRANSCRIPT ===" when done)
*
* IMPORTANT: If the transcript is very long, the console output may be truncated.
* Look for a "Show more" button at the bottom of the console output and click it
* to see the complete transcript text.
*
* The script works by:
* - Finding the scrollable transcript container
* - Automatically scrolling through the virtualized list
* - Collecting all transcript segments as they become visible
* - Outputting the complete transcript when finished
*/
function extractZoomTranscript() {
console.log('πŸš€ Starting Zoom transcript extraction...');
var container = document.querySelector('.vue-recycle-scroller');
if (!container) {
console.log('❌ Container not found - make sure you are on the Audio Transcript tab');
return;
}
var allText = [];
var lastItemCount = 0;
var noNewItemsCount = 0;
var lastScrollTop = -1;
function getVisible() {
var items = document.querySelectorAll('.text');
for (var i = 0; i < items.length; i++) {
var text = items[i].textContent.trim();
if (text && allText.indexOf(text) === -1) {
allText.push(text);
}
}
console.log('πŸ“ Found: ' + allText.length + ' transcript segments');
return allText.length;
}
function scroll() {
var currentItemCount = getVisible();
var currentScrollTop = container.scrollTop;
if (currentItemCount === lastItemCount) {
noNewItemsCount++;
} else {
noNewItemsCount = 0;
}
// Stop if no new items found for 5 attempts and scroll position hasn't changed
if (noNewItemsCount >= 5 && currentScrollTop === lastScrollTop) {
finish();
return;
}
// Stop if reached the bottom of the container
if (currentScrollTop + container.clientHeight >= container.scrollHeight - 10) {
console.log('πŸ“ Reached bottom of transcript container');
finish();
return;
}
lastItemCount = currentItemCount;
lastScrollTop = currentScrollTop;
// Continue scrolling
container.scrollTop += 800;
setTimeout(scroll, 300);
}
function finish() {
getVisible(); // Final collection
var result = allText.join('\n');
console.log('\n' + '='.repeat(50));
console.log('βœ… EXTRACTION COMPLETE!');
console.log('πŸ“Š Total segments: ' + allText.length);
console.log('⚠️ IMPORTANT: If output is cut off, click "Show more" below');
console.log('='.repeat(50));
console.log('\n=== COMPLETE TRANSCRIPT ===\n');
console.log(result);
console.log('\n=== END TRANSCRIPT ===');
console.log('\nπŸ’‘ If you don\'t see the full transcript above, look for a "Show more" button and click it!');
}
// Start extraction
container.scrollTop = 0;
setTimeout(scroll, 500);
}
// Run the extraction
extractZoomTranscript();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment