ytdl-org/youtube-dl · error · ExtractorError
This video is only available via cable service provider subs
Error message
This video is only available via cable service provider subscription. You may want to use --cookies.
What it means
Raised by the FOX extractor when the api2.fox.com call returns 403 and the parsed entitlementIssues contain an entry with errorCode 1005. That code specifically means the content requires an MVPD (cable TV provider) subscription that the current session does not have. Marked expected=True; the suggested remedy in the message itself is to supply cookies.
Source
Thrown at youtube_dl/extractor/fox.py:74
_access_token = None
def _call_api(self, path, video_id, data=None):
headers = {
'X-Api-Key': self._API_KEY,
}
if self._access_token:
headers['Authorization'] = 'Bearer ' + self._access_token
try:
return self._download_json(
'https://api2.fox.com/v2.0/' + path,
video_id, data=data, headers=headers)
except ExtractorError as e:
if isinstance(e.cause, compat_HTTPError) and e.cause.code == 403:
entitlement_issues = self._parse_json(
e.cause.read().decode(), video_id)['entitlementIssues']
for e in entitlement_issues:
if e.get('errorCode') == 1005:
raise ExtractorError(
'This video is only available via cable service provider '
'subscription. You may want to use --cookies.', expected=True)
messages = ', '.join([e['message'] for e in entitlement_issues])
raise ExtractorError(messages, expected=True)
raise
def _real_initialize(self):
if not self._access_token:
mvpd_auth = self._get_cookies(self._HOME_PAGE_URL).get('mvpd-auth')
if mvpd_auth:
self._access_token = (self._parse_json(compat_urllib_parse_unquote(
mvpd_auth.value), None, fatal=False) or {}).get('accessToken')
if not self._access_token:
self._access_token = self._call_api(
'login', None, json.dumps({
'deviceId': compat_str(uuid.uuid4()),
}).encode())['accessToken']
View on GitHub (pinned to 956b8c5855)
Solutions
- Log in to fox.com with your cable provider in a browser, export cookies.txt, and run with --cookies
- Verify the provider subscription is active and includes the channel of the requested show
- Confirm you are not geo-blocked (FOX enforces US-only) by using a US IP
- If you have no cable subscription, the content is not obtainable via this extractor
Example fix
# before youtube_dl 'https://www.fox.com/watch/empire-some-episode/' # ERROR: This video is only available via cable service provider subscription... # after youtube_dl --cookies fox_cookies.txt 'https://www.fox.com/watch/empire-some-episode/'
Defensive patterns
Strategy: try-catch
Try / catch
try:
ydl.extract_info(url)
except ExtractorError as e:
if 'cable service provider subscription' in str(e):
rerun_with_mvpd_cookies(url) # cookies exported after provider login Prevention
- Export cookies from a browser logged into fox.com via your cable provider before extraction
- Treat this error as a hard stop unless credentials change — retrying without cookies never helps
When it happens
Trigger: _call_api('vodplayer/<id>') gets a 403 whose body lists entitlementIssues; one has errorCode == 1005. Occurs when no mvpd-auth cookie / access token with a valid TV-provider login is present, or the linked provider subscription lacks the channel carrying the show.
Common situations: Downloading FOX or National Geographic shows without authenticating; cookies exported from a free FOX account instead of one linked to a cable provider; provider subscription lapsed so entitlement checks fail even with cookies.
Related errors
- Cannot download file. Are you logged in?
- ', '.join([e['message'] for e in entitlement_issues])
- Unable to log in
- The video is not available, Facebook said: "%s"
- error['description']
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/09032aaf3fc11fd6.
Report an issue: GitHub.