文章目录
前言
本篇文章将为大家介绍两个python的第三方库
you-get 和 bilibili-api
,它们可以用来下载和获取B站视频的信息,其中you-get
支持下载多种视频网站,包括Bilibili(B站)、优酷、爱奇艺等,使用方法非常简单,我将准备好模板代码,大家可免费领取,直接使用。
1、you-get库的使用及介绍
you-get 是一个强大的命令行工具,可以下载多种网站的视频,包括B站。你可以直接在命令行中使用它,也可以在Python脚本中通过 subprocess 模块调用它。
1.1 安装you-get库
命令:
pip install you-get
1.2 调用you-get下载B站视频(模板代码)
方法1:使用os模块调用命令行运行代码
下载命令:
you-get 视频链接
说明:you-get库
本身就是一个命令行工具,我们可以直接在cmd命令窗口中输入命令下载视频,下面我将使用python通过调用os模块来执行命令
# 导入os模块
import os
def download_bilibili_video(url,output_dir):
"""
使用you-get下载B站视频
:param url: 视频的B站链接
:param output_dir: 视频保存的目录
"""
try:
# 使用you-get下载视频,下载命令如下
command = f'you-get -o {
output_dir} {
url}'
# 参数说明:-o 选项 用于指定视频保存路径,不指定默认保存至当前路径下
# 执行命令
os.system(command)
print(f"视频下载完成,保存在 {
output_dir}")
except Exception as e:
print(f"下载视频时出错: {
e}")
if __name__ == "__main__":
# 替换为你要下载的B站视频链接
video_url = "https://www.bilibili.com/video/BV1NVBXYbEta/?spm_id_from=333.1007.tianma.24-4-94.click&vd_source=e8e376ccbc5aa4cfd88e6a7917adfd1a"
# 替换为你要保存的路径
output_dir = 'video'
# 调用函数
download_bilibili_video(video_url,output_dir)
执行效果:
说明:
从上面可以看到,you-get在下载视频时会显示视频标题、视频格式、清晰度、视频大小等信息,并显示下载进度,简洁明了,同时还会下载一个xml文件,用于存放视频的弹幕信息
下载内容:
下载完成后,我们可以在保存路径下看到两个文件,一个是视频文件,一个是xml文件,xml文件中存放着视频的弹幕内容
方法2:使用subprocess 模块调用you-get命令,执行效果与方法1相同
# 导入subprocess模块
import subprocess
def download_bilibili_video(url,output_dir):
"""
使用you-get下载B站视频
:param url: 视频的B站链接
:param output_dir: 视频保存的目录
"""
try:
# 使用 subprocess 调用 you-get命令 下载视频
subprocess.run(['you-get','-o',output_dir,video_url]) # 将命令以空格分隔为一个列表
print(f"视频下载完成,保存在 {
output_dir}")
except Exception as e:
print(f"下载视频时出错: {
e}")
if __name__ == "__main__":
# 替换为你要下载的B站视频链接
video_url = "https://www.bilibili.com/video/BV1NVBXYbEta/?spm_id_from=333.1007.tianma.24-4-94.click&vd_source=e8e376ccbc5aa4cfd88e6a7917adfd1a"
# 替换为你要保存的路径
output_dir = 'video'
# 调用函数
download_bilibili_video(video_url,output_dir)
1.2 指定视频下载的清晰度
在使用 you-get 下载 B站视频时,可以通过 --format 参数指定下载的清晰度。you-get 会自动列出视频可用的清晰度选项,你可以从中选择适合的清晰度进行下载。使用步骤如下:
步骤1:在下载视频之前,可以先查看视频支持的清晰度。使用以下命令:
命令:
you-get -i 视频链接
示例:
# 导入os模块
import os
# 替换成要下载的视频链接
video_url = 'https://www.bilibili.com/video/BV1NVBXYbEta/?spm_id_from=333.1007.tianma.24-4-94.click&vd_source=e8e376ccbc5aa4cfd88e6a7917adfd1a'
# 查看视频可下载的清晰度
os.system(f'you-get -i {
video_url}')
输出结果:
site: Bilibili
title: “我 自 己 看 的 时 候 也 没 绷 住!”
streams: # Available quality and codecs
[ DASH ] ____________________________________
- format