PowerShell+you-get批量下载B站视频

前言

最近家里网速又变慢了,以前能直接看的一些视频突然卡了起来,于是想着下载下来看。以前一直使用的是Python的第三方包you-get,用起来十分丝滑,不过可能由于最近B站的视频链接从"av"变成“BV”,原来批量下载用的参数--playlist突然不能用了,于是想着用PowerShell的循环语句进行批量下载。

主要思路与代码介绍

只需要安装you-get即可在命令行使用了(可能要加PythonScripts目录为环境变量)。

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即可。

你可能感兴趣的:(Windows,#,PowerShell)