Video Download API documentation

EasyDown REST API platform guide

Bilibili Download API

Several Bilibili URL families are normalized into one selected video item. The REST response keeps available video, separate audio, thumbnail, duration, and quality data.

Parse public BV, av, short-link, list, bangumi, and supported Bilibili play URLs with the EasyDown Bilibili Download API.

Bilibili video download API · Bilibili media API

Production REST endpoint

POST https://api.easydown.org/api/v1/parse

Supported public URL formats

bilibili.com/video/BV...bilibili.com/video/av...b23.tv/{code}bilibili.com/bangumi/play/ep...

Real request example

https://www.bilibili.com/video/BV1sW4y197cE/

curl -X POST https://api.easydown.org/api/v1/parse \
  -H "Authorization: Bearer ed_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.bilibili.com/video/BV1sW4y197cE/"}'

Platform response example

The shared envelope stays stable while this platform determines which media arrays and attributes are populated.

Media behavior

Some qualities use DASH with separate videos[] and audios[] entries. Download both selected streams and merge them with FFmpeg without re-encoding when compatible.

{
  "status": 200,
  "data": {
    "platform": "bilibili",
    "title": "Example bilibili public post",
    "thumbnail": "https://cdn.example.com/thumbnail.jpg",
    "duration": 24,
    "images": [],
    "videos": [
      {
        "url": "https://cdn.example.com/video.mp4",
        "quality": "1080p video-only",
        "mimeType": "video/mp4",
        "width": 1080,
        "height": 1920,
        "hasAudio": false,
        "source": "direct"
      }
    ],
    "audios": [
      {
        "url": "https://cdn.example.com/audio.m4a",
        "quality": "128kbps",
        "mimeType": "audio/mp4"
      }
    ]
  },
  "msg": "success"
}

Download and proxy rules

Send Referer: https://www.bilibili.com/, a browser User-Agent, and forwarded Range headers. Signed stream URLs expire and must be refreshed by parsing the original page again.

Recommended backend request headers

User-Agent: Mozilla/5.0 Referer: https://www.bilibili.com/ Range: bytes=0-

Unsupported or unavailable content

Profiles, favorites, watch-later lists, list pages without one video ID, paid content, DRM media, and region-restricted items are unsupported.

Only process public media you have the right to use. EasyDown does not bypass privacy controls, DRM, deleted content, or platform access restrictions.

Platform-specific troubleshooting

Merge selected DASH video and audio streams before delivery to users.

Always include the Bilibili Referer when fetching signed streams.

Re-parse when a stream returns 403 or its signature expires.

REST integration workflow

  1. 1

    Create a private API token and allow this platform in its permissions.

  2. 2

    POST one complete public post URL to the shared endpoint.

  3. 3

    Select and proxy the required items from images, videos, and audios.

Download API questions

Which Bilibili URLs does the download API support?

Supported public single-post formats include bilibili.com/video/BV..., bilibili.com/video/av..., b23.tv/{code}, bilibili.com/bangumi/play/ep.... Profiles, favorites, watch-later lists, list pages without one video ID, paid content, DRM media, and region-restricted items are unsupported.

What media does the Bilibili Download API return?

Some qualities use DASH with separate videos[] and audios[] entries. Download both selected streams and merge them with FFmpeg without re-encoding when compatible.

How should my application download returned Bilibili media URLs?

Send Referer: https://www.bilibili.com/, a browser User-Agent, and forwarded Range headers. Signed stream URLs expire and must be refreshed by parsing the original page again.

How is a successful Bilibili API request billed?

A response containing at least one image, video, or audio URL costs 1 credit. Failed, unsupported, authentication, and empty-media results do not consume credits.