前言

最近家里网速又变慢了,以前能直接看的一些视频突然卡了起来,于是想着下载下来看。以前一直使用的是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

即可。

完整代码

将下述代码保存为​​.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​​即可。