ytdl-org/youtube-dl · error · ExtractorError
Unknown navigationType
Error message
Unknown navigationType
What it means
Raised by TVNowShowIE (playlist extractor) when the show's navigation type from the API is neither 'season' nor one of the handled navigation values (e.g. the 'staffel'/annual branches above). Unlike most errors here it is NOT marked expected=True, so youtube-dl treats it as an extractor bug/failure rather than normal content unavailability.
Source
Thrown at youtube_dl/extractor/tvnow.py:484
continue
month_number = int_or_none(list(month_dict.keys())[0])
if month_number is None:
continue
entries.append(self.url_result(
'%s/%04d-%02d' % (base_url, year, month_number),
ie=TVNowAnnualIE.ie_key()))
elif navigation == 'season':
for item in items:
if not isinstance(item, dict):
continue
season_number = int_or_none(item.get('season'))
if season_number is None:
continue
entries.append(self.url_result(
'%s/staffel-%d' % (base_url, season_number),
ie=TVNowSeasonIE.ie_key()))
else:
raise ExtractorError('Unknown navigationType')
return self.playlist_result(entries, show_id)
View on GitHub (pinned to 956b8c5855)
Solutions
- Update youtube-dl / switch to yt-dlp — newer builds handle additional navigationTypes.
- Extract the concrete season URL (…/staffel-N) directly with TVNowSeasonIE instead of the show root.
- Report the URL as a bug to the tracker so the missing navigationType is added.
- As a last resort, enumerate episode URLs manually from the website.
Defensive patterns
Strategy: validation
Validate before calling
resp = call_tvnow_show_api(show_id)
nav = resp.get('navigation') or resp.get('navigationType')
if nav not in ('season', 'staffel', 'annual'):
raise ValueError('Unsupported navigationType: %r — extract season URLs directly' % nav) Type guard
def known_navigation(nav) -> bool:
return nav in ('season', 'staffel', 'annual') Try / catch
try:
ydl.extract_info(show_url)
except ExtractorError as e:
if 'Unknown navigationType' in str(e):
fallback_to_season_urls(show_url) # enumerate /staffel-N links manually
else:
raise Prevention
- Extract concrete season URLs instead of the show root when the layout is unknown.
- Watch for API layout changes; this error is unexpected and usually means the extractor is outdated.
When it happens
Trigger: Extracting a tvnow show URL where the API response's navigation field (config/boards payload) has an unexpected value such as 'episode', 'movie', or a newly introduced type the extractor does not enumerate.
Common situations: TVNow introducing a new show layout (e.g. single-movie shows, new collections) after this youtube-dl version shipped; non-season-structured shows like one-off specials.
Related errors
- Invalid url for track %d of album url %s
- The page doesn't contain any tracks
- Received invalid JSON data
- %s: No songs found, try using proxy
- unable to download video webpage: %s
AI-assisted analysis of ytdl-org/youtube-dl@956b8c5855 (2026-08-14).
Data as JSON: /api/errors/b8b2b5743acb2c9b.
Report an issue: GitHub.