以下是利用Python下载B站视频的完整攻略:
- 获取B站视频的真实地址
B站视频地址是加密的,我们需要通过某些方法获取其真实地址。这里介绍两种获取方法:
方法一:使用B站API
我们可以使用B站提供的API来获取视频信息,通过解析视频信息中的真实地址即可下载视频。下面演示如何使用API获取信息并解析出真实地址:
import requests
import json
bv = 'BV1Kb41137jK' # 视频BV号
url = f'https://api.bilibili.com/x/web-interface/view?bvid={bv}'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',
'Referer': f'https://www.bilibili.com/video/{bv}'
}
res = requests.get(url, headers=headers)
res_json = json.loads(res.text)
real_url = res_json['data']['pages'][0]['durl'][0]['url']
print(real_url) # 输出真实地址
方法二:使用第三方库you-get
you-get是一款开源的多媒体下载工具,支持下载B站、Youtube等多个平台的视频音频等。我们可以直接使用you-get来获取视频的真实地址:
import os
bv = 'BV1Kb41137jK' # 视频BV号
url = f'https://www.bilibili.com/video/{bv}'
os.system(f'you-get -u -o "./" {url}') # 执行you-get命令获得视频文件
- 下载B站视频
获取到真实地址后,我们可以使用Python中的requests库来进行下载。以下是下载B站视频的样例代码:
import requests
real_url = 'https://upos-hz-mirrorkodo.bilivideo.com/upgcxcode/22/18/359921822/359921822-1-16.mp4'
filename = 'my_video.mp4'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.146 Safari/537.36',
'Referer': 'https://www.bilibili.com'
}
res = requests.get(real_url, headers=headers, stream=True)
# 设置缓存区大小
chunk_size = 1024
with open(filename, "wb") as f:
for chunk in res.iter_content(chunk_size=chunk_size):
if chunk:
f.write(chunk)
以上是利用Python下载B站视频的完整攻略,并附有两条示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用python 下载bilibili视频 - Python技术站