You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I get now also the 403 Firbidden error when calling
var streamManifest = await youtube.Videos.Streams.GetManifestAsync(video.Id); on all the videos I try.
I use also version 6.5.0.
A few days ago it still worked.
Is this happening for every1 or is just my IP blocked?
Because with a browser, I can watch videos when logged-in.
In Incognito mode however, videos not playing... is this a block sign?
Same issue here on version 6.4.2 and 6.5.1:
System.Net.Http.HttpRequestException: 'Response status code does not indicate success: 403 (Forbidden).'
at last line of TryGetContentLengthAsync:
response.EnsureSuccessStatusCode();
Same issue with all videos I have tested. Location is Germany, if that matters. Same result on VPN. Using youtube in incognito mode works without problems. I can provide further information and help debugging if wanted.
Callstack:
[Exception] YoutubeExplode.dll!YoutubeExplode.Videos.Streams.StreamClient.TryGetContentLengthAsync(YoutubeExplode.Bridge.IStreamData streamData, string url, System.Threading.CancellationToken cancellationToken) Line 82 C#
[Exception] YoutubeExplode.dll!YoutubeExplode.Videos.Streams.StreamClient.GetStreamInfosAsync(System.Collections.Generic.IEnumerable<YoutubeExplode.Bridge.IStreamData> streamDatas, System.Threading.CancellationToken cancellationToken) Line 115 C#
[Exception] Microsoft.Bcl.AsyncInterfaces.dll!System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore.GetResult(short token) Unknown
[Exception] YoutubeExplode.dll!YoutubeExplode.Utils.Extensions.AsyncCollectionExtensions.ToListAsync(System.Collections.Generic.IAsyncEnumerable source) Line 49 C#
[Exception] YoutubeExplode.dll!YoutubeExplode.Utils.Extensions.AsyncCollectionExtensions.ToListAsync(System.Collections.Generic.IAsyncEnumerable source) Line 49 C#
[Exception] YoutubeExplode.dll!YoutubeExplode.Videos.Streams.StreamClient.GetStreamInfosAsync(YoutubeExplode.Videos.VideoId videoId, YoutubeExplode.Bridge.PlayerResponse playerResponse, System.Threading.CancellationToken cancellationToken) Line 230 C#
[Exception] YoutubeExplode.dll!YoutubeExplode.Videos.Streams.StreamClient.GetStreamInfosAsync(YoutubeExplode.Videos.VideoId videoId, System.Threading.CancellationToken cancellationToken) Line 275 C#
[Exception] YoutubeExplode.dll!YoutubeExplode.Videos.Streams.StreamClient.GetManifestAsync(YoutubeExplode.Videos.VideoId videoId, System.Threading.CancellationToken cancellationToken) Line 304 C#
I can sometimes reproduce this locally but not consistently. Any help is appreciated.
From my experience, just spam video downloads or use a large playlist (around 1000 videos) and it will reproduce consistently. I think that its just youtube rate limiting and throwing a 403 error instead of the expected 429
Another observation: the “forbidden” issue now occurs consistently for all YouTube and YouTube Music URLs, but not seen for YouTube Shorts URLs. YTE v6.5.4
Another observation: the “forbidden” issue now occurs consistently for all YouTube and YouTube Music URLs, but not seen for YouTube Shorts URLs. YTE v6.5.4
Same with v6.5.5 (2025-10-13) tested and worked fine, today(2025-10-14) it seems was update from youtube all videos on GetManifestAsync returns with 403, usually it helped jumping from 6.5.1-6.5.4 versions, but today it completely blocked
It's working for GetManifestAsync, if you remove this request in StreamClient.cs (l. 71) file :
using var response = await http.GetAsync( // Try to access the last byte of the stream MediaStream.GetSegmentUrl(url, contentLength.Value - 2, contentLength.Value - 1), HttpCompletionOption.ResponseHeadersRead, cancellationToken )
Same here for about a week now. Until yesterday it helped, to get a new IP address by my ISP. Now this doesn’t work anymore. Every video fails with 403 forbidden. NewPipe 28.0 is not affected and still works. Thanks.
As mentioned in this previous comment, there's an n parameter in the googlevideo.com links used to get stream chunks, and you'll get a 403 response if it's not present. One workaround I've found is, if you start playing a video in a web browser then copy the link it uses to get stream chunks, you can use that to send requests.
I attempted a similar fix, just didn't find the right client values myself. This seems to have taken care of it for me as well! Thanks @pictos & @Tyrrrz !
Activity
Tyrrrz commentedon Dec 26, 2024
What video URL were you using?
worbarry commentedon Dec 26, 2024
dsimonubb commentedon Dec 26, 2024
I get now also the 403 Firbidden error when calling
var streamManifest = await youtube.Videos.Streams.GetManifestAsync(video.Id); on all the videos I try.
I use also version 6.5.0.
A few days ago it still worked.
udi12 commentedon Dec 29, 2024
hi there
been trying this now, and getting "forbidden" on any video...
mohanadshaban commentedon Dec 30, 2024
Same here...
udi12 commentedon Dec 30, 2024
Is this happening for every1 or is just my IP blocked?
Because with a browser, I can watch videos when logged-in.
In Incognito mode however, videos not playing... is this a block sign?
udi12 commentedon Jan 5, 2025
Well, it was a temporary block. I tried again after a few days and everything worked just fine. Maybe my IP was renewed by the ISP.
Please take a look at the downloader variant I have coded:
https://www.youtube.com/watch?v=cuSokN7jVCk
worbarry commentedon Jan 5, 2025
wasd52030 commentedon Jan 10, 2025
Same here...
logeshpalani33 commentedon Jan 11, 2025
same here
flowhl commentedon Jan 12, 2025
Same issue here on version 6.4.2 and 6.5.1:
System.Net.Http.HttpRequestException: 'Response status code does not indicate success: 403 (Forbidden).'
at last line of TryGetContentLengthAsync:
Same issue with all videos I have tested. Location is Germany, if that matters. Same result on VPN. Using youtube in incognito mode works without problems. I can provide further information and help debugging if wanted.
Callstack:
wisamidris77 commentedon Jan 14, 2025
Same here
vincetota commentedon Jan 16, 2025
Same issue for me :(
32 remaining items
[-] 403 (Forbidden) on any video[/-][+]Unable to download video (`403 Forbidden`)[/+]shaked6540 commentedon Oct 4, 2025
From my experience, just spam video downloads or use a large playlist (around 1000 videos) and it will reproduce consistently. I think that its just youtube rate limiting and throwing a 403 error instead of the expected 429
DotNet-Fan commentedon Oct 14, 2025
Another observation: the “forbidden” issue now occurs consistently for all YouTube and YouTube Music URLs, but not seen for YouTube Shorts URLs. YTE v6.5.4
This can be reproduced from YoutubeDownloader
Speed258 commentedon Oct 14, 2025
Same with v6.5.5 (2025-10-13) tested and worked fine, today(2025-10-14) it seems was update from youtube all videos on GetManifestAsync returns with 403, usually it helped jumping from 6.5.1-6.5.4 versions, but today it completely blocked
cabbry commentedon Oct 15, 2025
It's working for GetManifestAsync, if you remove this request in StreamClient.cs (l. 71) file :
using var response = await http.GetAsync( // Try to access the last byte of the stream MediaStream.GetSegmentUrl(url, contentLength.Value - 2, contentLength.Value - 1), HttpCompletionOption.ResponseHeadersRead, cancellationToken )But the problem is still here on DownloadAsync...
Walter5923 commentedon Oct 16, 2025
Same here for about a week now. Until yesterday it helped, to get a new IP address by my ISP. Now this doesn’t work anymore. Every video fails with 403 forbidden. NewPipe 28.0 is not affected and still works. Thanks.
ArtemIyX commentedon Oct 17, 2025
Same here
Tyrrrz commentedon Oct 17, 2025
YouTube updated to a new version and changed their player, along with a lot of behavior related to fetching streams.
Duc558 commentedon Oct 20, 2025
It works great here https://ytdown.io
Al-tronic commentedon Oct 23, 2025
As mentioned in this previous comment, there's an
nparameter in the googlevideo.com links used to get stream chunks, and you'll get a 403 response if it's not present. One workaround I've found is, if you start playing a video in a web browser then copy the link it uses to get stream chunks, you can use that to send requests.Tyrrrz commentedon Oct 25, 2025
Should be fixed via #919. Tested locally.
konradw-dev commentedon Oct 28, 2025
I attempted a similar fix, just didn't find the right client values myself. This seems to have taken care of it for me as well! Thanks @pictos & @Tyrrrz !