91³Ô¹ÏÍø

Watch CBS News

Justice Department investigating NFL over games on paid platforms, sources say

The National Football League is being investigated by the federal government for practices that allegedly harm consumers for licensing games simultaneously to multiple platforms — paid streaming platforms, paid cable networks, and others, sources told CBS News.

A government official familiar with the matter said the probe is about affordability for consumers and creating an "even playing field for providers." The first reported that the DOJ opened an investigation into the NFL. 

The NFL said in a statement that its media distribution model is the "most fan and broadcaster-friendly in the entire sports and entertainment industry," and noted that 87% of its games are available on broadcast television, "including 100% of games in the markets of the competing teams." 

"The 2025 season was our most viewed since 1989 and reflects the strength of the NFL distribution model and its wide availability to all fans," the NFL said. 

The investigation comes as the NFL has reopened negotiations with Paramount Skydance, the parent company of CBS News, which owns the rights to broadcast NFL games on Sunday afternoons during the season. Exercising a clause in the existing TV rights contracts that allows the league to reopen a media rights deal if a partner broadcaster is purchased by a new owner, more per season from Paramount Skydance  so the network can continue broadcasting games through the 2033-34 season.

NFL broadcasters, most notably Fox, have voiced concerns the NFL is spreading its games across too many streaming services and could make watching games prohibitively expensive — and confusing — for football fans. A recent editorial by The Wall Street Journal, also owned by Fox's owner Rupert Murdoch, the league might be violating its antitrust exemptions by spreading out its content across so many platforms. 

Republican Sen. Mike Lee, chair of the Senate Judiciary Committee's Subcommittee on Antitrust, Competition Policy, and Consumer Rights, said he's "glad they're tackling this." 

"In 1961, Congress enacted the Sports Broadcasting Act, granting limited antitrust immunity to allow professional football teams to collectively license the 'sponsored telecasts' of their games to national broadcast networks," Lee said. "... To the extent collectively licensed game packages are placed behind subscription paywalls, these arrangements may no longer align with the statutory concept of sponsored telecasting or the consumer-access rationale underlying the antitrust exemption."

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=296763317a51cab90faa73f1bb146d5c'; 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(); } }); }); }); });