在Windows上使用Youtube-dl提取MP3的问题

Chr*_*ris 4 windows youtube audio video youtube-dl

我订阅了YouTube上的各种免费音乐频道,我希望在.net程序中嵌入youtube-dl.exe来监控频道,下载和转换歌曲,因为它们发布到频道.我已经得到了该程序的这一部分,但似乎有一个由youtube-dl生成的mp3文件的问题.这些文件将在VLC和Windows Media Player中播放,但如果我尝试在Audacity或Wavepad等编辑器中打开文件,则文件将无法播放,打开文件时出现以下错误"MPEG帧信息异常:读取为MEPG标头的数据表示持续时间为零".在编辑器中播放时,根据歌曲的长度,一段噪音或失真的声音会播放一秒钟到几秒钟,并且曲目将显示为已完成播放.

此问题似乎也会影响ID3标记.一旦嵌入了ID3标签,文件就会播放一秒,然后在Windows媒体播放器中显示完成,并且在VLC中播放时没有声音.然后拾取ID3标签信息,因此文件没有损坏,删除ID3帧允许歌曲再次播放但不解决其他问题.

我正在使用的参数是:youtube-dl.exe videoURL-x --audio-format mp3 -o"path/filename.mp3"

我在撰写本文时有最新版本:2015-03-24并且我都使用了--update标志并下载了一个新副本以排除损坏的exe

我已经尝试了32位和64位版本的ffprobe.exe和ffmpeg.exe并下载了每个版本的新副本以排除损坏的exe

我已经通过我的程序和使用命令行下载了相同的结果

我尝试了各种不同的歌曲,所以它不仅仅是一个视频

我已经在其他软件生成的歌曲上测试了ID3嵌入软件,它没有问题

您可以在此问题上提供任何帮助.

Chr*_*ris 10

我想出了这个问题,我在这里发布,以防其他人遇到同样的问题.问题是我在-o模板中指定了文件的完整路径.路径看起来像-o"c:\ music\filename.mp3"将模板更改为-o"c:\ music\filename.%(ext)s"修复了问题.%(ext)s是一个特殊字段,可以在输出模板中用于输出文件扩展名.

导致错误的原因是转换操作的顺序.首先,文件以视频格式下载并保存到硬盘驱动器中.然后将其转换为.mp3并删除源文件.

由于我的模板,视频文件被保存为video_name.mp3,无论实际视频格式如何,转换后的文件都覆盖了此视频"mp3".希望这个解释可以让别人在将来遇到同样的麻烦.