TeamNewPipe/NewPipe · error · ResolverException

DASH manifest generation of YouTube livestreams is not suppo

Error message

DASH manifest generation of YouTube livestreams is not supported

What it means

Thrown by PlaybackResolver.createYoutubeMediaSource when the YouTube stream's StreamType is neither VIDEO_STREAM nor POST_LIVE_STREAM. For other stream types (e.g. an active LIVE_STREAM or AUDIO_STREAM routed here), NewPipe has no DASH manifest generation path, so the resolver rejects it. This is the else branch after the two supported types.

Source

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

            // livestream so we need to generate the manifest corresponding to the content
            // (which is the last segment of the stream)

            try {
                final ItagItem itagItem = Objects.requireNonNull(stream.getItagItem());
                final String manifestString = YoutubePostLiveStreamDvrDashManifestCreator
                        .fromPostLiveStreamDvrStreamingUrl(stream.getContent(),
                                itagItem,
                                itagItem.getTargetDurationSec(),
                                streamInfo.getDuration());
                return buildYoutubeManualDashMediaSource(dataSource,
                        createDashManifest(manifestString, stream), stream, cacheKey,
                        metadata);
            } catch (final CreationException | IOException | NullPointerException e) {
                throw new ResolverException(
                        "Error when generating the DASH manifest of YouTube ended live stream", e);
            }
        } else {
            throw new ResolverException(
                    "DASH manifest generation of YouTube livestreams is not supported");
        }
    }

    private static MediaSource createYoutubeMediaSourceOfVideoStreamType(
            final PlayerDataSource dataSource,
            final Stream stream,
            final StreamInfo streamInfo,
            final String cacheKey,
            final MediaItemTag metadata) throws ResolverException {
        final DeliveryMethod deliveryMethod = stream.getDeliveryMethod();
        switch (deliveryMethod) {
            case PROGRESSIVE_HTTP:
                if ((stream instanceof VideoStream && ((VideoStream) stream).isVideoOnly())
                        || stream instanceof AudioStream) {
                    try {
                        final String manifestString = YoutubeProgressiveDashManifestCreator
                                .fromProgressiveStreamingUrl(stream.getContent(),

View on GitHub (pinned to 9e8be09156)

Solutions

  1. Ensure active live streams go through buildLiveMediaSource (HLS/DASH live) rather than createYoutubeMediaSource.
  2. Check the StreamType reported by the extractor and route accordingly before calling createYoutubeMediaSource.
  3. Update the extractor if it mislabels the stream type.
  4. Surface a user-facing message for genuinely unsupported stream types.
Defensive patterns

Strategy: validation

Validate before calling

final StreamType st = streamInfo.getStreamType();
if (st != StreamType.VIDEO_STREAM && st != StreamType.POST_LIVE_STREAM) {
    // do not call createYoutubeMediaSource; use live path or notify user
}

Try / catch

try {
    return createYoutubeMediaSource(stream, streamInfo, dataSource, cacheKey, metadata);
} catch (final ResolverException e) {
    // unsupported stream type for YouTube DASH; route to live resolver if applicable
}

Prevention

When it happens

Trigger: createYoutubeMediaSource receives a YouTube stream whose streamInfo.getStreamType() is a value other than VIDEO_STREAM or POST_LIVE_STREAM (for example LIVE_STREAM). Neither handled branch matches, so the else throws.

Common situations: An active YouTube livestream (StreamType.LIVE_STREAM) routed into createYoutubeMediaSource instead of the live-stream path, or an extractor reporting an unexpected StreamType. Indicates a routing/classification issue in how streams are dispatched to resolvers.

Related errors


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