TeamNewPipe/NewPipe · error · ResolverException

Generation of YouTube DASH manifest for {} is not supported

Error message

Generation of YouTube DASH manifest for {} is not supported

What it means

Thrown by PlaybackResolver.createYoutubeMediaSource when the given stream is neither an AudioStream nor a VideoStream. YouTube DASH manifest generation is only implemented for audio and video streams; other stream types (e.g. subtitle streams) are rejected upfront. The exception message names the offending class.

Source

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

                smoothStreamingManifest,
                new MediaItem.Builder()
                        .setTag(metadata)
                        .setUri(manifestUri)
                        .setCustomCacheKey(cacheKey)
                        .build());
    }
    //endregion


    //region YouTube media sources
    private static MediaSource createYoutubeMediaSource(final Stream stream,
                                                        final StreamInfo streamInfo,
                                                        final PlayerDataSource dataSource,
                                                        final String cacheKey,
                                                        final MediaItemTag metadata)
            throws ResolverException {
        if (!(stream instanceof AudioStream || stream instanceof VideoStream)) {
            throw new ResolverException("Generation of YouTube DASH manifest for "
                    + stream.getClass().getSimpleName() + " is not supported");
        }

        final StreamType streamType = streamInfo.getStreamType();
        if (streamType == StreamType.VIDEO_STREAM) {
            return createYoutubeMediaSourceOfVideoStreamType(dataSource, stream, streamInfo,
                    cacheKey, metadata);
        } else if (streamType == StreamType.POST_LIVE_STREAM) {
            // If the content is not an URL, uses the DASH delivery method and if the stream type
            // of the stream is a post live stream, it means that the content is an ended
            // 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,

View on GitHub (pinned to 9e8be09156)

Solutions

  1. Filter streams so only AudioStream/VideoStream are passed to createYoutubeMediaSource; route subtitles separately.
  2. Review the call site in buildMediaSource to ensure only audio/video streams reach createYoutubeMediaSource.
  3. Update the extractor if it is producing unexpected stream types for YouTube.
Defensive patterns

Strategy: validation

Validate before calling

if (!(stream instanceof AudioStream) && !(stream instanceof VideoStream)) {
    // do not route this stream to createYoutubeMediaSource
}

Type guard

static boolean isYoutubePlayableStream(final Stream stream) {
    return stream instanceof AudioStream || stream instanceof VideoStream;
}

Try / catch

try {
    return createYoutubeMediaSource(stream, streamInfo, dataSource, cacheKey, metadata);
} catch (final ResolverException e) {
    // non A/V stream cannot produce a YouTube DASH manifest; skip
}

Prevention

When it happens

Trigger: createYoutubeMediaSource is invoked with a Stream that is not an instance of AudioStream or VideoStream (for example a SubtitleStream). The instanceof guard fails and the exception is raised before any manifest logic runs.

Common situations: The resolver receives a subtitle or other non-A/V stream routed to the YouTube media-source path, or the extractor/service mismatch causes a wrong stream type to reach this method. Generally a logic/routing error rather than a server issue.

Related errors


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