python 一键批量下载b站发现频道视频
以姜文电影《让子弹飞》这个频道为例
让子弹飞-哔哩哔哩频道www.bilibili.com/v/channel/35826?tab=featured


代码如下:
def down(url,channel_id):
response = requests.get(url, headers=headers)
res = response.json();print(url)
has_more = res['data']['has_more']
for i in res['data']['list']:
if 'bvid' in i:
danmaku = '0'
if 'danmaku' in i:
danmaku = str(i['danmaku'])
with open('视频列表.csv', 'a+', encoding='utf-8-sig') as f:
f.write(i['name']+','+i['cover']+','+str(i['view_count'])+','+str(i['like_count'])+','+i['duration']+','+i['author_name']+','+'https://www.bilibili.com/'+i['bvid']+','+danmaku+'\n')
with open('视频列表.txt', 'a+', encoding='utf-8') as f:
f.write(i['bvid']+'\n')
if has_more:
down(f'https://api.bilibili.com/x/web-interface/web/channel/featured/list?channel_id={channel_id}&filter_type=0&offset={res["data"]["offset"]}&page_size=30',channel_id)
else:
return False
channel_id=input('输入频道id:')
url = f'https://api.bilibili.com/x/web-interface/web/channel/featured/list?channel_id={channel_id}&filter_type=0&offset=&page_size=30'
with open('视频列表.csv', 'a+', encoding='utf-8-sig') as f:
f.write('标题'+','+'封面'+','+'播放量'+','+'点赞量'+','+'时长'+','+'up主'+','+'视频链接'+','+'弹幕数'+'\n')
down(url,channel_id)
几百个视频数据就下载完了,导出的excel视频列表:

然后使用lux下载b站视频,之前分享过
视频下载黑科技,VIP 视频也能下载mp.weixin.qq.com/s/mNbZhu-UIMWXL9l23v6mvA

代码:
file = open('视频列表.txt').read()
ids = file.split('\n')
#ids=ids[:1]
print(len(ids))
for i in ids:
print(i)
os.system(f"lux -f 16-12 {i}")
下载效果:


更多b站文章:
还没人赞这篇日记