利用you-get批量下载bilibili等网站的视频

因为资源保存问题我需要下载b站的一组视频,一共64p

2020.4更新 因为b站从av号改为了bv号,直接下载会出错。下载之前将bv转换为av即可。有个大佬的工具箱很好用可以用下https://tool.liumingye.cn/avbv/(侵删)

如果只是单纯的下载某1p的视频,可以利用以下的办法:

  1. 使用idm抓取视频直接下载(如果视频是分块的需要多次下载)
  2. 使用chrome插件捕获链接下载
  3. 在网址url的bilibili后面加jj跳转到唧唧下载(需要有一定用户缓存才能,否则可能出现失败)
  4. 使用硕鼠进行下载
  5. 使用tubeget下载 (已不再支持)
  6. 使用you-get

对于单p视频其实并不建议使用you-get,因为你还要设置下载目录还要为了安装you-get设置环境变量。idm抓取最快最好用,但是遇到分块问题会很麻烦。分块是什么见下面

但是难免出现你需要一次性下载一整套视频(例如网课),此时上面的1、2只能1p1p下载,3如果你遇到了小众视频便失败,而4一定情况下无法激活自动识别连接中全部p,而且批量下载超过20个就需要会员了。

此时you-get变成了不二之选


下面介绍you-get在windows下怎么安装怎么用:

一、安装依赖

官网还提供了windows下预装包但是发现新版并不更新预装包了,所以建议还是老老实实装依赖吧:
Python3
如果你之前安装了python2.7,安装完python3后(记得安装的时候勾选addtopath,没勾选的话后面自己添加也可以)需要在设置-系统-关于-系统信息-高级系统选项-环境变量-path中把你的python3路径上移到pyhton2.7之前。(此方法也可随时切换你所需要的python版本)
FFmpeg
上官网下载源代码之后解压到你想安装的文件夹,把该文件夹的目录按照上面的方法添加到path中。随后cmd中运行ffmpeg查看是否成功
ffmpeg为必要依赖,以下载流式视频以及合并分块视频(例如b站会把一个视频分割成很多个小片段,idm每次就只能捕捉到一个小片段),以及YouTube的1080p或更高分辨率.

二、安装you-get

执行完上面的操作之后便可以开始安装you-get
首先更新一下pip,不然可能会出现Fatal error in launcher: Unable to create process using的错误
在cmd中执行

python -m pip install -U pip

更新完成后会显示:

Collecting pip
  Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
     |████████████████████████████████| 1.4MB 16kB/s
Installing collected packages: pip
  Found existing installation: pip 19.2.3
    Uninstalling pip-19.2.3:
      Successfully uninstalled pip-19.2.3
Successfully installed pip-20.0.2

随后安装you-get

pip3 install you-get

运行you-get检查一下是否安装成功,成功之后便可以开始下载

三、开始下载

新版本的you-get中支持了批量下载,命令如下:

you-get --playlist 网址(此处网址为不带p=x的)

默认下载是最清晰的版本。如果您想下载前查看一下下载的内容啊格式啊可用清晰度啊可以利用-i命令,即:

you-get -i 网址

之后按照上面的提示输入对应的命令下载对应的版本即可
建议下载的时候添加-o指定一下下载路径,不然会默认下载到user文件夹中,,于是命令变成了:

you-get -o D:\Download\视频\名字 --playlist 网址

ctrl+c可以暂停下载,再次提交相同下载请求的时候会默认继续下载。如果要强制重新下载添加-f即可

PS:有些情况直接使用-l命令会出现下载的文件全部为第一p文件的情况。这时候用循环可以解决问题:

for /L %i in (1 1 XXXX1XXXX) do @(you-get -o XXXXX2XXXXX https://www.bilibili.com/video/XXXXX3XXXXX?p=%i)

其中XXX1XXX是一共要下载到多少p,2是下载地址,3是av号。注意av号后紧跟?p

四、不下载直接传进播放器

you-get也可以实现直接将视频传进播放器
你需要把你的播放器的执行文件目录放到path中,随后调用如下命令:

you-get -p 你的播放器名字 地址
-------------例如
you-get -p PotPlayerMini 地址

随后你的播放器便会打开播放。但是实测有些网站不可,例如b站…

更多的使用方法可以参考官方文本:
you-get说明

本文参考:
you-get项目说明:https://github.com/soimort/you-get/wiki/%E4%B8%AD%E6%96%87%E8%AF%B4%E6%98%8E#getting-started

你可能感兴趣的:(PC相关)