bilibili-info-mcp
v1.0.0
Published
MCP server to fetch Bilibili video information via stdio transport
Maintainers
Readme
bilibili-info-mcp
MCP server for fetching Bilibili video metadata and subtitles. Runs locally via stdio transport.
Features
- Fetch video metadata: title, author, view count, description, duration, publish date
- Fetch subtitles (requires login cookie): prioritizes Chinese, falls back to English
- WBI signature support for reliable subtitle retrieval
- Stdio transport for local MCP client integration
Usage
No installation required. Use directly with npx:
npx bilibili-info-mcpMCP Client Configuration
Cursor / Claude Desktop
{
"mcpServers": {
"bilibili-info": {
"command": "npx",
"args": ["bilibili-info-mcp"],
"env": {
"SESSDATA": "your_bilibili_sessdata_cookie"
}
}
}
}Environment Variables
| Variable | Required | Description |
|---|---|---|
| SESSDATA | Only for subtitles | Bilibili login cookie. Find it in browser DevTools > Application > Cookies > bilibili.com after logging in. |
Tool: get-bilibili-video-info
Fetches Bilibili video metadata and optionally subtitles.
Input
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| url | string | Yes | - | Bilibili video URL, e.g. https://www.bilibili.com/video/BVxxxxx |
| includeSubtitles | boolean | No | false | Whether to fetch subtitles. Requires SESSDATA env var. |
Supported URL formats:
https://www.bilibili.com/video/BVxxxxxhttps://m.bilibili.com/video/BVxxxxx?k=vhttps://bilibili.com/video/BVxxxxx/
Output
{
"title": "Video title",
"author": "Author name",
"viewCount": "12345",
"description": "Video description",
"lengthSeconds": "360",
"publishDate": "2025-01-15T12:00:00+08:00",
"subtitle": {
"languageCode": "zh-Hans",
"content": "Subtitle text content joined by spaces"
}
}| Field | Type | Description |
|---|---|---|
| title | string | Video title |
| author | string | Uploader name |
| viewCount | string | Total view count |
| description | string | Video description (prefers desc_v2, falls back to desc) |
| lengthSeconds | string | Video duration in seconds |
| publishDate | string | Publish time in ISO 8601 format with +08:00 timezone |
| subtitle | object (optional) | Subtitle track, only present when includeSubtitles is true and subtitles are available |
Subtitle Priority
When includeSubtitles is true, returns a single subtitle track with the following priority:
- Chinese (matching
中文,zh-CN,zh-Hans,zh) - English (matching
English,英语,en,en-US)
Development
git clone https://github.com/sunwu51/bilibili-info-mcp.git
cd bilibili-info-mcp
npm install
npm run buildProject Structure
src/
index.ts # MCP server entry point (stdio transport)
bilibili-fetcher.ts # Bilibili API calls (video info + subtitles)
wbi.ts # WBI signature algorithm implementationHow It Works
- Video info -- Calls
https://api.bilibili.com/x/web-interface/view?bvid=BVIDto get metadata. - WBI keys -- Fetches
img_keyandsub_keyfromhttps://api.bilibili.com/x/web-interface/nav(cached for 1 hour). - Subtitles -- Calls
https://api.bilibili.com/x/player/wbi/v2with WBI signature (w_rid+wts) andSESSDATAcookie to get subtitle URLs, then fetches the subtitle JSON content.
License
ISC
