撸了一个b站视频下载命令行工具
最近在B站看一些编程视频,但是网络不佳,经常卡住。于是想要将视频下载下来本地观看,但是网上找了一圈都没有找到合适的方式下载。
最后参照一个可以下载单个视屏的油猴脚本(不支持多p视屏的下载)进行改造,开发了一个命令行工具bilibili2local
,主要优化了一下多p视频的下载,用以快速下载B站上的教程。
(ps:由于在阮一峰的博客投稿了,Start很快破了三百,担心会造成侵权的问题,已经关闭了,大家看看思路自己实现一下吧。
具体怎么搞得就不展开说了,逻辑相对简单,主要使用bilibili公开的api,结合上面的油猴插件逻辑(主要是如何解析url,拿到视频ID进行递归下载)。没有太高的难度,但是下载的视频只有flv
格式的,要转格式需要自己装个ffmpeg
或者其他工具,当然可以直接下载个支持flv
格式的播放器,如恒星播放器就很好用。
其实其中比较有价值的是各种第三方库的组合使用,像inquirer
,commander
,progress
,chalk
,got
等都是比较常用的库,了解之后对平时开发也有一定帮助。
最后记录一个比较坑的坑
本来这个库的名字叫做bilibili-download
,但是在publish的时候上传接口报400
。
最后发现库名字不能带download
,于是改成了bilibili2local
。