使用者:伍昱物起/tsbpy
跳至導覽
跳至搜尋
這是一個利用Python實現Temple Song模板半自動化的小工具
介紹
限於直接爬數據會被阿b彈驗證碼,所以本代碼主要使用bilibili的api接口實現,在這裡我使用了大佬們做的b站api接口的Python第三方庫,原倉庫已經404了,新倉庫的地址和開發文檔會在下面放出
使用方法
這裡的方法是基於Windows11系統的主要我也沒Mac或者Linux,而且也應該沒人會想著在手機上運行Python吧(
- 環境:首先確保電腦安裝了最新版的Python和pip,Python版本不應低於3.6否則格式化輸出會報錯,pip是用來安裝第三方庫用的
- 0.聯網廢話
- 1.使用Python打開代碼文件(這裡使用vscode等編輯器都可以)
- 2.等待程序檢查api是否可用(也是檢測是否可以使用的過程)
- 3.在命令提示框中輸入視頻BV號,注意BV號格式,不能是AV號,而且必須嚴格區分字母大小寫
- 4.檢查彈出來的模板是否無錯誤,並複製粘貼進條目,隨後enter退出
關於error
- 首先,你需要關掉你的梯子,無論是全局還是規則
- 一般直接運行後出現閃退就是出現了錯誤
- 首先看Python版本,因為代碼格式化輸出時運用了「f""」,這一調用在很老的版本中並不管用
- 其次查看是否安裝/更新了api第三方庫,或者刪除並重新安裝庫(代碼中會提示是否可用,如果不可用的話需要更新庫)
- 如果還是無法解決的話,建議用vscode等編輯器可以詳細看到錯誤信息,這裡只提供通用的辦法,如果要詳細解決辦法請自行通過錯誤信息進行Baidu/Google/ChatGPT
源碼
在這裡放上源碼可能很屎,有佬能改進的話也挺好的不得不說gpt蠻好用的,這段的時間格式化就是gpt寫的
import asyncio
import datetime
from bilibili_api import video
async def main(BVID) -> None:
v = video.Video(bvid=BVID)# 实例化 Video 类
info = await v.get_info()# 获取信息
timestamp = info['pubdate'] # 时间戳
date_object = datetime.datetime.fromtimestamp(timestamp) # 时间戳转换为日期时间对象
time = date_object.strftime("%y/%m/%d") # 时间格式化
if len(time) >= 4 and time[3] == '0':
time = time[:3] + time[4:]
bv=info['bvid']#bv号
pic=info['pic']#封面
title=info['title']#标题
left="{{"
right="}}"
times="Temple Song|color=transparent"
bbid="|bb_id = "
song="|曲目 = "
btime="|投稿日期 = "
bcount= "|再生数量 = "
bilicount="BilibiliCount|id= "
image="|image link = "
#模板
module = (f"\n{left}{times}\n{bbid}{bv}\n{song}{title}\n{btime}{time}\n{bcount}{left}{bilicount}{bv}{right}\n{image}{pic}\n{right}\n")
if run == 'True' and BVID == 'BV1vb411Y7A6':
if bv == 'BV1vb411Y7A6' and pic == 'http://i0.hdslb.com/bfs/archive/d58b6de2016cf0251315a4030eccbbb527301098.jpg' and title == '洛天依,原创《夜间出租车》' and time == '19/2/21':
pass
else:
print(f"Warning:当前软件已经过时,请更新软件!")
input("按enter退出...")
exit()
else:
print(module)
input("Ctrl+C复制后按enter退出...")
if __name__ == "__main__":
run = 'True'
print('检查软件是否可以使用中...')
BV = 'BV1vb411Y7A6'
asyncio.run(main(BV))
print("检查完毕!欢迎使用")
print(f"\n使用办法:\n输入视频的bv号,将自动输出符合规范的Temple Song模板\n")
run = 'False'
BV = input("请输入视频的bv号:")
asyncio.run(main(BV))
對於源碼
主要用了先運行再檢測再運行的辦法,相較上一版更方便一些,能避免一些錯誤
對於exe:因為直接打包會有路徑問題,所以暫且不考慮
示例
環境:Windows11家庭中文版,安裝有Python3.12.4,pip24.2
1.運行
pip3 install bilibili-api-python
2.雙擊打開文件並等待程序檢查完畢後,彈出以下命令框
检查软件是否可以使用中...
[Request][20XX-XX-XX XX:XX:XX,XXX] 激活 buvid3: [XXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXinfoc] 成功
检查完毕!欢迎使用
使用办法:
输入视频的bv号,将自动输出符合规范的Temple Song模板
请输入视频的bv号:
3.隨後輸入「BV1vb411Y7A6」(洛天依-夜間出租車)後命令框輸出
{{Temple Song|color=transparent
|bb_id = BV1vb411Y7A6
|曲目 = 洛天依,原创《夜间出租车》
|投稿日期 = 19/2/21
|再生数量 = {{BilibiliCount|id=BV1vb411Y7A6}}
|image link = http://i0.hdslb.com/bfs/archive/d58b6de2016cf0251315a4030eccbbb527301098.jpg
}}
Ctrl+C复制后按enter退出...
最後退出,這裡是模板效果
