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

User:伍昱物起/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

链接