前言
最近家里网速又变慢了,以前能直接看的一些视频突然卡了起来,于是想着下载下来看。以前一直使用的是Python的第三方包you-get
,用起来十分丝滑,不过可能由于最近B站的视频链接从"av"变成“BV”,原来批量下载用的参数--playlist
突然不能用了,于是想着用PowerShell的循环语句进行批量下载。
主要思路与代码介绍
只需要安装you-get
即可在命令行使用了(可能要加Python
的Scripts
目录为环境变量)。
pip install --user you-get
- 下面是PowerShell脚本代码,总体就是一个for循环,设置起始参数与终止条件,记得别忘了语句后面的
;
,这个分号不加可能会识别失败。
for ($i = 25; $i -lt 89; $i++) {
you-get --format=flv480 https://www.bilibili.com/video/BV1Gt411G7L2?p=$i;
}
还需要注意一点就是参数--format=flv480
不是随便设置的,需要先用命令
you-get -i https://www.bilibili.com/video/BV1Gt411G7L2?p=1
查看视频可供下载的格式以及对应的分辨率。
- 最后下载完之后,附代会有很多的弹幕文件(
.xml
)想要删除的话可以直接在PowerShell中使用
rm *.xml
即可。
- 如果想要批量修改文件名的话,PowerShell也能胜任,具体可以参见另一篇文章powershell一行代码批量修改文件名(附命令详解)。
完整代码
将下述代码保存为.ps1
文件,右键Windows PowerShell
打开即可运行,最好新建一个文件夹,放在该文件夹下,否则桌面会比较混乱。
# 循环批量下载视频
for ($i = 25; $i -lt 89; $i++) {
you-get --format=flv480 https://www.bilibili.com/video/BV1Gt411G7L2?p=$i;
}
# 删除弹幕文件
rm *.xml
# 批量去掉文件名中多余的部分
ls "E:\Desktop\数学的思维方式与创新" -i *.flv -r | foreach {
ren $_.FullName $_.FullName.Replace("【数学的思维方式与创新】共88集", "")
}
注:想保留弹幕的话去掉rm *.xml
即可。