EasyDown API Docs
API de descarga por plataforma

API de descarga de videos de Bilibili

Usa la API de Bilibili (China continental) con URL públicas compatibles y recibe videos, imágenes, audio y datos completos sin campos sensibles.

Envía una URL de video, episodio, curso o b23.tv de Bilibili China continental. La API conserva cada parte y las pistas DASH disponibles.

Úsala para descargar videos de Bilibili de China continental desde videos, series, cursos y enlaces b23.tv.

Usa este endpoint cuando necesites campos propios de la plataforma además de medios descargables estables.

Endpoints

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

Formatos de URL compatibles

  • bilibili.com/video/BV{id}
  • bilibili.com/video/av{id}
  • b23.tv/{code}
  • bilibili.com/bangumi/play/{id}
  • bilibili.com/cheese/play/{id}

Ejemplos aceptados

  • https://www.bilibili.com/video/BV1sW4y197cE/
  • https://www.bilibili.com/video/av45306969/
  • https://b23.tv/INJgdai

Bilibili solo admite URL de China continental. bilibili.tv y bili.im (Bstation / internacional) no son compatibles.

Contenido de la respuesta de la plataforma

Bilibili suele entregar flujos DASH de video y audio separados; también puede devolver portadas y distintas calidades.

Campos publicados de la plataforma

La API conserva otros campos públicos del objeto final después de eliminar de forma recursiva los datos sensibles. Los campos documentados se mantienen estables durante esta versión de platformData.

CampoTipoDescripción
data.mediaobjectImágenes, videos, audios, título, miniatura y duración normalizados.
data.platformDataVersionstringVersión pública del contrato de datos de Bilibili (China continental); actualmente 1.
data.platformData.titlestringTítulo, texto o descripción que se muestra públicamente en la publicación solicitada.
data.platformData.picstringURL pública de un archivo, portada o página de detalle devuelta por la plataforma.
data.platformData.timelengthnumberDuración, dimensiones, calidad u otros parámetros técnicos publicados por la plataforma.
data.platformData.dashobjectDatos de reproducción, calidad, códec, dimensiones y URL multimedia del video solicitado.
data.platformData.support_formatsarrayEstado de reproducción, formato u otros metadatos públicos del contenido.
data.platformData.qualitynumberDuración, dimensiones, calidad u otros parámetros técnicos publicados por la plataforma.
data.platformData.formatstringEstado de reproducción, formato u otros metadatos públicos del contenido.
{
  "status": 200,
  "data": {
    "media": {
      "platform": "bilibili",
      "title": "Ejemplo de publicación pública",
      "thumbnail": "https://public-cdn.example/cover.jpg",
      "duration": 18,
      "images": [],
      "videos": [
        {
          "url": "https://public-cdn.example/video.mp4",
          "quality": "1080p",
          "mimeType": "video/mp4",
          "width": 1920,
          "height": 1080,
          "hasAudio": true,
          "source": "direct"
        }
      ],
      "audios": []
    },
    "platformData": {
      "title": "Example public Bilibili video",
      "pic": "https://media.example/cover.jpg",
      "timelength": 65000,
      "dash": {
        "video": [
          {
            "id": 80,
            "width": 1920,
            "height": 1080,
            "mimeType": "video/mp4",
            "baseUrl": "https://media.example/video.m4s"
          }
        ],
        "audio": [
          {
            "id": 30280,
            "bandwidth": 128000,
            "mimeType": "audio/mp4",
            "baseUrl": "https://media.example/audio.m4s"
          }
        ]
      },
      "support_formats": [
        {
          "quality": 80,
          "new_description": "1080P"
        }
      ]
    },
    "platformDataVersion": "1"
  },
  "msg": "success"
}

Descarga y uso de proxy

Descarga video y audio desde el backend con Referer de Bilibili, User-Agent y Range. Combina las pistas DASH con FFmpeg cuando estén separadas.

Límites y comportamiento

No admite Bilibili International/Bstation, listas para ver más tarde, favoritos, perfiles, contenido de pago ni videos bloqueados por región.

Solo se admite contenido público. El contenido privado, eliminado, restringido por edad o región, en directo o no disponible puede fallar sin consumir créditos.

Solo se cobra después de devolver medios descargables: 1 crédito por análisis correcto. Los fallos de autenticación, validación, permisos, contenido, medios o servicio externo no se cobran.

Solución de problemas

  • Conserva el bvid, cid y número de parte como texto en el cliente y en la base de datos.
  • Combina la pista de video elegida con una pista de audio cuando el resultado sea DASH.
  • No envíes URL de bilibili.tv ni bili.im: corresponden a Bstation y no están admitidas.

Preguntas frecuentes

¿Una solicitud fallida consume créditos?

No. Solo se cobra 1 crédito cuando la API devuelve medios descargables.

¿Por qué puede fallar una URL pública válida?

La publicación puede estar eliminada, ser privada, tener restricciones regionales, ser un directo, no contener medios o sufrir una indisponibilidad externa.

Guías relacionadas

Referencia interactiva de la API

Los ejemplos en curl, JavaScript y Python, junto con los esquemas, se generan desde el contrato OpenAPI 3.1 de producción.

El panel «Try it» envía solicitudes directamente a api.easydown.org. El token solo permanece en la memoria de la página y se elimina al recargar.

POST

Probar

Una respuesta correcta con medios descargables consume 1 credit. Las solicitudes fallidas no se cobran.

El token solo permanece en la memoria de esta página y se borra al cerrar o recargar.

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/platforms/bilibili/parse" \  -H "Content-Type: application/json" \  -d '{}'
{  "status": 200,  "data": {    "media": {      "platform": "tiktok",      "title": "string",      "thumbnail": "string",      "duration": 0,      "images": [        {          "url": "http://example.com",          "width": 0,          "height": 0        }      ],      "videos": [        {          "url": "http://example.com",          "quality": "string",          "mimeType": "string",          "width": 0,          "height": 0,          "hasAudio": true,          "source": "direct",          "headers": {            "property1": "string",            "property2": "string"          }        }      ],      "audios": [        {          "url": "http://example.com",          "quality": "string",          "mimeType": "string",          "bitrate": 0,          "source": "direct",          "headers": {            "property1": "string",            "property2": "string"          }        }      ]    },    "platformData": {      "title": "string",      "pic": "string",      "timelength": 0,      "dash": {},      "support_formats": [        null      ],      "quality": 0,      "format": "string"    },    "platformDataVersion": "1"  },  "msg": "success"}