### Install bilibili-api Source: https://nemo2011.github.io/bilibili-api Commands to install the stable or development versions of the library. ```bash # 主版本 $ pip3 install bilibili-api-python # 开发版本 $ pip3 install bilibili-api-dev # 最新修改会在 dev 分支 $ pip3 install git+https://github.com/Nemo2011/bilibili-api.git@dev ``` -------------------------------- ### Install Async Request Libraries Source: https://nemo2011.github.io/bilibili-api Required dependencies for handling asynchronous network requests. ```bash # aiohttp $ pip3 install aiohttp # httpx $ pip3 install httpx # curl_cffi $ pip3 install "curl_cffi" ``` -------------------------------- ### Fetch Video Information Source: https://nemo2011.github.io/bilibili-api Example of initializing the Video class and retrieving metadata for a specific Bilibili video. ```python import asyncio from bilibili_api import video async def main() -> None: # 实例化 Video 类 v = video.Video(bvid="BV1uv411q7Mv") # 获取信息 info = await v.get_info() # 打印信息 print(info) if __name__ == "__main__": asyncio.run(main()) ``` -------------------------------- ### Like a Video with Credentials Source: https://nemo2011.github.io/bilibili-api Demonstrates how to authenticate using the Credential class to perform actions like liking a video. ```python import asyncio from bilibili_api import video, Credential async def main() -> None: # 实例化 Credential 类 credential = Credential(sessdata=SESSDATA, bili_jct=BILI_JCT, buvid3=BUVID3) # 实例化 Video 类 v = video.Video(bvid="BVxxxxxxxx", credential=credential) info = await v.get_info() print(info) # 给视频点赞 await v.like(True) if __name__ == '__main__': asyncio.run(main()) ``` -------------------------------- ### 切换请求库 Source: https://nemo2011.github.io/bilibili-api 使用 select_client 函数在不同请求库之间进行切换,注意 httpx 不支持 WebSocket。 ```python from bilibili_api import select_client select_client("curl_cffi") # 选择 curl_cffi,支持伪装浏览器的 TLS / JA3 / Fingerprint select_client("aiohttp") # 选择 aiohttp select_client("httpx") # 选择 httpx,不支持 WebSocket ``` -------------------------------- ### API 调用传参规范 Source: https://nemo2011.github.io/bilibili-api 推荐使用指名参数调用 API,以避免因参数顺序变动导致的错误。 ```python # 推荐 video.get_info(bvid="BV1uv411q7Mv") # 当然也可以这样 kwargs = { "bvid": "BV1uv411q7Mv" } video.get_info(**kwargs) # 不推荐 video.get_info("BV1uv411q7Mv") ``` -------------------------------- ### 配置 curl_cffi 伪装 Source: https://nemo2011.github.io/bilibili-api 通过 request_settings 设置 impersonate 参数以伪装浏览器指纹。 ```python from bilibili_api import request_settings request_settings.set("impersonate", "chrome131") # 第二参数数值参考 curl_cffi 文档 # https://curl-cffi.readthedocs.io/en/latest/impersonate.html ``` -------------------------------- ### 设置请求代理 Source: https://nemo2011.github.io/bilibili-api 当请求频率过快导致 412 错误时,可以通过设置代理来绕过限制。 ```python from bilibili_api import request_settings request_settings.set_proxy("http://your-proxy.com") # 里头填写你的代理地址 request_settings.set_proxy("http://username:password@your-proxy.com") # 如果需要用户名、密码 ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.