尝试下载通过 YouTube-to-MP3 API 生成的 MP3,但我得到的只是一个 0 字节的 MP3 文件

Posted

技术标签:

【中文标题】尝试下载通过 YouTube-to-MP3 API 生成的 MP3,但我得到的只是一个 0 字节的 MP3 文件【英文标题】:Trying to download MP3 generated through YouTube-to-MP3 API, but all I get is a 0 byte MP3 file 【发布时间】:2016-10-09 19:23:54 【问题描述】:

我正在使用这个 (https://www.youtubeinmp3.com/api/) API 来获取下载 YouTube 视频 MP3 版本的链接。 API 不会让我直接访问 .mp3 文件,而是访问生成的“网页”,该网页会立即开始下载。

现在我的问题是,我正在使用 BackgroundDownloader 类下载 MP3,但我相信我正在下载一个空的 html 页面而不是实际的 MP3 文件。

我的代码如下所示:

Uri source = new Uri(dlurl);

StorageFolder folder = Windows.ApplicationModel.Package.Current.InstalledLocation;
StorageFile destinationFile = await folder.CreateFileAsync(
dltitle + ".mp3", CreationCollisionOption.GenerateUniqueName);

BackgroundDownloader downloader = new BackgroundDownloader();
DownloadOperation download = downloader.CreateDownload(source, destinationFile);

// Attach progress and completion handlers.
HandleDownloadAsync(download, true);

【问题讨论】:

什么是dlurl dlurl 是下载的url,我从api得到的url,看起来是这样的:youtubeinmp3.com/download/get/… 【参考方案1】:

我建议使用这个自定义库,它支持使用自定义比特率和自定义视频/音频格式(包括 mp3)“直接”下载 youtube 视频。

YoutubeExtractor-lib

您可以使用 NUGET 包管理器轻松安装它:

Install-Package YoutubeExtractor

问候Kyon。

【讨论】:

以上是关于尝试下载通过 YouTube-to-MP3 API 生成的 MP3,但我得到的只是一个 0 字节的 MP3 文件的主要内容,如果未能解决你的问题,请参考以下文章

谷歌驱动API下载文件-python-没有下载文件

如何通过 python API 下载历史 Azure ML 实验运行的输出

尝试通过axios获取API,但不知道如何访问

尝试使用 Edge 通过 HTTP 下载文件时隐藏 HTTPS 警告

使用 Express API 和 ytdl 下载音频文件

Symfony 3.4 - 将 API 流文件传输到客户端下载