TeamNewPipe/NewPipe · error · ResolverException
Unsupported type: {}
Error message
Unsupported type: {} What it means
Thrown by PlaybackResolver.buildLiveMediaSource when the live-stream content type passed in is not one of SS, DASH, or HLS (i.e. it is CONTENT_TYPE_OTHER or CONTENT_TYPE_RTSP, or any other/unrecognized value). The resolver can only build a live MediaSource for SmoothStreaming, DASH, and HLS; other live types are unsupported. Wrapped as a ResolverException (a checked Exception).
Source
Thrown at app/src/main/java/org/schabi/newpipe/player/resolver/PlaybackResolver.java:243
final MediaSource.Factory factory;
switch (type) {
case C.CONTENT_TYPE_SS:
factory = dataSource.getLiveSsMediaSourceFactory();
break;
case C.CONTENT_TYPE_DASH:
if (metadata.getServiceId() == ServiceList.YouTube.getServiceId()) {
factory = dataSource.getLiveYoutubeDashMediaSourceFactory();
} else {
factory = dataSource.getLiveDashMediaSourceFactory();
}
break;
case C.CONTENT_TYPE_HLS:
factory = dataSource.getLiveHlsMediaSourceFactory();
break;
case C.CONTENT_TYPE_OTHER:
case C.CONTENT_TYPE_RTSP:
default:
throw new ResolverException("Unsupported type: " + type);
}
return factory.createMediaSource(
new MediaItem.Builder()
.setTag(metadata)
.setUri(Uri.parse(sourceUrl))
.setLiveConfiguration(
new MediaItem.LiveConfiguration.Builder()
.setTargetOffsetMs(LIVE_STREAM_EDGE_GAP_MILLIS)
.build())
.build());
}
//endregion
//region Generic media sources
static MediaSource buildMediaSource(final PlayerDataSource dataSource,
final Stream stream,View on GitHub (pinned to 9e8be09156)
Solutions
- Verify the content type being passed; ensure the stream is actually DASH, HLS, or SS before calling buildLiveMediaSource.
- Filter out unsupported live content types earlier and surface a user-friendly 'unsupported stream' message instead of attempting playback.
- If RTSP or another type must be supported, add the corresponding MediaSource.Factory branch and handling.
- Update the extractor: a newer version may correctly classify the stream's content type.
Defensive patterns
Strategy: validation
Validate before calling
if (type != C.CONTENT_TYPE_SS && type != C.CONTENT_TYPE_DASH && type != C.CONTENT_TYPE_HLS) {
// do not call buildLiveMediaSource; notify user instead
} Try / catch
try {
return buildLiveMediaSource(dataSource, url, type, metadata);
} catch (final ResolverException e) {
// surface 'live stream type not supported' to the user
throw e;
} Prevention
- Check the content type is SS/DASH/HLS before calling buildLiveMediaSource.
- Filter unsupported live content types in the UI so they are never selected for playback.
- Keep the extractor up to date so content types are classified correctly.
When it happens
Trigger: buildLiveMediaSource is called with a type value of C.CONTENT_TYPE_OTHER, C.CONTENT_TYPE_RTSP, or any value not handled by the switch, when resolving a live stream's media source. The default branch of the switch fires.
Common situations: The extractor reports a live stream with a content type NewPipe does not support for live playback (e.g. RTSP), or the caller passed the wrong content-type constant. Can also occur if the StreamInfo has neither a DASH MPD URL nor an HLS URL and the upstream logic falls through to an unsupported type. Generally indicates a service/stream combination NewPipe cannot play live.
Related errors
- Error when generating the DASH manifest of YouTube ended liv
- DASH manifest generation of YouTube livestreams is not suppo
- Unsupported delivery type: {}
- Non URI progressive contents are not supported
- Could not create a DASH media source/manifest from the manif
AI-assisted analysis of TeamNewPipe/NewPipe@9e8be09156 (2026-08-14).
Data as JSON: /api/errors/3c135022df9ef8b6.
Report an issue: GitHub.