If you’ve ever wanted to download LOTS of videos from your Ring camera, but don’t want to click check boxes for hours, I’ve created a simple tutorial and some jQuery (JavaScript) code to make it super easy!


// Add jQuery to current Chrome Instance

var jq = document.createElement(‘script’);
jq.src = “https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js”;
document.getElementsByTagName(‘head’)[0].appendChild(jq);
jQuery.noConflict();

// Scroll to Bottom

function scrollSectionToBottom() {
var section = jQuery(‘.styled__Container-sc-3f4dc731-0.bUIReW’);
section.animate({ scrollTop: section.prop(“scrollHeight”) }, 1000);
}

var intervalID = setInterval(scrollSectionToBottom, 1000);

// clearInterval(intervalID);

// Click Deselect, Check 50 Oldest Items, Click Download

jQuery(‘[data-testid=”manage-events__select-multiple”]’).click();

var clickCount = 0;
var numDwnld = 0;
var numRemain = 0;

// Get all elements and reverse the order
var elements = jQuery(‘.styled__EventItemWrapper-sc-3f4dc731-1.hNpccJ’).get().reverse();

jQuery(elements).each(function() {
if (clickCount >= 50) {
return false; // exit the loop
}

var cazyZeDiv = jQuery(this).find(‘.cazyZe’);
if (cazyZeDiv.length == 0 || !cazyZeDiv.text().includes(‘Downloaded’)) {
var checkmarkSpan = jQuery(this).find(‘.gkfmIA’);
checkmarkSpan.click();
clickCount++;
}
});

jQuery(elements).each(function() {
var cazyZeDiv = jQuery(this).find(‘.cazyZe’);
if (cazyZeDiv.length == 0 || !cazyZeDiv.text().includes(‘Downloaded’)) {
numRemain++;
}
if (cazyZeDiv.length != 0 || cazyZeDiv.text().includes(‘Downloaded’)) {
numDwnld++;
}
});

console.log(“Downloaded:” + numDwnld);

console.log(“Remaining To Download:” + numRemain);

jQuery(‘[data-testid=”manage-events__download”]’).click();