{"record":{"id":"980b854e4575dac0","repo":"TeamNewPipe/NewPipe","slug":"unsupported-delivery-method-for-youtube-contents","errorCode":null,"errorMessage":"Unsupported delivery method for YouTube contents: {}","messagePattern":"Unsupported delivery method for YouTube contents: (.+?)","errorType":"exception","errorClass":"ResolverException","httpStatus":null,"severity":"error","filePath":"app/src/main/java/org/schabi/newpipe/player/resolver/PlaybackResolver.java","lineNumber":505,"sourceCode":"                                    streamInfo.getDuration());\n                    return buildYoutubeManualDashMediaSource(dataSource,\n                            createDashManifest(manifestString, stream), stream, cacheKey,\n                            metadata);\n                } catch (final CreationException | IOException | NullPointerException e) {\n                    Log.e(TAG,\n                            \"Error when generating the DASH manifest of YouTube OTF stream\", e);\n                    throw new ResolverException(\n                            \"Error when generating the DASH manifest of YouTube OTF stream\", e);\n                }\n            case HLS:\n                return dataSource.getYoutubeHlsMediaSourceFactory().createMediaSource(\n                        new MediaItem.Builder()\n                                .setTag(metadata)\n                                .setUri(Uri.parse(stream.getContent()))\n                                .setCustomCacheKey(cacheKey)\n                                .build());\n            default:\n                throw new ResolverException(\"Unsupported delivery method for YouTube contents: \"\n                        + deliveryMethod);\n        }\n    }\n\n    private static DashMediaSource buildYoutubeManualDashMediaSource(\n            final PlayerDataSource dataSource,\n            final DashManifest dashManifest,\n            final Stream stream,\n            final String cacheKey,\n            final MediaItemTag metadata) {\n        return dataSource.getYoutubeDashMediaSourceFactory().createMediaSource(dashManifest,\n                new MediaItem.Builder()\n                        .setTag(metadata)\n                        .setUri(Uri.parse(stream.getContent()))\n                        .setCustomCacheKey(cacheKey)\n                        .build());\n    }\n","sourceCodeStart":487,"sourceCodeEnd":523,"githubUrl":"https://github.com/TeamNewPipe/NewPipe/blob/9e8be091560a69f35d44bd252eb00bc7911c977b/app/src/main/java/org/schabi/newpipe/player/resolver/PlaybackResolver.java#L487-L523","documentation":"Thrown by PlaybackResolver.createYoutubeMediaSourceOfVideoStreamType when a YouTube video stream's DeliveryMethod is not PROGRESSIVE_HTTP, DASH, or HLS. The default branch of the switch raises the ResolverException, naming the unsupported method. YouTube content is only resolved via these three delivery methods.","triggerScenarios":"createYoutubeMediaSourceOfVideoStreamType is called for a YouTube VIDEO_STREAM whose getDeliveryMethod() returns a value other than PROGRESSIVE_HTTP, DASH, or HLS (e.g. SS or TORRENT). The default branch fires.","commonSituations":"The extractor reports a YouTube stream with an unexpected delivery method, or a new delivery method is introduced that NewPipe does not yet handle for YouTube. Generally indicates an extractor change or an inconsistent stream object.","solutions":["Update the extractor to the latest version so YouTube delivery methods are classified correctly.","Filter unsupported delivery methods before attempting YouTube playback and notify the user.","Add a handler branch if the delivery method is genuinely new and should be supported."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"final DeliveryMethod dm = stream.getDeliveryMethod();\nif (dm != DeliveryMethod.PROGRESSIVE_HTTP && dm != DeliveryMethod.DASH && dm != DeliveryMethod.HLS) {\n    // unsupported YouTube delivery method; skip\n}","typeGuard":null,"tryCatchPattern":"try {\n    return createYoutubeMediaSourceOfVideoStreamType(dataSource, stream, streamInfo, cacheKey, metadata);\n} catch (final ResolverException e) {\n    // unsupported delivery method for YouTube; try another stream\n}","preventionTips":["Filter YouTube streams to PROGRESSIVE_HTTP/DASH/HLS before playback.","Update the extractor so delivery methods are classified correctly.","Surface unsupported methods to the user instead of failing during playback."],"tags":["playback","resolver","youtube","delivery-method","media-source"],"backgroundTag":null,"analyzedSha":"9e8be091560a69f35d44bd252eb00bc7911c977b","analyzedAt":"2026-08-14T00:11:33.519Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}