需要更快地将YouTube链接转换为声音文件

2024-10-03 17:22:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个YouTube链接列表,我只想下载声音文件(一个相册列表,我将把它转换成.wav文件进行分析)。我一直在使用Pytube,但它非常慢,我希望能找到一种方法,在文件实际下载或处理之前压缩它,这样它就可以更快地提供文件。我使用的代码如下:

from pytube import YouTube
import time

t1 = time.time()
myAudioStream = YouTube("https://www.youtube.com/watch?v=U_SLL3-NEMM").streams.last()
t2 = time.time()
print(t2-t1)
myAudioStream.download("C:\\Users\\MyUser\\Python Projects\\AlbumFiles\\")
t3 = time.time()
print(t3-t2)

现在那里的链接只是一首歌,因为我想知道它需要多长时间,而它仍然需要大约200秒。如果我想下载4-8倍大的东西,可能需要很长时间才能完成。在处理这些数据时我能做些什么来加快速度吗?在


Tags: 文件方法import列表timeyoutube链接t1
2条回答

这个编程问题实际上是一个XY软件推荐问题,因为有一个免费的、跨平台的(Windows/Mac/Linux)命令行程序可以将youtube视频转换成mp3文件:

youtube-dl  extract-audio  audio-format mp3 <video URL>   

YouTube视频必须先下载,然后才能作为上述命令的一部分进行转换,因为YouTube dl无法将视频转换为mp3格式,除非YouTube dl有权访问该视频,因此YouTube dl将整个视频下载为临时文件,然后在完成转换后自动删除该临时文件。在

youtube dl可以安装在使用以下命令安装Python的任何操作系统上:

^{pr2}$

除了将YouTube视频转换成mp3文件外,YouTube dl还有一系列惊人的功能,包括下载播放列表和频道、从文本文件中的url列表下载多个视频,以及通过指定要从播放列表下载的视频批的开始NUMBER和结束NUMBER,下载播放列表或频道的一部分:

youtube-dl -f FORMAT -ci  playlist-start NUMBER  playlist-end NUMBER <URL-of-playlist>   

如果你已经买了一张CD,并且在youtube上找到了一首歌的音乐视频,那么你还可以用youtube dl做其他事情。您可以下载音乐视频,删除其音频曲目,然后用您自己的CD中的高清音频曲目进行替换。在

所以我只想报告一下上面这篇文章的结果。我知道这可能属于注释,但我尝试了一些不同的方法,并希望提供代码。我研究了人们用来调用youtubedl的不同方法,并比较了速度。在

所以在我所有的方法中,我都使用youtube dl,因为它比Pytube快得多。我不知道是什么让Pytube慢得多,但如果有人想评论解释,我很感兴趣!在

第一种方法:使用操作系统播放命令行

import os
os.system('youtube-dl  extract-audio  audio-format mp3 https://www.youtube.com/watch?v=U_SLL3-NEMM')

产生了一个30秒的结果。在

第二种方法:将youtube dl嵌入库中

^{pr2}$

结果:大约10秒,生成了一个MKV文件(比MP3大的存储空间)

第三种方法:使用子进程运行命令行

from subprocess import call
command = "youtube-dl  extract-audio  audio-format mp3 https://www.youtube.com/watch?v=U_SLL3-NEMM"
call(command.split(), shell=False)

结果:与操作系统的第一种方法类似;30秒,输出为MP3。在

编辑:我找到了一种方法,可以将最快的方法(嵌入youtubedl)输出为wav、mp3或其他格式(在我的例子中是.wav)。Here is where I found it。它编辑导入的一些初始设置,最终更改输出文件。抱歉,如果这对你们有些人来说是显而易见的!只是为其他偶然发现这一点的新程序员解释一下。在

相关问题 更多 >