ytdl-org/youtube-dl · error · ExtractorError
DRM protected
Error message
DRM protected
What it means
Raised by Tele5IE when the joyn/disco _get_disco_api_info call fails with an ExtractorError whose message is 'Missing deviceId in context'. That upstream message is the platform's response when the asset is DRM-protected (device registration required), so the extractor rewrites it into the clearer 'DRM protected' (expected=True, chained via cause).
Source
Thrown at youtube_dl/extractor/tele5.py:91
'url': 'https://www.tele5.de/anders-ist-sevda/',
'only_matching': True,
}]
def _real_extract(self, url):
video_id = self._match_id(url)
webpage = self._download_webpage(url, video_id)
player_element = self._search_regex(r'(<hyoga-player\b[^>]+?>)', webpage, 'video player')
player_info = extract_attributes(player_element)
asset_id, country, realm = (player_info[x] for x in ('assetid', 'locale', 'realm', ))
endpoint = compat_urlparse.urlparse(player_info['endpoint']).hostname
source_type = player_info.get('sourcetype')
if source_type:
endpoint = '%s-%s' % (source_type, endpoint)
try:
return self._get_disco_api_info(url, asset_id, endpoint, realm, country)
except ExtractorError as e:
if getattr(e, 'message', '') == 'Missing deviceId in context':
raise ExtractorError('DRM protected', cause=e, expected=True)
raise
View on GitHub (pinned to 956b8c5855)
Solutions
- Accept it: youtube-dl does not circumvent DRM; this content cannot be downloaded with this tool.
- Check whether the same clip has a non-DRM source (e.g. the broadcaster's YouTube channel or an older free clip URL).
- Play it in a browser/app with an entitled account if you simply want to watch it.
- Do not retry — the refusal is permanent for that asset, not transient.
Defensive patterns
Strategy: try-catch
Try / catch
try:
info = ydl.extract_info(url)
except ExtractorError as e:
if e.expected and 'DRM' in str(e):
log.info('DRM-protected asset, not downloadable: %s', url)
return None
raise Prevention
- Never expect youtube-dl to fetch DRM content — it does not bypass protection.
- Check for non-DRM copies (broadcasters' YouTube channels) before queueing joyn/Tele5 URLs.
- Do not retry DRM refusals; they are permanent.
When it happens
Trigger: Extracting a tele5.de video whose <hyoga-player> element resolves to a joyn disco asset that requires a registered DRM device; the API returns 'Missing deviceId in context' and the extractor translates it.
Common situations: Joyn/Tele5 premium or live content behind DRM; free clips that moved into DRM-protected delivery after platform changes; users expecting youtube-dl to bypass DRM (it does not).
Related errors
- This video is DRM protected.
- This video is DRM protected.
- This video is DRM protected.
- This video is DRM protected.
- This video is DRM protected.
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/0c7242a265e39ad9.
Report an issue: GitHub.