TeamNewPipe/NewPipe · error · ResolverException

Could not create a DASH media source/manifest from the manif

Error message

Could not create a DASH media source/manifest from the manifest text

What it means

Thrown by PlaybackResolver.buildDashMediaSource when the DASH manifest content embedded in the stream cannot be parsed into a DashManifest. The method calls createDashManifest (which runs DashManifestParser over the content bytes) and catches IOException, wrapping it as a ResolverException. This path is taken when the stream's DASH content is inline text (stream.isUrl() is false) rather than a remote manifest URL.

Source

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

            throwResolverExceptionIfUrlNullOrEmpty(stream.getContent());
            return dataSource.getDashMediaSourceFactory().createMediaSource(
                    new MediaItem.Builder()
                            .setTag(metadata)
                            .setUri(Uri.parse(stream.getContent()))
                            .setCustomCacheKey(cacheKey)
                            .build());
        }

        try {
            return dataSource.getDashMediaSourceFactory().createMediaSource(
                    createDashManifest(stream.getContent(), stream),
                    new MediaItem.Builder()
                            .setTag(metadata)
                            .setUri(manifestUrlToUri(stream.getManifestUrl()))
                            .setCustomCacheKey(cacheKey)
                            .build());
        } catch (final IOException e) {
            throw new ResolverException(
                    "Could not create a DASH media source/manifest from the manifest text", e);
        }
    }

    private static DashManifest createDashManifest(final String manifestContent,
                                                   final Stream stream) throws IOException {
        return new DashManifestParser().parse(manifestUrlToUri(stream.getManifestUrl()),
                new ByteArrayInputStream(manifestContent.getBytes(StandardCharsets.UTF_8)));
    }

    private static HlsMediaSource buildHlsMediaSource(final PlayerDataSource dataSource,
                                                      final Stream stream,
                                                      final String cacheKey,
                                                      final MediaItemTag metadata)
            throws ResolverException {
        if (stream.isUrl()) {
            throwResolverExceptionIfUrlNullOrEmpty(stream.getContent());
            return dataSource.getHlsMediaSourceFactory(null).createMediaSource(

View on GitHub (pinned to 9e8be09156)

Solutions

  1. Log and inspect the manifest string being parsed to find the malformed element.
  2. Update the extractor and ExoPlayer so the manifest format matches what the parser expects.
  3. Retry fetching the manifest; transient truncation can resolve on the next attempt.
  4. Fall back to a different stream/itag or delivery method if DASH parsing consistently fails.
Defensive patterns

Strategy: try-catch

Validate before calling

try {
    createDashManifest(stream.getContent(), stream); // validate parseability first
} catch (final IOException e) {
    // manifest text invalid; choose another stream
}

Try / catch

try {
    return buildDashMediaSource(dataSource, stream, cacheKey, metadata);
} catch (final ResolverException e) {
    // DASH manifest parse failed; fall back to HLS/progressive if available
}

Prevention

When it happens

Trigger: A DASH stream whose content is an inline manifest string (not a URL) where DashManifestParser.parse throws an IOException during XML parsing of that string. The malformed manifest causes the parser to fail.

Common situations: Corrupt or incomplete DASH manifest text provided by the extractor, a manifest whose schema the bundled ExoPlayer DashManifestParser does not understand (version mismatch), truncated content, or an extractor bug generating invalid XML.

Related errors


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