{"id":13431484,"url":"https://github.com/OlafZhang/bilib","last_synced_at":"2025-03-16T11:31:47.196Z","repository":{"id":46128120,"uuid":"303242841","full_name":"OlafZhang/bilib","owner":"OlafZhang","description":"整合多个B站原生API，并结合爬取技术的Python爬取用lib","archived":true,"fork":false,"pushed_at":"2024-04-10T08:34:27.000Z","size":6276,"stargazers_count":50,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-28T11:56:35.214Z","etag":null,"topics":["anime","bilibili-api","crawling","danmaku"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OlafZhang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2020-10-12T00:58:40.000Z","updated_at":"2024-10-26T13:39:30.000Z","dependencies_parsed_at":"2024-02-26T19:47:34.712Z","dependency_job_id":"b3fd23ce-158a-4715-86a9-2eee6ffe9fac","html_url":"https://github.com/OlafZhang/bilib","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlafZhang%2Fbilib","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlafZhang%2Fbilib/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlafZhang%2Fbilib/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OlafZhang%2Fbilib/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OlafZhang","download_url":"https://codeload.github.com/OlafZhang/bilib/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243863153,"owners_count":20360275,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anime","bilibili-api","crawling","danmaku"],"created_at":"2024-07-31T02:01:03.457Z","updated_at":"2025-03-16T11:31:46.320Z","avatar_url":"https://github.com/OlafZhang.png","language":"Python","funding_links":[],"categories":["开发"],"sub_categories":["直播脚本"],"readme":"# 🍻bilib🍻\n\n**注：** 2024.4.10，此代码绝大部分功能遇到412错误，已无法使用，弃坑存档\n\n整合多个B站原生API，并结合爬取技术的Python爬取用lib\n\nbili + lib = bilib\n\n![image](https://raw.githubusercontent.com/OlafZhang/bilib/master/images/back.jpg)\n\n![](https://raw.githubusercontent.com/OlafZhang/bilib/master/images/python.svg)\n![](https://raw.githubusercontent.com/OlafZhang/bilib/master/images/license.svg)\n![](https://raw.githubusercontent.com/OlafZhang/bilib/master/images/state.svg)\n\n主要配合以下的模块运行:\n\n| 模块 | 备注 |\n| :---: | :---: |\n| csv | 配合弹幕文件 | \n| re | 配合bs4 |\n| requests | 用于几乎所有的请求，可能需要安装 |\n| traceback | 显示报错信息 |\n| bs4 | 用于查找HTML页信息，需要安装 |\n| fake_useragent | 用于伪造UA，需要安装 |\n| urllib | 用于带Cookie请求，可能需要安装 |\n| pyecharts | 用于绘制高能进度条 |\n| rich | 终端工具，用于显示较为友好的报错界面和显示部分方法的当前进度 |\n\n注意，现在已经彻底修复fake_useragent带来的各种问题，请一同下载fake_useragent_0.1.11.json，并与bilib.py放在同一目录\n\n此仓库的fake_useragent_0.1.11.json已完全移除IE相关的UA，不使用可能会造成爬取遇到异常\n\n\n\n⚠ 声明\n===\n\n* 1、截止至2021年1月3日，以下API正常使用，但不确定以后b站是否会改API，我们将尽可能保证在未来使用新的bilibili API的同时兼容您使用bilib编写的代码\n    \n* 2、虽然这是lib，但我没有安装标准格式进行编写和整理，目前建议的场景是\"外挂\"lib（将此lib放在你的工作目录）\n    \n* 3、由于营销号爬取视频进行再投放的行为相当可耻，故这里不会写关于视频下载的API\n\n📢 说明\n===\n\n前身为danlib，如果你在我的GitHub找到了danlib，你可以继续使用它，但如果你要改为使用bilib，你需要修改你的代码\n    \n这个lib可以帮助你完成用户基本信息（粉丝量关注数等）和弹幕（需提供cid）的爬取\n    \n**实验性功能：** 获取视频评论信息\n    \n请勿将此lib**用于非法用途**（如DoS/DDoS攻击），**作者将不承担任何责任**，使用此lib视为已遵守此规则\n    \n另外，lib中注解可能与README冲突，请以README为准\n\n🌈 原则和出发点\n===\n\n虽然GItHub不缺这样的爬虫代码，但作者希望bilib能作为开发者和初级爬虫玩家，初级编程玩家的利器\n\n核心已经尽可能抛弃bs4，而使用正则表达式，稳定性更好\n\n所有方法均返回字典和列表，极少数返回字符串，这样你可以只需一行代码将全部内容存入变量，然后从变量直接访问key以提取\n\n作者希望能将爬取工作量降到最低，只需要调用方法，除非bilib代码出现bug，否则根本不需要去bilib中修改某些参数，开发者只需做少量工作而获得收益\n\n美中不足就是整体代码维护困难，可读性一般，且部分语句过于繁琐\n\n确实字典返回内容很多，但已经做到了最低难度\n\n🧻 JSON（续上）\n===\n\napi.bilibili.com下几乎所有API均返回JSON格式，bilib将JSON重新格式化为字典，这里是一段将bilib某方法返回结果重新JSON格式化的代码：\n\n    import json\n    import bilib\n    input = bilib.anime_base_info(28229676)\n    print(json.dumps(input,ensure_ascii=False,indent=4,separators=(',',':')))\n\n    控制台输出\u003e\u003e\u003e\n    {\n        \"title\":\"总之就是非常可爱\",\n        \"type\":\"番剧\",\n        \"area\":\"日本\",\n        \"share_url\":\"https://www.bilibili.com/bangumi/media/md28229676\",\n        \"desc\":\"由崎星空对神秘美少女——司一见钟情。面对星空决死的告白，她的回答是“如果你愿意和我结婚，那我就跟你交往”？！充满了星空与司的爱，可爱\u0026高贵的新婚生活开始了！\",\n        \"cover_url\":\"http://i0.hdslb.com/bfs/bangumi/image/3b97bfc609e08417eb391ef975a8648c28c55e04.png\",\n        \"media_id\":28229676,\n        \"ep_id\":341255,\n        \"episode\":\"全12话\",\n        \"rating_count\":65293,\n        \"score\":9.5,\n        \"season_id\":34230,\n        \"coins\":1273408,\n        \"danmakus\":1799536,\n        \"follow\":3999810,\n        \"series_follow\":3997683,\n        \"views\":97200286,\n        \"tag_id\":7011428,\n        \"vip_info\":\"大会员/付费\",\n        \"aid\":\"av499874852\",\n        \"bvid\":\"BV1pK411N7xH\",\n        \"quality\":\"1080P 高码率\",\n        \"quality_ID\":112,\n        \"is_finish\":\"是\",\n        \"is_started\":\"是\",\n        \"actor_list\":[\n            \"由崎司：鬼头明里\",\n            \"由崎星空：榎木淳弥\",\n            \"有栖川要：芹泽优\",\n            \"有栖川绫：上坂堇\",\n            \"键之寺千岁：小原好美\"\n        ],\n        \"staff_list\":[\n            \"原作：畑健二郎\",\n            \"导演：博史池畠\",\n            \"总编剧：兵头一步\",\n            \"角色设计：佐佐木政胜\",\n            \"道具设计：岩畑刚一\",\n            \"色彩设计：歌川律子\",\n            \"美术监督：涩谷幸弘\",\n            \"音响监督：本山哲\",\n            \"音乐：ENDO.\",\n            \"动画制作：SevenArcs\"\n        ],\n        \"flag_list\":[\n            \"日常\",\n            \"恋爱\",\n            \"漫画改\"\n        ],\n        \"alias_list\":[\n            \"\"\n        ],\n        \"showtime\":\"2020年10月3日\",\n        \"origin_name\":\"トニカクカワイイ\"\n    }\n\n不用过于在意JSON和字典，只需要调用方法返回的字典的key即可\n\n🍪 Cookies\n===\n\n访问bilibili会用到很多cookie，其中最重要的是SESSDATA，用于区别不同用户\n\n但是呢，由于cookie_jar的原因，作者暂时删除几乎所有方法传入Cookie的代码，之后仅在必要方法上加入\n\n❌ 异常\n===\n\n现在这个bilib已经包含较精确的错误类型，方便排错和优化自己的代码\n\n除非特殊情况，接下来在API介绍不再说明错误，具体说明如下\n\n| 名称 | 概要 | 说明 |\n| :---:| :---: | :---: |\n| InfoError | 传参异常/未定义异常 | 一般是因为用户输入了错误的数据，例如没有输入bv号的\"BV\",以及目前小概率遇到的未定义异常 |\n| danmakuError | 弹幕文件等异常 | 一般是弹幕文件被删除，或者不符合规范 |\n| Timeout | 请求超时 | 服务器返回“请求超时”，或程序超时，尝试通过set_timeout()调整超时时间 |\n| RequestError | 请求错误 | 服务器返回“啥都木有”，貌似没有此信息，原始API没有返回任何值，如果是用户相关，可能此用户已销号或不存在，bilib内部错误也可能会造成此异常 |\n| SeemsNothing | 返回空数据/传参不正确 | 服务器返回“服务调用超时”，检查超时时间或重新尝试，bilib内部错误或传参异常也可能会造成此异常 |\n| RequestRefuse | 触发反爬取机制 | 服务器返回“请求被拦截”，HTTP状态码为412，建议更换IP或等待至少30分钟后尝试，如果请求含cookie，服务器会记录违规UID |\n\n另外，bilib到目前还是可能存在一些奇奇怪怪的bug，所以引入rich帮助我分析错误\n\n若需要提交bug，请截图提交到issues，而不是直接发文字\n\n💦 demo\n===\n\n这个仓库有两个demo用于获取番剧信息: demo_tamako.py 和 demo_takagi.py\n\n两个都把bilib番剧和弹幕相关方法用的比较完全，同时也可用于协助番剧信息爬取和收集\n\n它们都可以获得番剧信息，番剧弹幕收集\n\n**遇到非正片可能会出现描述异常，但不影响输出**\n\n\n 📕 ```demo_tamako.py```\n -----\n\n* 方法：传入md号(不带md)\n\n* 优点：除非遇到404，412和错误的md号，不可能出现异常，稳定性较好，不仅仅支持番剧\n\n* 缺点：不够智能，只能认md号\n\n 📙 ```demo_takagi.py```\n -----\n\n继承自demo_tamako.py，在执行demo_tamako.py的方法前，把番剧/影视作品名转换为md号，再传入\n\n* 方法：传入番剧/影视作品名称(越准确越好)\n\n* 优点：收集数据更快，不必去URL抓md号\n\n* 缺点：不如demo_tamako.py稳定，结果大于2时要么能全字匹配，要么让用户选择(也可以自动全爬取)\n\ndemo中的方法```get_full_info()```有以下传参\n\n| 参数名 | 解释 | 默认值 | 备注 |\n| :---: | :---: | :---: | :---: |\n| mediaID | md号 | 无，需要用户传参 | demo_tamako.py为手动传参，demo_takagi.py为自动传参 |\n| get_dan | 获取所有集的弹幕(ass) | False | 格式为\"集数 番剧/影视作品 danmaku_file.ass\" |\n| tofile | 导出番剧/影视作品信息到一个txt文件 | False | 格式为\"md号_番剧/影视作品名称.txt\" |\n| cleanup | 清理获取弹幕时的xml文件 | True | 仅get_dan为True时有效 |\n\n另外，在```demo_takagi.py```有一个方法```anime2md()```\n\n| 参数名 | 解释 | 默认值 | 备注 |\n| :---: | :---: | :---: | :---: |\n| keyword | 关键字 | 无，需要用户传参 | 自动将md号传参到get_full_info() |\n| wait | 等待用户选择 | False | True时遇到多结果要求用户输入(单选/全选/全不选)， False时则全部爬取 |\n| strict | 严格匹配模式 | True | 传参到search_media()， 注意事项见search_media()介绍 |\n| unreachable | 包含港澳台结果 | False | 如果显示仅限港澳台播放内容，可能会报错 |\n\n这个仓库有一个demo用于获取视频评论: demo_yui.py\n\n比较粗糙，仅用于```video_comment()```的调试工作\n\n📘 ```demo_yui.py```\n -----\n\n * 方法：传入av号(不带av)，可选择传入页码\n\n 在```demo_yui.py```有一个方法```show_comment()```，均传入到```video_comment()```\n\n| 参数名 | 解释 | 默认值 | 备注 |\n| :---: | :---: | :---: | :---: |\n| aid | 视频av号 | 无，需要用户传参 | 其实是oid，但测试发现与av号相同，兼容番剧 |\n| page | 页码 | 1 |  |\n\n **部分番剧或视频可能会出现异常**\n\n demo取名原因：\n\n    demo_tamako.py对应《玉子市场》的北白川玉子。在年糕方面研究专注，但有点傻乎乎的。\n    所以此demo仅接受md号传参，但稳定性极好。\n\n    demo_takagi.py对应《擅长捉弄的高木同学》的高木同学。虽和玉子都属于类似人妻型，但高木明显更机灵。\n    所以此demo可接受番剧/影视作品名称传参。\n\n    demo_yui.py对应《轻音少女》的平泽唯。在演唱会上能说会道，但非常大条和呆。\n    所以此demo用于评论API的调试。\n\n🔌 额外选项\n===\n\n在bilib中，你可能需要设置其它参数，故这里有若干个方法\n\n⛏ ```set_timeout(set_time)```\n-----\n\n设置所有requests.get()的超时时间，默认超时时间为5(秒)\n\n\n\n😄 稳定功能的API\n===\n\n这部分包含了我从2020年5月开始调试的代码，目前爬取100w+用户数据/100多部番剧、电影和若干部视频后仍能稳定工作\n\n⛏ ```user_info(uid_input)```\n-----\n\n相比于旧的需要爬取一个API和一个HTML，新的直接使用两个API获得数据，更节省流量\n\n* 功能： 获取一个用户的详细信息（粉丝，关注，UID，昵称）\n\n* 必要的传参：用户的UID（uid_input）\n\n* 选择的传参：无\n\n* 返回：字典，参数如下\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| name | 昵称 |  |\n| uid | UID |  |\n| fans | 粉丝数 |  |\n| following | 关注数 |  |\n| sex | 性别 | 男/女/保密 |\n| level | 等级 |  |\n| face_url | 头像URL |  |\n| sign | 个性签名 | 可以为空值 |\n| birthday | 生日 | 可以为空值 |\n| coins | 硬币 | 意义不明，可能是获币数量 |\n| vip_type | 是否为大会员 | 空值/大会员/年度大会员 |\n| liveStatus | 直播间状态 | 0为未开播，1为开播，没开过直播返回null |\n| stream_room_id | 直播房间号 | 没开过直播返回null |\n| hard_core_vip | 是否是硬核会员 | 布尔值 |\n\n* 补充：由于愚人节会临时将大会员改为小会员，bilib已做好相应对策，但可能会失效，故在此提醒\n\n\n\n⛏ ```get_danmaku(cid_input, reset=False)```\n-----\n\n💡 使用UCS-2(UTF-16)替换UTF-8编解码。UCS-2编码弹幕的表现：类似某些supreme，awsl等艺术字弹幕\n\n* 功能： 获取一个视频的弹幕，包括番剧/电影（最多返回8000条）\n\n* 必要的传参：视频的cid（cid_input）， 只能输入数字， 可以通过实验性功能或者浏览器F12功能获得cid\n\n* 选择的传参：文件存在时强制刷新（reset），默认不刷新（False）\n\n* 返回：弹幕文件的绝对路径，文件为csv，直接使用cid命名，同时打印绝对路径\n\n可能会报错\"cid error, check cid.\"，一般是此视频没有弹幕或cid错误。\n\n\n\n⛏ ```listall_danmaku(file_path, stamp=False)```\n-----\n\n💡 已经修复UnicodeEncodeError，使用UCS-2的特殊字符可能不能在IDLE显示，PyCharm正常显示\n\n* 功能：处理弹幕文件，并输出\n\n* 必要的传参：弹幕文件的绝对路径（file_path）\n\n* 选择的传参：返回现实时间的时间戳而非转化的时间（stamp），默认返回转化的时间（False）\n\n* 返回：字典，key为序号(int)，value为列表，参数如下：\n\n| 列表编号 | 解释 | 备注 | 举例 |\n| :---:| :---: | :---: | :---: |\n| 0 | 发送位置 | 原始信息为秒 | 00:13:45.17700 |\n| 1 | 弹幕类型 |  | 滚动弹幕 |\n| 2 | 弹幕字号 |  | 25 |\n| 3 | 弹幕颜色 | 原始信息为十六进制颜色值再转为十进制 | ffffff |\n| 4 | 现实发送时间 | 原始信息为时间戳 | 2020-11-18 19:02:15 |\n| 5 | 弹幕池 |  | 普通弹幕池 |\n| 6 | 用户ID | 被加密，不推荐解密，因为解密结果不唯一 | 733f59 |\n| 7 | rowID | 弹幕ID号，全站唯一 | 41185527935795205 |\n| 8 | 发送内容 | 如果是高级弹幕，还会在这里包含一些参数 | awsl |\n\n原始信息：\n\n| 解释 | 举例 |\n| :---: | :---: |\n| 发送位置 | 825.17700 |\n| 弹幕类型 | 1 |\n| 弹幕字号 | 25 |\n| 弹幕颜色 | 16777215 |\n| 现实发送时间 | 1605697335 |\n| 弹幕池 | 0 |\n| 用户ID | 733f59 |\n| rowID | 41185527935795205 |\n| 发送内容 | awsl |\n\n如果遇到了全新的弹幕类型，会不处理，返回原生数据\n\n⛏ ```count_danmaku(file_path)```\n-----\n\n* 功能：获取弹幕文件行数\n\n* 必要的传参：弹幕文件的绝对路径（file_path）\n\n* 选择的传参：无\n\n* 返回：一个数字，此为弹幕文件总行数\n\n⚠ **请不要配合get_danmaku_raw使用**，因为得出的数值不正确\n\n\n\n⛏ ```get_danmaku_raw(cid_input, reset=False)```\n-----\n\n由于此API设计初衷是配合ass转换工具的，所以没有单独做xml转csv的API\n\n另外，为配合转换工具，设置了UTF-8编码而非UTF-16\n\n如果需要数据分析，请直接使用get_danmaku()\n\n* 功能： 获取一个视频的弹幕(原始文件，即xml)\n\n* 必要的传参：视频的cid（cid_input）， 只能输入数字, 可以通过实验性功能或者浏览器F12功能获得cid\n\n* 选择的传参：文件存在时强制刷新（reset），默认不刷新（False）\n\n* 返回：弹幕文件的绝对路径，文件为xml，直接使用cid命名，同时打印绝对路径\n\n\n\n⛏ ```raw2ass(file_path)```\n-----\n\n💡需要调用[Niconvert](https://github.com/muzuiget/niconvert)\n\n如果你要自己去下载官方版，请注意：作者针对此API将Niconvert进行了小改，以便能在命令行运行，下载原版需要自行调整\n\n* 功能： 将xml标准格式转换为ass字幕文件，以便能在第三方播放器实现弹幕效果\n\n* 必要的传参：xml文件绝对路径(file_path）\n\n* 选择的传参：无\n\n* 返回：ass字幕文件的绝对路径，文件为ass，直接使用cid命名，同时打印绝对路径\n\n* 异常：遇到大文件极小概率抛出FAIL异常，请手动修改for循环的超时等待时间\n\n\n\n⛏ ```anime_base_info(media_id)```\n-----\n\n⚠ 在极个别爬取冷门番剧(例如没有评分)时会因为```anime_episode_info```中API不返回任何值导致bilib报错(Something error)\n\n考虑到这可能是一个不太重要的bug，故暂时不修复\n\n**💡 此API为本次开发重点**\n\n经历多次改动，现功能性相当强，可以用作番剧信息收集或声优信息整理\n\n虽然说爬取番剧/电影，但同时也能兼容一些综艺类节目，以此推测这类的架构都是一样的\n\n**在说明API前，需要说明一些B站在番剧方面API的一些参数（比较复杂），这些参数一般可在URL中找到**\n\n(电影/番剧/综艺等在此表统称番剧)\n\n| 名称 | 中文名 | 解释 | 例子 | 获取途径 |\n| :---:| :---: | :---: | :---: | :---: |\n| media_id | 番剧md号 | 每个番剧的特征号(和av号一样的作用) | md135652(JOJO的奇妙冒险 第五季) | 在番剧介绍页URL中出现，在此API作为必须传入的参数 |\n| season_id | 番剧id | 也是每个番剧的特征号(个别番剧的md号和ss号相同) | ss3398(冰菓) | 小概率会在番剧介绍页URL中出现，可以通过此API获取，也会在番剧播放页小概率出现，此时通过?id=1的形式传参达到播放不同集的效果 |\n| ep_id | 剧集编号 | 每集的特征号，全B站唯一 | ep234488(玉子市场 第一集) | 在番剧播放页的URL中就可以找到，可以通过此API获取，anime_base_info(media_id)返回的ep_id为最后一集的 |\n\t\n这些参数一般会一起在B站API出现，md号在介绍页URL必能找到\n\n还有一个不太重要的参数：tag_id，标签ID，每个番剧都不同，根据观察，这个可能和向用户推送关于此番剧的二创视频有关\n\n* 功能：获取番剧基本信息\n\n* 必要的传参：番剧的md号（media_id），输入数字\n\n* 选择的传参：无\n\n* 返回：字典， 参数如下:\n\n| 参数名(key) | 解释 | 备注 | 返回值举例 |\n| :---:| :---: | :---: | :---: |\n| title | 标题 | | 玉子市场 |\n| type | 类型 | 番剧/电影(TV版和剧场版均为番剧) | 番剧 |\n| area | 地区 |  | 日本 |\n| share_url | 介绍页URL | 并不是播放页URL，此URL含mediaID | https://www.bilibili.com/bangumi/media/md116772 |\n| desc | 简介 | “xxx译制”信息会被删除 | 座落某个小镇的兔子商店街上，有一间日式饼店，住着一位... ... |\n| cover_url | 介绍页封面URL| | http://i0.hdslb.com/bfs/bangumi/67da3dae76e526a925b78b1d8abe21c870333491.jpg |\n| media_id | md号 | 每部番剧唯一 | 116772 |\n| ep_id | 剧集编号 | 此ep号为最后一集的 | 234499 |\n| episode | 集数 | 对于一些电影来说则是上映时间（例如“2018-01-18上映”），请注意过滤 | 全12话 |\n| rating_count | 等级编号 | 猜测是总排行榜的RANK | 21343 |\n| score | 评分 | | 9.8 |\n| season_id | 番剧ID  | | 4262 |\n| coins | 总投币数 | | 139495 |\n| danmakus | 总弹幕量 | | 795287 |\n| follow | 追番数 | | 1906603 |\n| series_follow | 系列追番数 | | 2533501 |\n| views | 总播放量 | | 21325692 |\n| tag_id | 标签ID | bilibili用于向用户推送其它番剧/电影或此番剧/电影的二创 | 278208 |\n| vip_info | 免费/大会员/付费 | 有时不是很准，在修复 | 免费 |\n| aid | av号 | **第一集**或**全集**的av号 | av27045209 |\n| bvid | bv号 | **第一集**或**全集**的bv号 | BV1fs41177WY |\n| quality | 最高质量 | 一般表示游客支持的最高质量 | 1080P 高码率 |\n| quality_ID | 最高画质编号 | 用于辅助分析 | 112 |\n| is_finish | 是否完结 |  | 是 |\n| is_started | 是否开播 | 目前暂时没遇到未开播的作品 | 是 |\n| actor_list | 演员/声优列表 | 这是一个列表 | 此处略，每个列表元素的组合是“角色：声优”或者只有演员 |\n| staff_list | STAFF列表 | 这是一个列表 | 此处略，每个列表元素的组合是“职位：姓名” |\n| flag_list | 标签列表 | 这是一个列表 | ['萌系', '少女', '治愈', '日常'] |\n| alias_list | 别称列表 | 这是一个列表 | ['玉子市场'] |\n| showtime | 开播/上映时间 | | 2013年1月9日 |\n| origin_name | 原名 | 语言为来源地区所使用的默认语言，国漫等大陆作品会返回不支持 | たまこまーけっと |\n\n对于比较早的番剧(测试《玉子市场》)，番剧所有集**都在一个av号下**，对于新出的番剧(测试《公主连结Re:Dive》)，**每集**都有**单独的av号**\n\n如果你要做类似下载等同时需要av号和cid号的场景，请使用```anime_episode_info(season_id)```中的数据\n\n **🎞 质量编号科普：**\n \n| 质量编号 | 对应画质 |\n| :---:| :---: |\n| 125 | 4K HDR(10bit)|\n| 120 | 4K |\n| 116 | 1080P 60FPS高帧率 |\n| 112 | 1080P+ 高比特率 |\n| 80 | 1080P |\n| 74 | 720P 60FPS高帧率 |\n| 64 | 720P |\n| 32 | 480P |\n| 16 | 360P | \n| 0 | 自动 |\n    \n⚠ 注意，这里的desc和video_info的desc性质不同，不能混用\n\n相比于视频的介绍（desc），番剧的介绍看起来不能通过API来获取，只能截取HTML后使用bs4和正则表达式来搜索，比较麻烦\n\n加入识别原生分辨率，是否收费等功能，已经集成av和bv的获取\n    \n另外，部分番剧不能返回正确的清晰度，因为有限制，且并不打算在每个ep求清晰度，因为会造成大量请求\n\n* 另外说明：目前所有在media_id_pool.py的番剧全部通过测试，已配置反爬取告警。仍然存在潜在bug。\n    \n⛏ ```anime_episode_info(season_id)```\n-----\n\n* 功能：获取指定番剧/电影的av，cid，标题等高级信息，以及每集的信息\n\n* 必要的传参：番剧的id号（season_id），输入数字\n\n* 选择的传参：无\n\n* 返回：字典，key为集编号（str而非int，因为在冰菓遇到了11.5），value为字典，参数如下:\n\n| 参数名(key) | 解释 | 备注 | 返回值举例 |\n| :---:| :---: | :---: | :---: |\n| type_name | 所属大类 | 例如PV等，默认值为“正片” | 正片 |\n| aid | av号 | 可能每集不同 | 52307583 |\n| cid | cid号 | 弹幕池编号 | 91550935  |\n| ep_id | 剧集编号 |  | 21278 |\n| title_long | 当前集长标题 |  | Live House！ |\n| cover_url | 当前集封面URL |  | http://i0.hdslb.com/bfs/bangumi/a2bbb9e95ed53d5ff85a7a2cca7524a9c8455edd.jpg |\n| share_url | 当前集播放页URL | 此URL含epID或seasonID | https://www.bilibili.com/bangumi/play/ep21278 |\n\n对于比较早的番剧(测试《玉子市场》)，番剧所有集**都在一个av号下**，对于新出的番剧(测试《公主连结Re:Dive》)，**每集**都有**单独的av号**\n\n如果你要做类似下载等同时需要av号和cid号的场景，请使用```anime_episode_info(season_id)```中的数据\n\n* 另外说明：目前所有在media_id_pool.py的番剧全部通过测试，已配置反爬取告警。仍然存在潜在bug。\n\n\n\n⛏ ```get_resolution(id_input,getid = False)```\n-----\n\n**💡 一般仅表示游客支持的最高质量**\n\n* 功能：获取视频最高清晰度\n\n* 必要的传参：av号，bv号或ep号，必须带字母\n\n* 选择的传参：getid，返回质量编号(True)而非清晰度描述(False)\n\n* 返回：字符串，清晰度描述或质量编号\n\n另外说明：由于同时支持视频和某些番剧，故单独做了此API，作为备份，已集成到video_info()，anime_base_info()则使用了另外的方法\n    \n由于我真的没料到B站出了HDR视频，为预防将来出现更高规格的视频，新编号一律返回类似“疑似错误的编号(250)”的形式\n\n* 报错: 部分番剧可能会返回\"不支持\"\n\n\n\n⛏ ```video_info(id_input)```\n-----\n\n不太推荐在番剧使用此API，除bv号和av号外，其它数据均可通过anime_base_info(media_id)获取\n    \n新加入原生分辨率识别功能，完美支持所有视频\n    \n强行在番剧可能会在清晰度相关key返回\"不支持\"\n\n* 功能：获取视频的信息\n\n* 必要的传参：视频av号或bv号（id_input），\"av\"和\"bv\"也要一同输入\n\n* 选择的传参：无\n\n* 返回：字典，参数如下:\n\n| 参数名(key) | 解释 | 备注 |\n| :---: | :---: | :---: |\n| aid | av号 |  |\n| bvid | bv号 |  |\n| type_id | 类型编号 |  |\n| type_name | 类型描述 |  |\n| pic_url | 封面图片URL |  |\n| put_time | 审核成功时间 | 时间戳 |\n| ctime | 投稿时间 | 时间戳 |\n| title | 视频标题 |  |\n| desc | 视频描述 |  |\n| argue_msg | 视频提醒信息 | 例如“视频内含有危险行为，请勿模仿” |\n| state | 状态 | 推测被封杀的视频是另外的数值，正常是0 |\n| evaluation | 评分描述 | 仅互动视频有此参数 |\n| owner_name | up主昵称 |  |\n| owner_uid | up主的UID |  |\n| owner_face | up主的头像图片URL |  |\n| view | 观看量 |  |\n| danmaku | 弹幕量 |  |\n| reply | 评论量 |  |\n| favorite | 收藏量 |  |\n| coin | 投币量 |  |\n| share | 分享量 |  |\n| like | 点赞量 |  |\n| now_rank | 当前全站排名 | 仅此视频为当前热门时有效，否则为0 |\n| his_rank | 历史最高全站排名 | 默认为0 |\n| quality | 最高画质 | 仅表示游客和非大会员支持的最高画质，且为第一集的 |\n| quality_id | 最高画质编号 | 用于辅助分析，且为第一集的 |\n| total_page | 分集数量 | 至少为1 |\n| total_duration | 视频总时长 | 所有分p视频的总时长，单位为秒 |\n| staff | 联合投稿的staff名单 | 这是一个字典 |\n| video | 视频分集信息(*即使只有一集*) | 这是一个字典 |\n\nstaff作为一个字典有另外的参数，**仅在联合投稿有效**，否则返回空字典\n\nstaff中，key为编号，从0开始，value为详细信息的字典\n\n每个value中的参数如下：\n\n| 参数名(key) | 解释 | 备注 |\n| :---: | :---: | :---: |\n| uid | 用户UID |  |\n| work | 在视频中的分工 |  |\n| name | 用户名 |  |\n| face_url | 用户的头像图片URL |  |\n| vip_type | 是否为大会员 | 年度大会员: 2 ,大会员: 1 ,普通用户: 0 |\n| is_famous | 是否为知名UP(小闪电) | 是为1，否为0 |\n| famous_name | 知名UP描述 | 非知名UP返回空值 |\n| follower | 粉丝数量 |  |\n\nvideo作为一个字典有另外的参数\n\nvideo中，key为编号，value为详细信息的字典\n\n如果是互动视频等情况，key从0开始，否则从1开始\n\n另外，互动视频每个分集信息可能用了另外的API，暂时无解\n\n每个value中的参数如下：\n\n| 参数名(key) | 解释 | 备注 |\n| :---: | :---: | :---: |\n| cid | 弹幕cid | 每个分集不同，下载视频必要参数之一 |\n| name | 分P名称 | 单分P也会有名称 |\n| ep | 分P编号 | 从1开始 |\n| duration | 视频长度 | 单位为秒 |\n| vid | *未知参数* | 默认空白 |\n| weblink | *未知参数* | 默认空白 |\n| width | 视频宽度 | 单位为像素，例如1920 |\n| height | 视频高度 | 单位为像素，例如1080 |\n| rotate | 是否翻转(*未知参数*) | 默认为0 |\n\n**另外说明：由于番剧/电影也存在av号/bv号，所有此API对于番剧等可能有效，多p情况可能异常**\n\n⛏ ```search_media(keyword, strict = True ,type = \"bangumi\")```\n-----\n\n此API因本人一个视频项目应运而生\n\n由于本人最近学会正则表达式，故稳定性提高，但仍然有可能因为反爬取导致奇怪的bug\n\n会自动检测页数，爬取一个页后会打印当前进度，并休眠5秒\n\n* 功能：搜索番剧/影视名称，返回md号\n\n* 必要的传参：要搜索的番剧名(keyword)\n\n* 选择的传参：严格匹配模式(strict)，默认过滤掉没有关键字的结果(True)；查询种类(type)，默认为番剧\n\n**查询种类通过改变查询URL中的关键字实现，具体解释如下：**\n\n| 传入到URL的关键字 | 备注 |\n| :---: | :---: |\n| bangumi(番剧) | 对应番剧和某些剧场版电影 |\n| pgc(影视) | 对应电影、综艺、电视剧和某些剧场版电影等 |\n\n\n**⚠ 虽然严格模式可以提高准确性，但不支持别名/原名搜索**\n\n例如搜索\"*玉子市场剧场版*\"或者\"*たまこラブストーリー*\"时，并不会返回\"*玉子爱情故事*\"，而是返回**空值**\n    \n关闭严格模式时有返回值\n\n* 返回：字典，key为番剧名称，value为md号(带md)\n\n* 报错：没有查到会返回空字典(无论是不是404)，412会抛出异常\n\n\n\n⛏ ```search_video_all(keyword,tids_1=0,tids_2=0)```以及```search_video(keyword,page=1,tids_1=0,tids_2=0)```\n-----\n\n❗ 目前发现搜索内容带空格时会影响代码稳定性，貌似找出了解决办法，但仍有可能发生\n\n此API为有需要做统计类视频的同学奠定基础\n\n由于本人最近学会正则表达式，故稳定性提高，但仍然有可能因为反爬取导致奇怪的bug\n\n会自动检测页数，通过rich显示当前进度，并休眠5秒\n\n* 功能：搜索视频名称，返回一个列表，每个元素由字典组成，包含标题，BV号，播放量，up主和发布时间\n\n* 必要的传参：要搜索的关键字(keyword)\n\n* 选择的传参：大分类号(tids_1)，小分类号(tids_2)，对于```search_video(keyword,page=1,tids_1=0,tids_2=0)```，还有页码号(page)\n\n* 返回：列表，元素为字典，参数如下：\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| bvid | bv号 |  |\n| title | 视频标题 |  |\n| put_time | 投稿时间 | 统计类视频重要参数 |\n| up_name | up主 | 注意，搜索up名也会返回结果，即使关键字与视频不相关 |\n| playback | 播放量 | 不以万为单位 |\n| length | 视频长度 | 带冒号的格式 |\n\n\n* 报错：没有查到会返回空列表(无论是不是404)，412会抛出异常，并导出未完成的列表\n\n```search_video(keyword,page=1,tids_1=0,tids_2=0)```,可以指定爬取页\n\n相比```search_video_all(keyword,tids_1=0,tids_2=0)```爬取全部更自由，但不能返回总页数\n\n关于大分类号和小分类号的用法： \n\n    1. 你可以不传参，这样就是在全部分类下搜索\n    2. 你可以只传入大分类号，这样就是在大分类下搜索\n    3. 如果需要搜索小分类，必须同时指定大分类号和小分类号\n\n```search_video_all(keyword,tids_1=0,tids_2=0)```和```search_video(keyword,page=1,tids_1=0,tids_2=0)```均支持分类查找。\n\n分类号说明可以在[class.md](https://github.com/OlafZhang/bilib/blob/main/class.md)下找到\n\n⛏ ```online_watch(id_input,cid)```\n-----\n\nB站前段时间将视频在线观看人数分成了两种（网页端和全站），直到现在才找到对应API\n\n* 功能： 获取一个视频(所有具有AV/BV号和cid的视频)的在线观看人数\n\n* 必要的传参：视频AV/BV号和当前分集的cid号\n\n* 选择的传参：无\n\n* 返回：字典，参数如下\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| h5_online | 网页端(H5端和某些非官方app)的在线观看数 |  |\n| total_online | 网页端和移动端等的在线观看数 |  |\n\n* 补充：目前在网页端遇到电影不显示全站播放人数的情况，但API却有其数据。\n\n😫 实验性API\n===\n\n这些API的实验样本较少，或其原生API参数过多，需要一定的研究时间和测试时间\n\n⛏ ```gaoneng_bar(video_cid)```\n-----\n\n* 功能：根据同时间弹幕数量，结合pyecharts绘制的“伪”高能进度条，理论比原版的更精确\n\n* 必要的传参：目标视频的cid号\n\n* 选择的传参：无\n\n* 返回：无返回值，但会在工作目录生成**render.html**，此为绘制出的图。\n\n使用此API时会显示csv文件路径，因为调用了bilib中的```get_danmaku(cid_input, reset=False)```，不会产生任何影响\n\n**此API目前极其粗糙，后续将考虑引入配置文件**\n\n⛏ ```video_comment(aid, page = 1, video = True)```\n-----\n\n此API参数过多，故存在不稳定性，也不打算全部照搬\n\n另外还在继续研究，你可能发现了没有一些参数\n\n默认第一页第一个是最新评论，热评和置顶可能与主评论区域有重复\n\n**兼容专栏评论**\n\n* 功能：此API用于获取一个视频的评论，仅接受av号传参\n\n* 必要的传参：目标视频的av号（aid），或者专栏的cv号（其实就是视频/番剧/专栏的oid号，但是与av/cv一样）\n\n* 选择的传参：评论页数（page），默认为1；是视频还是专栏(video)，默认是视频\n\n* 返回：复合字典\n\n如果没有人在任何评论下回复的话，那么key为编号，value则包含另外一个字典，以此举例参数如下：\n\n（如果是主评论区域，编号为纯数字，否则就是类似于\"HOT-1\"，\"UPPER\"的值）\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| ctime | 发送时间对应时间戳 |  |\n| rpid | 此评论的特征号 |  |\n| like | 点赞数 |  |\n| rcount | 此楼评论总数 |  |\n| mid | 用户UID |  |\n| uname | 用户名 |  |\n| sex | 性别 |  |\n| sign | 个性签名 |  |\n| message | 评论内容 |  |\n| replies_item | 回复内容 | 在此例子中，由于没有评论，返回字符串None,若有，则会返回与此表相差无几的字典 |\n| up_like | UP是否点赞 | 布尔值 |\n| up_reply | UP是否评论此楼 | 布尔值 |\n| total_page | 总评论页数 | 每20评论一页，偶尔页数会不正确，对于热评和置顶可能无意义 |\n\n如果评论下有回复，则replies_item为字典，key为编号，value则包含另外一个字典，参数如下：\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| ctime | 发送时间对应时间戳 |  |\n| rpid | 此评论的特征号 | 与此楼的根评论不同 |\n| like | 点赞数 |  |\n| mid | 用户UID |  |\n| uname | 用户名 |  |\n| sex | 性别 |  |\n| sign | 个性签名 |  |\n| message | 评论内容 |  |\n| up_like | UP是否点赞 | 布尔值 |\n| up_reply | UP是否评论此楼 | 布尔值 |\n\n评论API官方有两个，另一个更稳定，但需要jQuery，暂时未研究出来（同样只接受av号）\n\n目前测试大部分视频和部分番剧（包括合集和非合集）都在demo_yui.py通过测试。\n\n⛏ ```xml2csv(path)```\n-----\n\n* 功能：将xml格式弹幕转化为高可读性的csv文件\n\n* 必要的传参：目标视频的cid号（cid）\n\n* 选择的传参：无\n\n* 返回：返回并打印csv文件的绝对路径\n\n之前版本借鉴了他人的代码，但代码过长，现自行制作独立版本\n\n```get_danmaku(cid_input, reset=False)```已经使用了```xml2csv(path)```，无需在意变化\n\n唯一不足是可能不支持特殊弹幕\n\n⛏ ```list_follower(uid,page=1,step=20)```\n-----\n\n**最多返回1000个用户**\n\n* 功能：列出某个用户全部粉丝列表\n\n* 必要的传参：用户的UID（uid）\n\n* 选择的传参：指定页码(page)，默认为1；单次返回数量(step)，默认单次返回20条结果，最大单次返回50条\n\n* 返回：字典，key为编号(0开始)，元素为字典，参数如下：\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| mid | 用户UID |  |\n| uname | 用户名 |  |\n| mtime | 被关注时间 | 时间戳 |\n\n必须带Cookie，否则只能返回5*20条结果\n\n⛏ ```list_following(uid,page=1,step=20)```\n-----\n\n**最多返回1000个用户**\n\n* 功能：列出某个用户全部关注列表\n\n* 必要的传参：用户的UID（uid）\n\n* 选择的传参：指定页码(page)，默认为1；单次返回数量(step)，默认单次返回20条结果，最大单次返回50条\n\n* 返回：字典，key为编号(0开始)，元素为字典，参数如下：\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| mid | 用户UID |  |\n| uname | 用户名 |  |\n| mtime | 关注时间 | 时间戳 |\n\n必须带Cookie，否则只能返回5*20条结果\n\n⛏ ```up_video_list(uid,page,step=30,tid=0,keyword=\"\",order_way=\"pubdate\")```\n-----\n\n* 功能：获取某一个用户的投稿视频列表\n\n* 必要的传参：用户的UID(uid)和页码(page)\n\n* 选择的传参：单次返回数量(step)，默认为30；视频总类编号(tid)，默认为0，即全部种类；关键字(keyword)，默认无，即不启用搜索功能，排序方式(order_way)，默认为pubdate，即最新发布\n\n* 返回：复合字典\n\n排序方式有三种：\n\n    pubdate 最新发布\n    click 最多播放\n    stow 最多收藏\n\n复合字典由两个字典和三个int参数组成：\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| type_list | 视频种类列表 | 这是一个字典，仅显示此用户所有视频的种类 |\n| video_list | 视频列表 | 这是一个字典 |\n| totalVideo | 此up的总视频数 | 若设置了keyword，此数值就与keyword相关而与up全部视频无关，下两个参数同样如此 |\n| maxPage | 当前step(默认30个视频/页)下的最大页数 |  |\n| lastPageVideo | 当前step下最后一页的视频数量 | 最大为30，最小为1 |\n\n视频种类列表：key为tid，value为字典\n\n**tid并不会按顺序排列**\n\n每个value字典参数如下：\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| name | 种类名称 |  |\n| count | 此用户该种类视频数量 |  |\n\n视频列表：key为序号，value为字典\n\n每个value字典参数如下：\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| comment | 视频评论数 |  |\n| typeid | 视频种类ID号(tid) |  |\n| play | 播放量 |  |\n| pic | 封面图片URL |  |\n| subtitle | 副标题 | 一般为空 |\n| description | 描述 |  |\n| copyright | 版权信息 | 可能为\"未经作者授权，禁止转载\"/\"转载的视频\",或者数字(表示未识别的版权信息) |\n| title | 视频标题 |  |\n| review | **未知参数** |  |\n| author | UP主名称 | 联合投稿时可能会遇到错误 |\n| mid | UP主的UID |  |\n| created | 投稿时间 | 格式为%Y-%m-%d %H:%M:%S |\n| length | 视频长度 |  |\n| video_review | **未知参数** |  |\n| aid | 视频的av号 |  |\n| bvid | 视频的bv号 |  |\n| hide_click | **未知参数** | 默认为false |\n| is_pay | **未知参数** | 默认为0 |\n| is_union_video | 是否为联合投稿 | 默认为0，即false |\n| is_steins_gate | **未知参数** | 默认为0 |\n| is_live_playback | 是否为直播回放视频 | 默认为0，即false |\n\n⛏ ```send_video_comment(id, message, cookie, ua)```\n-----\n\n🎈 此API在Bulletrushman/bilibiliTools（Apache 2.0 许可证）的基础上做了修改，感谢作者\n\n* 功能：对某个视频发送评论\n\n* 必要的传参：视频id(av号或bv号)，发送内容(message)，你的用户的全部Cookie(cookie)，登录此用户的浏览器User-Agent标识符(ua)\n\n    一般cookie和ua都能在浏览器的开发者工具找到，都在请求头(Request Header)中\n\n    ua使用cookie登录的对应浏览器主要是为了**防封号**\n\n* 选择的传参：无\n\n* 返回：发送结果，成功返回Success，其他原因返回代码和原因\n\n**此API内部没有完成优化，有潜在bug**\n\n\n\n⛏ ```report_danmaku(cid, dmid, reason, cookie, ua, block = False, content = \"\")```\n-----\n\n此功能主要解决视频下刷人名的问题，虽然不能进入后端删除，但可以举报弹幕，进而间接删除它\n\n对于那些不遵守弹幕礼仪污染环境的小学生，本人想说：\n\n![](https://raw.githubusercontent.com/OlafZhang/bilib/master/images/serious.jpg)\n\n* 功能：对某个视频下特定弹幕进行实名举报\n\n* 必要的传参：当前视频分P的cid(cid);弹幕ID(dmid，又叫row_ID);举报原因代码(reason);你的用户的全部Cookie(cookie);登录此用户的浏览器User-Agent标识符(ua)\n\n    一般cookie和ua都能在浏览器的开发者工具找到，都在请求头(Request Header)中\n\n    ua使用cookie登录的对应浏览器主要是为了**防封号**\n\n* 选择的传参：是否拉黑弹幕发送者(block)，默认不发送;原因具体说明(content)，仅在原因为其它时需要输入\n\n* 返回：发送结果，成功返回Success，其他原因返回代码和原因\n\n原因列表：\n| 原因代码 | 解释 | 备注 |\n| :---:| :---: | :---: |\n| 0 | 违法违禁 |  |\n| 1 | 色情低俗 |  |\n| 2 | 恶意刷屏 |  |\n| 3 | 赌博诈骗 |  |\n| 4 | 人身攻击 |  |\n| 5 | 侵犯隐私 |  |\n| 6 | 垃圾广告 |  |\n| 7 | 视频无关 |  |\n| 8 | 引战 |  |\n| 9 | 剧透 |  |\n| 10 | 青少年不良信息 |  |\n| 11 | 其它 | 需要说明原因(content) |\n\n\n⛏ ```up_article_list(uid,page,step=12,order_way=\"publish_time\")```\n-----\n\n* 功能：获取某一个用户的投稿专栏列表\n\n* 必要的传参：用户的UID(uid)和页码(page)\n\n* 选择的传参：单次返回数量(step)，默认为12；排序方式(order_way)，默认为publish_time，即最新发布\n\n* 返回：字典\n\n排序方式有三种：\n\n    publish_time 最新发布\n    view 最多阅读\n    fav 最多收藏\n\n字典参数如下（key为序号，从0开始，value为字典）：\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| id | 专栏ID号（cv号） |  |\n| class | 专栏内容涉及到的种类 | 这是一个列表 |\n| title | 专栏标题 |  |\n| summary | 专栏摘要 | 一般为专栏前几句话 |\n| publish_time | 发布时间 | 时间戳 |\n| view | 阅读人数 |  |\n| favorite | 收藏量 |  |\n| like | 点赞量 |  |\n| reply | 评论量 |  |\n| share | 分享量 |  |\n| coin | 投币量 |  |\n| word_conut | 专栏字数 |  |\n| cover_url | 专栏封面URL |  |\n| include_md | 包含的媒体内容 | 如果专栏包含了番剧/电影，则此处是md号，目前没有做其他种类测试，不包含媒体内容是该值为0或为空 |\n\n\n\n⛏ ```listall_danmaku_live(roomid,type=\"room\")```\n-----\n\n* 功能：获取一个直播间的弹幕列表（最多10条弹幕）\n\n* 必要的传参：直播房间号(roomid)\n\n* 选择的传参：弹幕分类（type）,默认显示全部弹幕(room)，如果只显示管理员弹幕，改为\"admin\"即可\n\n* 返回：字典\n\n字典参数如下（key为序号，从0开始，value为字典）：\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| timestamp | 发送时的时间戳 |  |\n| name | 发送者用户名 |  |\n| uid | 发送者的UID |  |\n| text | 弹幕内容 |  |\n\n有现成的直播弹幕演示脚本**live_danmaku.py**，只需要修改直播房间号和获取弹幕时间即可\n\n如果直播间未开播，会报错：**bilib.InfoError: Live is closed or Something error.**\n\n\n\n⛏ ```send_danmaku_video(id_input, page, send_time, mode, message, cookie, ua, color=\"FFFFFF\", fontsize=25, pool=0)```\n-----\n\n\n* 功能：对某个视频发送弹幕\n\n* 必要的传参：视频id(id_input，av号或bv号)，视频分p（page，以1开始），发送的时间点（send_time，单位为秒，支持小数和整数），弹幕模式（mode，默认为滚动弹幕），发送内容(message)，你的用户的全部Cookie(cookie)，登录此用户的浏览器User-Agent标识符(ua)\n\n    一般cookie和ua都能在浏览器的开发者工具找到，都在请求头(Request Header)中\n\n    ua使用cookie登录的对应浏览器主要是为了**防封号**\n\n    弹幕模式稍后说明\n\n* 选择的传参：弹幕颜色（color，十六进制RGB值，默认为白色），字体大小（fontsize，默认为25，即默认大小），弹幕池（pool,默认为0）\n\n* 返回：发送结果，成功返回Success，其他原因返回代码和原因\n\n| 弹幕模式(mode) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| 1 | 滚动弹幕 |  |\n| 4 | 底部弹幕 |  |\n| 5 | 顶部弹幕 |  |\n| 6 | 逆向弹幕 | 实测不可用 |\n| 7 | 特殊弹幕 | 未测试 |\n| 7 | 精确弹幕 | 弹幕池编号为1，未测试 |\n\n**此API通过了作者自己的视频测试**\n\n\n\n⛏ ```send_danmaku_anime(md, page, send_time, mode, message, cookie, ua, color=\"FFFFFF\", fontsize=25, pool=0)```\n-----\n\n\n* 功能：对某个番剧发送弹幕\n\n* 必要的传参：番剧md号(md)，视频分p（page，以1开始，遇到特殊页面如PV时直接输入PV），发送的时间点（send_time，单位为秒，支持小数和整数），弹幕模式（mode，默认为滚动弹幕），发送内容(message)，你的用户的全部Cookie(cookie)，登录此用户的浏览器User-Agent标识符(ua)\n\n    一般cookie和ua都能在浏览器的开发者工具找到，都在请求头(Request Header)中\n\n    ua使用cookie登录的对应浏览器主要是为了**防封号**\n\n    弹幕模式稍后说明\n\n* 选择的传参：弹幕颜色（color，十六进制RGB值，默认为白色），字体大小（fontsize，默认为25，即默认大小），弹幕池（pool,默认为0）\n\n* 返回：发送结果，成功返回Success，其他原因返回代码和原因\n\n| 弹幕模式(mode) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| 1 | 滚动弹幕 |  |\n| 4 | 底部弹幕 |  |\n| 5 | 顶部弹幕 |  |\n| 6 | 逆向弹幕 | 实测不可用 |\n| 7 | 特殊弹幕 | 未测试 |\n| 7 | 精确弹幕 | 弹幕池编号为1，未测试 |\n\n**此API看起来没有通过番剧测试，还在检查中**\n\n\n⛏ ```user_bangumi_list(uid)```\n-----\n\n* 功能：获取某个用户的追番列表（前提是开放了收藏夹权限）\n\n* 必要的传参：用户uid（uid）\n\n* 选择的传参：无\n\n* 返回：复合字典，每个包含以下字段（key为数字，且从0开始）\n\n每个字典参数如下\n\n| 参数名(key) | 解释 | 备注 |\n| :---:| :---: | :---: |\n| name | 番剧名称 |  |\n| season_id | 番剧的season id（ss） |  |\n| media_id | 番剧的media id（md） |  |\n\n爬取过程将通过rich显示当前进度，每页停顿3秒\n\n\n🎈 感谢\n===\n\n本lib部分API参考来自https://www.bilibili.com/read/cv5293665\n\n感谢[Niconvert](https://github.com/muzuiget/niconvert)\n\n同时也感谢自己和自己的：\n\n* Python 3.8.6\n\n* PyCharm 2019.3.3\n\n* Visual Studio Code 1.51.1\n\n* Firefox的开发者工具\n\n也感谢B站不把我打死（确信）\n\n💾 MEMO\n===\n\n直播房间基本信息：\n\nhttps://api.live.bilibili.com/room/v1/Room/room_init?id=23280160\n\n生成requirements:\n\npipreqs.exe . --encoding=utf8 --force\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOlafZhang%2Fbilib","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOlafZhang%2Fbilib","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOlafZhang%2Fbilib/lists"}