TeamNewPipe/NewPipe · error · ResolverException

Unsupported delivery method for YouTube contents: {}

Error message

Unsupported delivery method for YouTube contents: {}

What it means

Thrown by PlaybackResolver.createYoutubeMediaSourceOfVideoStreamType when a YouTube video stream's DeliveryMethod is not PROGRESSIVE_HTTP, DASH, or HLS. The default branch of the switch raises the ResolverException, naming the unsupported method. YouTube content is only resolved via these three delivery methods.

Source

Thrown at app/src/main/java/org/schabi/newpipe/player/resolver/PlaybackResolver.java:505

                                    streamInfo.getDuration());
                    return buildYoutubeManualDashMediaSource(dataSource,
                            createDashManifest(manifestString, stream), stream, cacheKey,
                            metadata);
                } catch (final CreationException | IOException | NullPointerException e) {
                    Log.e(TAG,
                            "Error when generating the DASH manifest of YouTube OTF stream", e);
                    throw new ResolverException(
                            "Error when generating the DASH manifest of YouTube OTF stream", e);
                }
            case HLS:
                return dataSource.getYoutubeHlsMediaSourceFactory().createMediaSource(
                        new MediaItem.Builder()
                                .setTag(metadata)
                                .setUri(Uri.parse(stream.getContent()))
                                .setCustomCacheKey(cacheKey)
                                .build());
            default:
                throw new ResolverException("Unsupported delivery method for YouTube contents: "
                        + deliveryMethod);
        }
    }

    private static DashMediaSource buildYoutubeManualDashMediaSource(
            final PlayerDataSource dataSource,
            final DashManifest dashManifest,
            final Stream stream,
            final String cacheKey,
            final MediaItemTag metadata) {
        return dataSource.getYoutubeDashMediaSourceFactory().createMediaSource(dashManifest,
                new MediaItem.Builder()
                        .setTag(metadata)
                        .setUri(Uri.parse(stream.getContent()))
                        .setCustomCacheKey(cacheKey)
                        .build());
    }

View on GitHub (pinned to 9e8be09156)

Solutions

  1. Update the extractor to the latest version so YouTube delivery methods are classified correctly.
  2. Filter unsupported delivery methods before attempting YouTube playback and notify the user.
  3. Add a handler branch if the delivery method is genuinely new and should be supported.
Defensive patterns

Strategy: validation

Validate before calling

final DeliveryMethod dm = stream.getDeliveryMethod();
if (dm != DeliveryMethod.PROGRESSIVE_HTTP && dm != DeliveryMethod.DASH && dm != DeliveryMethod.HLS) {
    // unsupported YouTube delivery method; skip
}

Try / catch

try {
    return createYoutubeMediaSourceOfVideoStreamType(dataSource, stream, streamInfo, cacheKey, metadata);
} catch (final ResolverException e) {
    // unsupported delivery method for YouTube; try another stream
}

Prevention

When it happens

Trigger: createYoutubeMediaSourceOfVideoStreamType is called for a YouTube VIDEO_STREAM whose getDeliveryMethod() returns a value other than PROGRESSIVE_HTTP, DASH, or HLS (e.g. SS or TORRENT). The default branch fires.

Common situations: The extractor reports a YouTube stream with an unexpected delivery method, or a new delivery method is introduced that NewPipe does not yet handle for YouTube. Generally indicates an extractor change or an inconsistent stream object.

Related errors


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