Skip to content

Every video gives a 403 when downloading #98

@vinnie1234

Description

@vinnie1234

Hello,

Every video I tried gives me an 403 when I want to download the audio stream or video stream.

Example video:
https://www.youtube.com/embed/-FGrZolntqk
ResourceUri for audio stream

https://rr4---sn-32o-1the.googlevideo.com/videoplayback?expire=1718474153&ei=SYFtZqn-Ceqai9oPkLOKuAU&ip=77.174.240.244&id=o-AN_46gMB4pA9p-kqMKiBq_a3QUazgkwCHdfBNoe89uEV&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ==&mh=bx&mm=31,29&mn=sn-32o-1the,sn-5hne6nzk&ms=au,rdu&mv=m&mvi=4&pl=26&initcwndbps=2146250&bui=AbKP-1PLoB9KhmGub4g8VZuGmcmrpZPOemtWlWZqRFVuGYYFTL05WcWITyK6ZOb35B3__T2yZpTzFvWJ&spc=UWF9f5OyHHMiIpBjw7PpFGzpvcB7U_qZOu_h2UWLvldCroP-Ej8GSdj7m1K8&vprv=1&svpuc=1&mime=audio/webm&ns=ujNdWRYrfGzaKm0oQXeNiUsQ&rqh=1&gir=yes&clen=1168939&dur=74.041&lmt=1708560915899548&mt=1718452374&fvip=3&keepalive=yes&c=WEB&sefc=1&txp=4432434&n=udhNDQq2j2d37rLT&sparams=expire,ei,ip,id,itag,source,requiressl,xpc,bui,spc,vprv,svpuc,mime,ns,rqh,gir,clen,dur,lmt&sig=AJfQdSswRAIgdErbrJIwQRiK1lM4KEnzS1Lh6omf3XlO8RUy9mdVeWICIBtUjV_MZiLQGyYGmlpAP0wscS88Mz6EIoyxonJIFvCE&lsparams=mh,mm,mn,ms,mv,mvi,pl,initcwndbps&lsig=AHlkHjAwRQIhAO1lbrJR6KjTkdMegGd57lsTt0DBt2igBQFXVjk-PgVbAiA_8L9TL909hpR1iKGlKzPLRgp2Aa3rGTSyIXtybycjYw==

        var result = await grabber.GrabAsync(new Uri($"https://www.youtube.com/embed/{fields?[0]}"));
        var mediaFiles = result.Resources<GrabbedMedia>().ToArray();
        var videoStream = mediaFiles.GetHighestQualityVideo();
        var audioStream = mediaFiles.GetHighestQualityAudio();
        
        if (audioStream == null)
            throw new InvalidOperationException("No audio stream detected.");
        if (videoStream == null)
            throw new InvalidOperationException("No video stream detected.");

            var audioPath = await DownloadMedia(audioStream, result);
            var videoPath = await DownloadMedia(videoStream, result);
            GenerateOutputFile(audioPath, videoPath, videoStream, path);
  async Task<string> DownloadMedia(GrabbedMedia media, IGrabResult grabResult)
  {
      Console.WriteLine(\"Downloading {0}...\", media.Title ?? media.FormatTitle ?? media.Resolution);
      using var response = await Client.GetAsync(media.ResourceUri);
      response.EnsureSuccessStatusCode();
      await using var downloadStream = await response.Content.ReadAsStreamAsync();
      await using var resourceStream = await grabResult.WrapStreamAsync(downloadStream);
      var path = Path.GetTempFileName();
  
      await using var fileStream = new FileStream(path, FileMode.Create);
      TempFiles.Add(path);
      await resourceStream.CopyToAsync(fileStream);
      return path;
  }

Error message:

System.Net.Http.HttpRequestException: Response status code does not indicate success: 403 (Forbidden).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at Program.<>c__DisplayClass0_0.<<

$>g__DownloadMedia|0>d.MoveNext() in D:\Projects\TEST\TEST\TEST\Program.cs:line 87
--- End of stack trace from previous location ---
at Program.$(String[] args) in D:\Projects\TEST\TEST\TEST\Program.cs:line 51

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions