主要记录批量下载b站视频如何自动化解放双手。
当然该源码还无法做到面向所有视频都能套入。
能套入的部分有:批量下载合集里的视频
批量修改名称,那里需要根据视频特点,通过正则表达式来改名。
还有一个需要注意的点是:我通常习惯把edge放任务栏的第2个位置,记录下载顺序的txt文件放任务栏的第3个位置。【需要根据注释修改,也可以按照已经写好的位置摆放】
整理资料的时候发现,还需要一下图片放在源码main.py的根目录下,如图:(图片资源就5kb左右,放网上存储一下, 怕到时找不到了。)

import os
import re
import pyautogui
import time
# renwu_path = r'D:\Lenovo\下载\Video\原\4.2test'
path = r'D:\Lenovo\下载\Video\原\4.2'
renwu_path = r'D:\Lenovo\下载\Video\原\4.2任务'
pre_name = '原神4.2宝箱'
def baoxiang(path, first_name):
"""修改宝箱名称的函数"""
for i in os.listdir(path):
tst = re.findall('.*?(\d+-\d+).*?', i)
try:
new_name = first_name + tst[0] + '.mp4'
print(new_name)
os.rename(path + '\\' + i, path + '\\' + new_name)
except IndexError:
continue
def renwu(path):
"""修改任务名称的函数,并查找id"""
with open('cid.txt') as f:
data = f.read()
f.close()
data = data.split('\n')
new = [i for i in data if i != '']
for i in range(len(new)):
new[i] = int(new[i])
print(new, '\n')
for i in os.listdir(path):
temp = re.findall('.*?.(\d+).mp4', i)
last_name = re.findall('【原神】(.*?)_.*?', i) # 找【原神】和下划线_之间的文字
shunxu = new.index(int(temp[0])) + 1 # 自己视频索引从1开始
new_name = 'P' + str(shunxu) + '-' + last_name[0] + '.mp4'
print(new_name)
os.rename(path + '\\' + i, path + '\\' + new_name)
def auto_download():
def click_pic(img_src):
location = pyautogui.locateCenterOnScreen(img_src)
if location is not None:
pyautogui.click(location.x, location.y, interval=0.2, duration=0.2) # , button=lOrR
pyautogui.moveTo(location.x + 200, location.y)
click_pic('bilibiliacg.png')
time.sleep(1)
click_pic('360p.png')
time.sleep(1)
pyautogui.press('Enter')
time.sleep(1)
click_pic('cid.png')
time.sleep(5)
while 1:
location = pyautogui.locateCenterOnScreen('finish.png')
if location is not None:
break
time.sleep(0.5)
pyautogui.hotkey('winleft', '3') # txt在第3的位置
time.sleep(1)
pyautogui.hotkey('ctrl', 'v')
pyautogui.press('Enter')
click_pic('bilibiliacg.png')
pyautogui.press(']') # 切换合集中的下一集
def auto_main(nums):
pyautogui.hotkey('winleft', '2') # edge在第2的位置
time.sleep(1)
for i in range(nums):
auto_download()
time.sleep(5) # 每下载完成一个视频后休息5秒
if __name__ == '__main__':
# auto_main(5) # 自动下载视频5个视频
mode = input('请输入模式:1、宝箱 2、任务')
if mode == '1':
baoxiang(path, pre_name)
elif mode == '2':
renwu(renwu_path)

被折叠的 条评论
为什么被折叠?



