• Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

使用者:伍昱物起/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退出...

最後退出,這裡是模板效果

曲目:洛天依,原創《夜間出租車》
投稿時間:19/2/21
播放數量:已擁有 -- 次播放
連結: Bilibilitv-logo.pngbilibili

連結