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
- Filter streams so only AudioStream/VideoStream are passed to createYoutubeMediaSource; route subtitles separately.
- Review the call site in buildMediaSource to ensure only audio/video streams reach createYoutubeMediaSource.
- 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
- Route only AudioStream/VideoStream to the YouTube media-source path.
- Handle subtitles and other stream types through their own resolvers.
- Review the dispatch logic in buildMediaSource to ensure correct typing.
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
- Error when generating the DASH manifest of YouTube ended liv
- DASH manifest generation of YouTube livestreams is not suppo
- Error when generating the DASH manifest of YouTube OTF strea
- Unsupported delivery method for YouTube contents: {}
- Unsupported type: {}
AI-assisted analysis of TeamNewPipe/NewPipe@9e8be09156 (2026-08-14).
Data as JSON: /api/errors/24ff8bf065b48191.
Report an issue: GitHub.