C# 如何从 googlevideos.com/videoplayback url 下载音频文件

问题描述 投票:0回答:1

我有一个来自 YouTube 视频的音频格式的网址(示例)

https://rr6---sn-n8v7znsr.googlevideo.com/videoplayback?expire=1691861737&ei=iW7XZM3hHciwv_IP3oe_oAk&ip=kekw&id=o-AH6t-rpPJjbEN9qDVOJlCEU2FTLNrvRtMslTqQ0T4as4&itag=251&source=youtube&requiressl=yes&mh=QC&mm=31%2C26&mn=sn-n8v7znsr%2Csn-c0q7lnse&ms=au%2Conr&mv=m&mvi=6&pl=21&gcr=ru&initcwndbps=1281250&vprv=1&mime=audio%2Fwebm&gir=yes&clen=1641566&dur=108.561&lmt=1689370605701687&mt=1691839772&fvip=5&keepalive=yes&fexp=24007246&c=ANDROID_TESTSUITE&txp=5432434&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cgcr%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgV1LPFsKrQ558nwhqkatBGRWchRXYBWo1fSrc0fSujtkCIQDfpHxCk8hwwyTezP6e6yIGXR7yGNxLfv9qEkP99C_eiw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIgFvFgT1ALo6OrKY_QRvD6-XilXezUdxdObEtQ3Xo9DaQCIQCD-LWIv8v0y04x0ZExDjfZ_kFZbbxBYHaDejTILMmHug%3D%3D

我可以在浏览器中打开并单击“下载”按钮来下载 webm 文件,但如何在 C# 代码中执行此操作?

假设我有这样的方法:

public async Task Download(string url) { }

简而言之。我正在尝试通过单击 UWP 表单上的按钮从 YouTube 视频下载音频。尝试使用 YoutubeExplode 通过视频 ID 下载音频,但当我在 UWP 上编写时,我无法使用此库中使用的 File 类,因为访问始终被拒绝。 VideoLibrary + MediaToolKit 也不是一个好主意,因为它下载视频然后将其转换为音频格式(需要很多时间)。我现在能得到的只是视频和音频格式及其网址(如上)以及 Youtube API 请求的有关视频的信息。

c# audio uwp youtube extract
1个回答
0
投票

HttpClient + Windows.Storage 可以正常工作,但下载 bc 需要很长时间

对于大多数流媒体,YouTube 会限制传输速度以匹配视频 播放速率。这有助于他们避免不必要的带宽,但对我们来说 这是一个障碍,因为我们希望以尽可能快的速度下载流 可能的。为了解决这个问题,我们将逻辑流分成多个 分段并单独下载它们。

那是另一个话题了...

工作代码:

public async Task Download(string url)
{
    StorageFile destination = await (await StorageFolder.GetFolderFromPathAsync("dl-path"))
      .CreateFileAsync("name", CreationCollisionOption.GenerateUniqueName);

    byte[] buffer = await httpClient.GetByteArrayAsync(url);
    using (Stream stream = await destination.OpenStreamForWriteAsync())
    {
        await stream.WriteAsync(buffer, 0, buffer.Length);

        // renaming to control download status
        await destination.RenameAsync("name" + ".mp3");
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.