网淘吧来吧,欢迎您!

返回首页 微信
微信
手机版
手机版

Bilibili All In One

2026-03-28 新闻来源:网淘吧 围观:12
电脑广告
手机广告

哔哩哔哩全能助手

一个集成了热门趋势监控、视频下载、视频观看/播放、字幕下载和视频发布功能于一体的综合性哔哩哔哩工具套件。

⚠️ 必需的环境变量: BILIBILI_SESSDATABILIBILI_BILI_JCT(必需)、BILIBILI_BUVID3(可选) 这些是用于认证操作(发布、高质量下载)所需的敏感哔哩哔哩会话 Cookie。 无需认证的功能:热门监控、标准质量下载、字幕列表、弹幕、统计数据查看。

📦 安装: pip install -r requirements.txt(所有标准 PyPI 包:httpx, bilibili-api-python, aiohttp, beautifulsoup4, lxml, requests)

🔗 源码: github.com/wscats/bilibili-all-in-one


何时激活

当用户说出或暗示以下内容时,本 Skill 会被激活:

触发场景匹配的模块典型触发词
查看B站热门、热搜、排行榜、必看榜🔥 热门监控器"热门"、"热搜"、"排行"、"趋势"、"必看"、"流行"、"榜单"
下载B站视频、提取音频、批量下载⬇️ 下载器"下载"、"保存视频"、"提取音频"、"导出MP4"、"批量下载"
查看视频播放量、点赞数、数据追踪、对比👀 观察器"播放量"、"点赞"、"数据"、"统计"、"对比"、"监控"、"追踪"、"观看量"
下载字幕、转换字幕格式、合并字幕📝 字幕工具"字幕"、"CC"、"SRT"、"ASS"、"字幕下载"、"字幕转换"、"翻译"
播放视频、获取弹幕、播放列表▶️ 播放器"播放"、"弹幕"、"播放地址"、"分P"、"播放列表"、"danmaku"
上传视频、发布、定时发布、草稿、编辑、删除📤 发布器"上传"、"发布"、"投稿"、"定时发布"、"草稿"、"编辑视频"、"删除视频"
涉及YouTube视频数据查询👀 观察器"YouTube"、"油管"、"YTB"、"YouTube观看量"
提及B站链接或BV号自动识别BV*bilibili.com/video/*b23.tv/*

💡提示:只要用户消息中包含 B站/Bilibili 相关操作意图,或包含 BV 号、bilibili 链接,本 Skill 即会被自动激活。无需显式声明调用。


功能

模块描述
🔥热门监控实时监控 Bilibili 热门/趋势视频和话题
⬇️下载器提供多种质量和格式选项下载 Bilibili 视频
👀观察器观看和追踪视频互动指标(支持 Bilibili 和 YouTube)
📝字幕下载和处理多种格式和语言的字幕
▶️播放器获取播放链接、弹幕与播放列表信息
📤发布器在Bilibili上传、定时发布、编辑与管理视频

安装

环境要求

  • Python >= 3.8
  • ffmpeg(可选,用于合并视频/音频流)

安装依赖

pip install -r requirements.txt

依赖项

  • httpx >= 0.24.0
  • bilibili-api-python >= 16.0.0
  • aiohttp >= 3.8.0
  • beautifulsoup4 >= 4.12.0
  • lxml >= 4.9.0
  • requests >= 2.31.0

配置

部分功能(下载高清视频、发布等)需要Bilibili身份验证。可通过以下三种方式提供凭据:

1. 环境变量

export BILIBILI_SESSDATA="your_sessdata"
export BILIBILI_BILI_JCT="your_bili_jct"
export BILIBILI_BUVID3="your_buvid3"

2. 凭据文件

创建JSON文件(例如:credentials.json)3. 直接参数

{
  "sessdata": "your_sessdata",
  "bili_jct": "your_bili_jct",
  "buvid3": "your_buvid3"
}

初始化时直接传递凭证:

如何获取 cookies:

from main import BilibiliAllInOne

app = BilibiliAllInOne(
    sessdata="your_sessdata",
    bili_jct="your_bili_jct",
    buvid3="your_buvid3",
)

登录bilibili.com,打开浏览器开发者工具(F12)→ 应用程序 → Cookies,复制SESSDATAbili_jctbuvid3的值。⚠️ 安全与隐私

凭证处理

此技能处理

敏感的 Bilibili 会话 cookies。请仔细阅读以下内容:关注点

详情需要哪些凭证?
SESSDATAbili_jct,buvid3— Bilibili 浏览器 Cookies
哪些功能需要认证?发布(上传/编辑/删除/定时发布/草稿)、下载 1080p+/4K 画质视频
哪些功能无需凭证即可使用?热门监控、标准画质下载、字幕列表获取、弹幕抓取、数据查看
凭证发送到哪里?发送到官方的 Bilibili API 端点 (api.bilibili.com,member.bilibili.com),通过 HTTPS 传输。YouTube 元数据使用www.youtube.com/oembed(不发送凭证)
凭证会持久化存储到磁盘吗?不会— 除非你显式调用auth.save_to_file()。默认情况下,凭证仅保留在内存中
已保存凭证的文件权限0600(仅所有者读写)—— 默认限制严格

最佳实践

  1. 🧪使用测试账户—— 请勿为评估/测试目的提供您的主Bilibili账户cookies。
  2. 🔒优先使用内存凭据—— 通过环境变量或直接参数传递凭据,而非保存到文件。
  3. 📁如果必须保存凭据—— 使用auth.save_to_file()该函数会创建权限为0600的文件。不再需要时请删除该文件。
  4. 🐳在隔离环境中运行—— 尽可能在隔离的容器/环境中运行此技能,并检查网络流量。
  5. 🌐验证网络流量— 所有HTTP请求仅发送至Bilibili官方域名及YouTube oEmbed API。您可通过监控出站连接进行验证。
  6. 无数据外泄— 本技能不会向任何第三方服务、分析终端或遥测服务器发送凭据。

使用的网络终端

域名用途
api.bilibili.com视频信息、统计数据、热门榜单、字幕、弹幕、播放地址
member.bilibili.com视频发布(上传、编辑、删除)
upos-sz-upcdnbda2.bilivideo.com视频文件上传CDN
www.bilibili.com网页抓取备用方案
www.youtube.com通过oEmbed API获取YouTube视频元数据(无需身份验证)

各模块的凭据要求

模块需要身份验证?备注
🔥 热门监控❌ 否所有公共API
⬇️ 下载器⚠️ 可选仅需用于1080p+ / 4K画质
👀 观看器❌ 否公共统计API
📝 字幕❌ 否公共字幕API
▶️ 播放器⚠️ 可选需要用于获取高质量播放URL
📤 发布器✅ 是必需所有操作都需要SESSDATA+bili_jct

使用方法

命令行界面

python main.py <skill_name> <action> [params_json]

Python API

import asyncio
from main import BilibiliAllInOne

app = BilibiliAllInOne()

async def demo():
    result = await app.execute("hot_monitor", "get_hot", limit=5)
    print(result)

asyncio.run(demo())

技能参考

1. 🔥 热门监控 (bilibili_hot_monitor)

实时监控B站热门/趋势视频和话题。支持按分类筛选、追踪排名变化。

操作

操作描述参数
get_hot获取热门视频page,page_size
get_trending获取趋势系列/话题limit
get_weekly获取每周必看列表number(周数,可选)
get_rank获取分类排行视频category,limit

支持类别

全部,动漫,音乐,舞蹈,游戏,科技,生活,美食,汽车,时尚,娱乐,电影,电视

示例

# Get top 10 hot videos
python main.py hot_monitor get_hot '{"page_size": 10}'

# Get trending topics
python main.py hot_monitor get_trending '{"limit": 5}'

# Get this week's must-watch
python main.py hot_monitor get_weekly

# Get game category rankings
python main.py hot_monitor get_rank '{"category": "game", "limit": 10}'
# Python API
result = await app.execute("hot_monitor", "get_hot", page_size=10)
result = await app.execute("hot_monitor", "get_rank", category="game", limit=10)

2. ⬇️ 下载器 (bilibili_downloader)

下载Bilibili视频,支持多种画质选项、批量下载及格式选择。

操作

操作描述参数
获取信息获取视频信息网址
获取格式列出可用画质/格式网址
下载下载单个视频网址,画质,输出目录,格式,页码
批量下载下载多个视频网址列表,质量,输出目录,格式

质量选项

360p,480p,720p,1080p(默认),1080p+,4k

格式选项

mp4(默认),flv,mp3(仅音频)

示例

# Get video info
python main.py downloader get_info '{"url": "BV1xx411c7mD"}'

# List available formats
python main.py downloader get_formats '{"url": "BV1xx411c7mD"}'

# Download in 1080p MP4
python main.py downloader download '{"url": "BV1xx411c7mD", "quality": "1080p", "format": "mp4"}'

# Extract audio only
python main.py downloader download '{"url": "BV1xx411c7mD", "format": "mp3"}'

# Batch download
python main.py downloader batch_download '{"urls": ["BV1xx411c7mD", "BV1yy411c8nE"], "quality": "720p"}'
# Python API
info = await app.execute("downloader", "get_info", url="BV1xx411c7mD")
result = await app.execute("downloader", "download", url="BV1xx411c7mD", quality="1080p")

3. 👀 观察者(bilibili_watcher)

监控Bilibili(和YouTube)视频。随时间追踪观看次数、评论、点赞数和其他互动指标。

操作

操作描述参数
watch获取详细视频信息url
get_stats获取当前互动统计数据url
track随时间追踪指标url,interval(分钟),duration(小时)
compare比较多个视频urls

支持的平台

  • Bilibili:https://www.bilibili.com/video/BVxxxxxxBVxxxxxx
  • YouTube:https://www.youtube.com/watch?v=xxxxxhttps://youtu.be/xxxxx

示例

# Get video details
python main.py watcher watch '{"url": "BV1xx411c7mD"}'

# Get current stats
python main.py watcher get_stats '{"url": "BV1xx411c7mD"}'

# Track views every 30 minutes for 12 hours
python main.py watcher track '{"url": "BV1xx411c7mD", "interval": 30, "duration": 12}'

# Compare multiple videos
python main.py watcher compare '{"urls": ["BV1xx411c7mD", "BV1yy411c8nE"]}'
# Python API
details = await app.execute("watcher", "watch", url="https://www.youtube.com/watch?v=dQw4w9WgXcQ")
comparison = await app.execute("watcher", "compare", urls=["BV1xx411c7mD", "BV1yy411c8nE"])

4. 📝 字幕 (bilibili_subtitle)

从Bilibili视频下载并处理字幕/CC。支持多种字幕格式和语言。

操作

操作描述参数
list列出可用字幕url
download下载字幕url,语言格式输出目录
转换转换字幕格式输入路径输出格式输出目录
合并合并多个字幕文件输入路径列表输出路径输出格式

支持的格式

srt(默认),assvtttxt,json

支持的语言

zh-CN(默认)enja,以及视频中可用的其他语言代码。

示例

# List available subtitles
python main.py subtitle list '{"url": "BV1xx411c7mD"}'

# Download Chinese subtitles in SRT format
python main.py subtitle download '{"url": "BV1xx411c7mD", "language": "zh-CN", "format": "srt"}'

# Download English subtitles in ASS format
python main.py subtitle download '{"url": "BV1xx411c7mD", "language": "en", "format": "ass"}'

# Convert SRT to VTT
python main.py subtitle convert '{"input_path": "./subtitles/video.srt", "output_format": "vtt"}'

# Merge subtitle files
python main.py subtitle merge '{"input_paths": ["part1.srt", "part2.srt"], "output_path": "merged.srt"}'
# Python API
subs = await app.execute("subtitle", "list", url="BV1xx411c7mD")
result = await app.execute("subtitle", "download", url="BV1xx411c7mD", language="zh-CN", format="srt")

5. ▶️ 播放器 (bilibili_player)

播放Bilibili视频,支持播放控制、播放列表管理和弹幕显示。

操作

操作描述参数
play获取完整的播放信息urlqualitypage
get_playurl获取直接播放链接网址,画质,分页
获取弹幕获取弹幕/评论网址,分页,分段
获取播放列表获取播放列表/多集信息网址

弹幕模式

模式描述
1滚动(从右向左)
4底部固定
5顶部固定

示例

# Get playback info
python main.py player play '{"url": "BV1xx411c7mD", "quality": "1080p"}'

# Get direct play URLs
python main.py player get_playurl '{"url": "BV1xx411c7mD", "quality": "720p"}'

# Get danmaku
python main.py player get_danmaku '{"url": "BV1xx411c7mD"}'

# Get playlist for multi-part video
python main.py player get_playlist '{"url": "BV1xx411c7mD"}'

# Get page 3 of a multi-part video
python main.py player play '{"url": "BV1xx411c7mD", "quality": "1080p", "page": 3}'
# Python API
play_info = await app.execute("player", "play", url="BV1xx411c7mD", quality="1080p")
danmaku = await app.execute("player", "get_danmaku", url="BV1xx411c7mD")
playlist = await app.execute("player", "get_playlist", url="BV1xx411c7mD")

6. 📤 发布者 (bilibili_publisher)

发布视频到Bilibili。支持上传视频、设置元数据、定时发布和管理草稿。

⚠️需要认证:所有发布操作都需要有效的Bilibili凭据。

操作

操作描述参数
上传上传并发布一个视频文件路径,标题,描述,标签,分类,封面路径,动态,禁止转载,打开电子文件
草稿保存为草稿文件路径,标题,描述,标签,分类,封面路径
计划安排未来发布文件路径,标题,计划时间,描述,标签,类别,封面路径
编辑编辑现有视频元数据bvid,标题,描述,标签,封面路径
删除删除视频bvid

上传参数

参数类型默认值描述
文件路径字符串必需视频文件路径
标题字符串必需视频标题(最多80个字符)
描述字符串""视频描述(最多2000个字符)
标签字符串数组["bilibili"]标签(最多12个,每个最多20个字符)
分类字符串"171"分类TID
封面路径字符串空值封面图片路径(JPG/PNG格式)
禁止转载整数11 = 原创内容,0 = 转载
开启充电整数01 = 开启充电,0 = 关闭充电

示例

# Upload and publish
python main.py publisher upload '{"file_path": "./video.mp4", "title": "My Video", "description": "Hello World", "tags": ["test", "demo"], "category": "171"}'

# Save as draft
python main.py publisher draft '{"file_path": "./video.mp4", "title": "Draft Video"}'

# Schedule publication
python main.py publisher schedule '{"file_path": "./video.mp4", "title": "Scheduled Video", "schedule_time": "2025-12-31T20:00:00+08:00"}'

# Edit video metadata
python main.py publisher edit '{"bvid": "BV1xx411c7mD", "title": "New Title", "tags": ["updated"]}'

# Delete a video
python main.py publisher delete '{"bvid": "BV1xx411c7mD"}'
# Python API (authentication required)
app = BilibiliAllInOne(sessdata="xxx", bili_jct="xxx", buvid3="xxx")

result = await app.execute("publisher", "upload",
    file_path="./video.mp4",
    title="My Video",
    description="Published via bilibili-all-in-one",
    tags=["python", "bilibili"],
)

项目结构

bilibili-all-in-one/
├── skill.json              # Skill configuration & parameter schema
├── skill.md                # This documentation file
├── README.md               # Project README (Chinese)
├── LICENSE                  # MIT License
├── requirements.txt        # Python dependencies
├── .gitignore              # Git ignore rules
├── main.py                 # Entry point & unified BilibiliAllInOne class
├── src/
│   ├── __init__.py         # Package exports
│   ├── auth.py             # Authentication & credential management
│   ├── utils.py            # Shared utilities, API constants, helpers
│   ├── hot_monitor.py      # Hot/trending video monitoring
│   ├── downloader.py       # Video downloading
│   ├── watcher.py          # Video watching & stats tracking
│   ├── subtitle.py         # Subtitle downloading & processing
│   ├── player.py           # Video playback & danmaku
│   └── publisher.py        # Video uploading & publishing
└── tests/
    ├── __init__.py
    └── test_all_skill_examples.py  # Comprehensive unit tests

技能来源

本技能将以下独立技能的功能整合为一个统一的工具包:

原始技能来源整合模块
bilibili热榜监控Jacobzwj/bilibili-hot-monitor热榜监控模块
哔哩哔哩下载器caiyundc880518/bililidownloader下载器模块
哔哩哔哩-YouTube 观察器donnycui/bilibili-youtube-watcher观察器模块
哔哩哔哩字幕下载技能DavinciEvans/bilibili-subtitle-download-skill字幕模块
哔哩哔哩播放器e421083458/bilibili-player播放器模块
哔哩哔哩视频发布Johnnyxu820/bilibili-video-publish发布器

响应格式

所有技能操作均返回一个结构统一的JSON对象:

{
  "success": true,
  "...": "action-specific fields"
}

出错时:

{
  "success": false,
  "message": "Error description"
}

许可证

MIT

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Token Saver 下一篇:Youtube

相关文章

您是本站第290020名访客 今日有233篇新文章/评论