91³Ô¹ÏÍø

Watch CBS News

Katie Ledecky is leaving the Paris Olympics with 4 medals. She'll also be carrying the flag for Team USA.

When Katie Ledecky — four-time Olympian, 14-time medalist — found out she would carry the American flag at the 2024 Paris Olympics closing ceremonies, she was moved to tears. 

"It's such an honor," said Ledecky. Teammate Bobby Finke gave her the good news Thursday. "He FaceTimed me to tell me the news, and I started crying. And it's really just such an honor to represent this team with so many great performances this week from all sports." 

It's an honor that Team USA's most decorated female Olympian will share with men's four rower Nick Mead, who was part of the team that ended a 64-year medal drought for the U.S. 

The closing ceremony at the Stade de France will be the first one Ledecky will attend. 

The Bethesda, Maryland, native had an impressive performance at the Games coming home with four medals, winning gold in the 800m and 1500m freestyles, silver in the 4x200m relay and bronze in the 400m freestyle. And, she said, she is "not done yet." She plans to keep training — and keep pushing her teammates as well — ahead of the 2028 Summer Games in Los Angeles

"By the time LA comes around in four years, we want to be better," said Ledecky. "We want to be better than we were here in Paris. And I think that's definitely doable. We're gonna have the home crowd in front of us, and we want to put on a good show for them." 

While Ledecky admits she never saw herself as an Olympian as a kid, she did know right away how much she loved being in the pool. 

"I started swimming for summer league swim team Palisades Porpoises when I was 6 years old," Ledecky said. "What made me love the sport right from the start, the Sharks and Minnows games after the swim meets, the barbecues, the friends that I have, I still have, to this day." 

And to young swimmers starting their journey, she said: "Just keep swimming and have as much fun as you can with the sport." 

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