YouTube 是目前全球最大资源最丰富的视频网站了,各类娱乐、新闻、学习资料应有尽有。偶然机会,发现有不少读书方面的解读视频(画面无实质内容,只是一个静态的封面图,可理解为就是音频),成为上下班途中的新宠。其实国内网站也有相同的资源,但是通常是收费的,算是对国内用户的歧视吧。
但总不能为了听书,用手机一直播放着视频吧,一来费电,二来视频偶尔还是会卡顿且有广告的。那么最好的办法就是把youtube上的视频,下载为音频。这就可以方便地随时听书了~
我把整个过程分为三步:将视频下载下来,生成 audio 文件,结合云服务器在线使用
Youtube 视频下载
这里使用之前说过得you-get
方法,可根据视频或播放列表链接很方便地将视频下载下来。为方便在 Python 中统一规划,这里使用 os.system()方法
1 2 |
for url in urls: os.system('you-get --debug %s -o %s' % (url, local_path)) |
为了方便 url 管理,我把 url 放在同服务器的私人网盘上的 txt 文件中,这样就不需要每次修改源代码了
1 2 |
with open('urls.txt') as f: urls = [i.strip() for i in f.readlines()] |
Audio 文件生成
上一步过后,已经将视频文件下载好了,接下来就是生成 audio 文件了。这里使用moviepy
库,简单的几行代码即可
1 2 3 4 |
from moviepy.editor import * video = VideoFileClip(file) audio = video.audio audio.write_audiofile(file + '.mp3') |
生成的音频可以使各种格式,如 wav,mp3 等。为了节省硬盘空间,可顺手将已原来的 video 文件删除
1 |
os.remove(file) |
云服务应用
若以上操作完全在云服务器上完成,可利用搭建好的个人网盘。不需要下载到本地手机上,直接打开浏览器收听就可以了,非常方便!