Last active
March 26, 2025 09:39
-
-
Save johankj/a05e2e18aee7a4a0e6c8b3789daaed96 to your computer and use it in GitHub Desktop.
Zoom Easy Downloader snippet to download presentation view and main camera video
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Copy and paste this code into your Developer Tool Console on a webpage for viewing recorded Zoom sessions (zoom.us/rec/play). | |
// It will show two links: One for the presenter view and one for the slides. | |
// Alt-click on the link or right-click and "Save link as..." to download the video. | |
function bringBackDefault(event) { | |
event.returnValue = true; | |
(typeof event.stopPropagation === 'function') && event.stopPropagation(); | |
(typeof event.cancelBubble === 'function') && event.cancelBubble(); | |
} | |
function enableContextMenu() { | |
document.addEventListener("contextmenu", bringBackDefault, true); | |
} | |
enableContextMenu(); | |
function create_banner() { | |
let text = `<div id="zoom-downloader-container" style="position:fixed;z-index:99999999999999999999;right:0px;bottom:0px;width:100%;padding:5px 20px 5px 20px;border:1px solid #2D8CFF;font-size:20px;background-color:#2D8CFF;font-weight:bold;text-align:center;"><a style="color:white !important" id="zoom-downloader-1" download="proposed_file_name"></a> | <a style="color:white !important" id="zoom-downloader-2" download="proposed_file_name"></a></div>`; | |
let div = document.getElementById("zoom-downloader-container") | |
if (div) { | |
div.innerHTML = text; | |
return | |
} | |
div = document.createElement("div"); | |
div.innerHTML = text; | |
document.body.appendChild(div) | |
} | |
function find_video() { | |
let videosElements = document.getElementsByTagName("video"); | |
let speakerView = ""; | |
let presentationView = ""; | |
for (let i = 0; i < videosElements.length; i++) { | |
if (videosElements[i].src.includes("_Recording_avo_")) { | |
speakerView = videosElements[i].src; | |
} | |
if (videosElements[i].src.includes("_Recording_as_")) { | |
presentationView = videosElements[i].src; | |
} | |
} | |
return [speakerView, presentationView] | |
} | |
function create_links() { | |
create_banner(); | |
let videos = find_video(); | |
let speakerView = videos[0]; | |
let presentationView = videos[1]; | |
let speakerViewLink = document.getElementById("zoom-downloader-1"); | |
let presentationViewLink = document.getElementById("zoom-downloader-2"); | |
speakerViewLink.href = speakerView; | |
speakerViewLink.innerText = speakerView ? "Download Speaker View" : ""; | |
presentationViewLink.href = presentationView; | |
presentationViewLink.innerText = presentationView ? "Download Presentation View" : ""; | |
} | |
create_links() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment