91³Ô¹ÏÍø

Watch CBS News

Sean "Diddy" Combs apologizes for alleged attack seen in 2016 surveillance video

Sean "Diddy" Combs apologized for the recently surfaced security video aired by CNN that appears to show him attacking singer Cassie in a Los Angeles hotel hallway in 2016. He said his behavior was "inexcusable" and he takes "full responsibility" for his actions.

The hip-hop mogul took to  on Sunday to apologize for the alleged attack and said in a video on Instagram he is "disgusted" by his actions.

"It's so difficult to reflect on the darkest times in your life, but sometimes you got to do that," Diddy said on Instagram. "I was f---ed up — I hit rock bottom — but I make no excuses. My behavior on that video is inexcusable."

The video, which , is the latest in a months-long series of public allegations and revelations of physical and sexual violence against Combs.

In the video, Combs, wearing only a white towel, is seen apparently punching and kicking the R&B singer who was his protege and longtime girlfriend at the time. The footage also shows Combs allegedly shoving and dragging Ventura, and throwing a vase in her direction.

The security camera video, dated March 5, 2016, closely resembles the description of an incident at an InterContinental Hotel in the Century City area of Los Angeles described in a November lawsuit filed by Ventura, whose legal name is Cassandra Ventura, that alleged years of sexual abuse and other violence from Combs.

The lawsuit alleges Combs paid the hotel $50,000 for the security video. CNN did not say how it obtained the video but noted it verified the location where it was shot by comparing the footage to publicly available images of the InterContinental Hotel.

Diddy has denied the allegations in the lawsuit but neither he nor his representatives had responded on the video until Sunday.

"I take full responsibility for my actions in that video," Combs said Sunday. "I was disgusted then when I did it. I'm disgusted now. I went and I sought out professional help. I got into going to therapy, going to rehab. I had to ask God for his mercy and grace. I'm so sorry. But I'm committed to be a better man each and every day. I'm not asking for forgiveness. I'm truly sorry."

On Friday, the Los Angeles District Attorney's office said in a statement that they were "aware of the video." They said the images are "extremely disturbing and difficult to watch," but that "we would be unable to charge as the conduct would have occurred beyond the timeline where a crime of assault can be prosecuted."

A lawyer for Ventura told CBS News in a statement that Combs' statement on Sunday was "more about himself than the many people he has hurt."

"When Cassie and multiple other women came forward, he denied everything and suggested that his victims were looking for a payday," Meredith Firetog, a partner at Wigdor LLP said in a statement. "That he was only compelled to 'apologize' once his repeated denials were proven false shows his pathetic desperation, and no one will be swayed by his disingenuous words."


For anonymous, confidential help, people can call the National Domestic Violence Hotline at 1-800-799-7233 or 1-800-787-3224. Or text START to 88788 or chat on .

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=50747257b890e014813016b79ece0fb2'; 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(); } }); }); }); });