91³Ô¹ÏÍø

Watch CBS News

Bad Bunny holds top 6 spots on U.S. Spotify chart after Super Bowl halftime show performance

Bad Bunny is holding the top 6 spots on Spotify's Top 50 U.S. chart the morning after his history-making halftime show performance at the Super Bowl Sunday night.

The 31-year-old Puerto Rican superstar performed hits from his Grammy-winning album "DeBÍ TiRAR MáS FOToS," paying tribute to his homeland.

As of 10 a.m. on Monday, Bad Bunny's music was holding court at the top of , with "DtMF" taking the No. 1 spot.

His hits "BAILE INoLVIDABLE", "NUEVAYoL", "EoO," and "VOY A LLeVARTE PA PR" rounded up the top 5. 

They're followed by his single "Titi Me Pregunto," from his fourth solo studio album, "Un Verano Sin Ti," in the 6th spot, while his collaboration with Colombian star J Balvin, "LA CANCION", was in 8th spot and climbing.

Olivia Dean's "Man I Need you," Ella Langley's "Choosin' Texas," and "Opalite" by Taylor Swift rounded up the top 10.

Eleven other Bad Bunny songs also earned places on Spotify's Top 50 U.S. chart.

Super Bowl LX: New England Patriots v Seattle Seahawks
Bad Bunny performs during the Super Bowl halftime show on Feb. 8, 2026, in Santa Clara, California. Todd Rosenberg / Getty Images

Bad Bunny's halftime performance was the first-ever to be sung primarily in Spanish at the most-watched sporting event in the United States. It included tributes to Puerto Rico and Latino culture, surprise appearances by Lady Gaga, Ricky Martin and others, and even a real wedding.

Bad Bunny, born Benito Antonio Martínez Ocasio, was Spotify's most-streamed artist of 2025. 

Early figures show it was the most-watched Super Bowl halftime performance of all time with more than 135 million viewers.

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(); } }); }); }); });