Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rat857/bilibili_music
bilibili的视频的音频下载及播放,最主要-->TUI🤪
https://github.com/rat857/bilibili_music
Last synced: about 2 months ago
JSON representation
bilibili的视频的音频下载及播放,最主要-->TUI🤪
- Host: GitHub
- URL: https://github.com/rat857/bilibili_music
- Owner: rat857
- Created: 2023-10-23T12:11:37.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-10-23T13:53:40.000Z (about 1 year ago)
- Last Synced: 2024-06-14T13:46:22.223Z (6 months ago)
- Language: Go
- Homepage:
- Size: 555 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-bilibili-extra - Bilibili_music - bilibili 的视频的音频下载及播放,TUI.![Go](svg/go.svg?raw=true) (下载工具 / 直播脚本)
README
# bilibili_music
bilibili的视频的音频下载及播放,**TUI**🥰先上效果图:
![一张图片](Pictures.ass/231023_12h18m11s_screenshot.png)
### 前置提示
目前全功能只支持**Linux**, windows也能运行,不过只能用来播放音乐,且画面有未知bug
- 需要安装ffmpeg,因为下载下来的音乐文件是m4s格式,需要用ffmpeg转为mp3格式,程序会自动调用ffmpeg转换
- 需要有bash (应该所有的linux都自带,,)
- 目前在arch+hyprland上测试无问题### 写作背景
- 一些bilibili上独有的音乐,其他音乐平台没有版权,而bilibli又不能单纯的下载下mp3格式的文件,比如[小柔翻唱的《最伟大的作品》](https://www.bilibili.com/video/BV1NY4y1J7vt)
- 音乐平台的痛点
1. 一些在音乐平台需要vip才可以听的歌曲,比如周杰伦的音乐,在bilibili上有人上传视频,可以免费听
2. 在音乐平台上就算冲vip,你下载下来的音乐也只能在你vip期间享受,不能**所冲即所得**### 快捷键
| 按键 | 事件 |
| :--: | :----: |
| d,D | 下一曲 |
| s,S | 暂停 |### 特色(不足)
- 因为传输音乐路径用的是管道,所以只能支持下一曲,不能上一曲,如果一定要听上一曲,重启应用就行了🤥
- 为了节省内存,中间的那个流式的东西是假的(只是为了好看)😅,好吧,我不会写🫤### 食用方法
```shell
git clone https://github.com/rat857/bilibili_music.git
cd bilibili_music
go mod tidy
go build -o bilibili_music
./bilibili_music
```### 用到的东西
- api方面
1. 搜索:`https://api.bilibili.com/x/web-interface/search/all/v2?page=1&keyword=最伟大的作品`
2. 根据搜索得到的avid,获取cid:`https://api.bilibili.com/x/web-interface/view?aid=643175168`
3. 用aid+cid获取音频信息:`https://api.bilibili.com/x/player/playurl?avid=643175168&cid=765434153&qn=0&fnval=80&fnver=0&fourk=1`
4. 下载音频
eg:
```shell
wget 'https://cn-hbwh-cm-01-05.bilivideo.com/upgcxcode/53/41/765434153/765434153_nb3-1-30280.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1695829713&gen=playurlv2&os=bcache&oi=1863457495&trid=00008dae9f08af764440aec8d4b994817cccu&mid=685793285&platform=pc&upsig=28fa4f8f162ef13139372ecdf7f633e4&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform&cdnid=10201&bvc=vod&nettype=0&orderid=0,3&buvid=4B224DEB-2415-5ED7-DA61-9B0E0FEB4D4356979infoc&build=0&f=u_0_0&agrr=0&bw=40036&logo=80000000' \
--referer 'https://www.bilibili.com' \
-O 'audio.m4s'
```注意反爬虫,被检测返回403
用到的api教学文档:
```url
https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/video/info.md
https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/docs/video/videostream_url.md
```
- 软件方面
1. m4s文件转mp3:`ffmpeg -i a.m4s bb.mp3`
2. 播放音乐的go包:[beep](https://github.com/faiface/beep)
3. 用到的TUI包:[tview](https://github.com/rivo/tview),[tvxwidgets](https://github.com/navidys/tvxwidgets)