TeamNewPipe/NewPipe · error · ResolverException
Error when generating the DASH manifest of YouTube ended liv
Error message
Error when generating the DASH manifest of YouTube ended live stream
What it means
Thrown by PlaybackResolver.createYoutubeMediaSource when generating the DASH manifest for a YouTube POST_LIVE_STREAM (ended livestream) fails. The code calls YoutubePostLiveStreamDvrDashManifestCreator.fromPostLiveStreamDvrStreamingUrl and wraps any CreationException, IOException, or NullPointerException (the latter from Objects.requireNonNull on a null ItagItem) into this ResolverException.
Source
Thrown at app/src/main/java/org/schabi/newpipe/player/resolver/PlaybackResolver.java:436
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,
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())View on GitHub (pinned to 9e8be09156)
Solutions
- Update the NewPipe extractor so ItagItem and post-live URL parsing match YouTube's current format.
- Validate stream.getItagItem() is non-null and stream.getContent() is a valid URL before calling the manifest creator.
- Retry playback; transient failures during DVR manifest generation can resolve on re-resolve.
- Fall back to HLS if available for the same ended livestream.
Defensive patterns
Strategy: validation
Validate before calling
if (stream.getItagItem() == null || stream.getContent() == null) {
// cannot generate post-live DVR manifest; skip or fall back
} Try / catch
try {
return createYoutubeMediaSource(stream, streamInfo, dataSource, cacheKey, metadata);
} catch (final ResolverException e) {
// post-live manifest generation failed; try HLS or another itag
} Prevention
- Verify stream.getItagItem() is non-null and stream.getContent() is a valid URL before manifest generation.
- Keep the extractor and YoutubePostLiveStreamDvrDashManifestCreator updated for YouTube URL changes.
- Offer an HLS fallback for the same ended livestream.
When it happens
Trigger: A YouTube ended-livestream (post-live DVR) stream where manifest creation fails: the stream's ItagItem is null, the content URL is malformed, or the manifest creator cannot build the DASH XML. Any of CreationException, IOException, or NPE in the try block maps here.
Common situations: The extractor did not attach an ItagItem to the stream (NPE on getItagItem), the post-live streaming URL format changed so the manifest creator cannot parse it (CreationException), or stream.getContent() is null/invalid. YouTube changes to its post-live DVR URL scheme are a frequent cause after YouTube-side updates.
Related errors
- DASH manifest generation of YouTube livestreams is not suppo
- Error when generating the DASH manifest of YouTube OTF strea
- Unsupported type: {}
- Could not create a DASH media source/manifest from the manif
- Generation of YouTube DASH manifest for {} is not supported
AI-assisted analysis of TeamNewPipe/NewPipe@9e8be09156 (2026-08-14).
Data as JSON: /api/errors/5a64617ef8d2cba6.
Report an issue: GitHub.