bilibili-music-api
v0.2.2
Published
A JavaScript library for downloading music from Bilibili
Maintainers
Readme
Bilibili Music API
A JavaScript library for searching, extracting, and downloading audio from Bilibili videos.
Features
- Search for videos/music on Bilibili
- Search for artists (UP users) and browse their works
- Extract audio URLs from videos
- Download audio in various quality levels
- Interactive CLI for easy usage
- Support for command-line operations
- Import music sheets from favorites
Installation
npm install bilibili-music-apiBasic Usage
const bilibiliAPI = require('bilibili-music-api');
// Search for videos
async function searchVideos() {
const results = await bilibiliAPI.search('周杰伦', 1, 'music');
console.log(results.data);
}
// Get audio source URL and headers
async function getAudioSource() {
const musicItem = { bvid: 'BV1Gx411M7Zc' }; // Replace with real BVID
const mediaSource = await bilibiliAPI.getMediaSource(musicItem, 'high');
console.log(mediaSource.url);
console.log(mediaSource.headers);
}
// Download audio
async function downloadAudio() {
const musicItem = { bvid: 'BV1Gx411M7Zc' }; // Replace with real BVID
const result = await bilibiliAPI.download(musicItem, {
quality: 'high', // low, standard, high, super
outputDir: './downloads', // Output directory
filename: 'my-audio', // Custom filename (without extension)
onProgress: (percent) => {
console.log(`Progress: ${percent}%`);
}
});
console.log(`Downloaded to: ${result.filePath}`);
}Command Line Usage
After installing globally (npm install -g bilibili-music-api), you can use the CLI:
# Start interactive mode
bilibili-dl interactive
# Search for videos
bilibili-dl search "周杰伦" -t video -p 1
# Search for artists
bilibili-dl search "周杰伦" -t artist -p 1
# Download audio from a video
bilibili-dl download BV1Gx411M7Zc -q high -o ./downloads
# Get download info for a video
bilibili-dl info BV1Gx411M7Zc -q highIf installed locally, you can use npm scripts:
# Start interactive mode
npm startAPI Reference
Search
// Search for videos/music
bilibiliAPI.search(keyword, page, 'music')
// Search for artists
bilibiliAPI.search(keyword, page, 'artist')Get Media Source
bilibiliAPI.getMediaSource(musicItem, quality)musicItem: Object with eitherbvidoraidpropertyquality: 'low', 'standard', 'high', or 'super'
Download Audio
bilibiliAPI.download(musicItem, options)musicItem: Object with eitherbvidoraidpropertyoptions:quality: 'low', 'standard', 'high', or 'super'outputDir: Output directory pathfilename: Custom filename (without extension)onProgress: Progress callback function
Artist Works
bilibiliAPI.getArtistWorks(artistItem, page)Album Info
bilibiliAPI.getAlbumInfo(albumItem)Top Lists
bilibiliAPI.getTopLists()
bilibiliAPI.getTopListDetail(topListItem)Import Music Sheet
bilibiliAPI.importMusicSheet(urlOrId)Comments
bilibiliAPI.getMusicComments(musicItem)License
MIT
