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

  1. Verify the content type being passed; ensure the stream is actually DASH, HLS, or SS before calling buildLiveMediaSource.
  2. Filter out unsupported live content types earlier and surface a user-friendly 'unsupported stream' message instead of attempting playback.
  3. If RTSP or another type must be supported, add the corresponding MediaSource.Factory branch and handling.
  4. 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

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


AI-assisted analysis of TeamNewPipe/NewPipe@9e8be09156 (2026-08-14). Data as JSON: /api/errors/3c135022df9ef8b6. Report an issue: GitHub.