91³Ô¹ÏÍø

Watch CBS News

Newly released video shows inside Uvalde school during shooting

Newly released video from the school shooting in Uvalde, Texas, shows the gunman entering Robb Elementary School and how police responded to the massacre. 

The gunman walks down an empty hallway, stopping to fire into classrooms, according to the footage released by the Austin American-Statesman. A student spots the shooter as he rounded a corner and then runs away. 

by on

Three minutes later, the first police officers enter the building. They are shot at by the gunmen and they run away. 

The video then jumps to 19 minutes later, where there's a more heavily armed police presence in the hallway, but still no entry into the classrooms where the gunman fired more than 100 rounds, killing 19 children and two teachers. 

The newspaper removed the sounds of children screaming, but the noise from hundreds of rounds fired by the shooter can be heard in the video. 

The video is difficult to watch, as officers stand in the hallway for long periods of time. One officer walks over to a wall-mounted dispenser of hand sanitizer in the midst of the carnage. 

Seventy-seven minutes into the edited video, the breach is made into the classroom and a barrage of gunfire can be heard. 

The video's release has been part of a fight between numerous government officials, including the Uvalde district attorney, who opposed releasing it. 

Those calling for its release, including victims' families, hoped it would help explain the delayed response and why officers put their own safety ahead of those of the children. But the video has only raised more questions.

"I am deeply disappointed this video was released before all of the families who were impacted that day and the community of Uvalde had the opportunity to view it as part of Chairman Dustin Burrows' plan. Those most affected should have been among the first to see it," Department of Public Safety director Steven McCraw said in a statement. "This video provides horrifying evidence that the law enforcement response to the attack at Robb Elementary on May 24 was an abject failure. In law enforcement, when one officer fails, we all fail." 

State Rep. Dustin Burrows said that while he was "glad that a small portion is now available for the public" he believes "watching the entire segment of law enforcement's response, or lack thereof, is also important." Burrows also said he was disappointed the victims' families did not have the opportunity to watch the video before it was released. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=fd53910ecf4604072044ab7c46d9b028'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });