Skip to content

Commit

Permalink
Merge pull request #1 from iyear/dev
Browse files Browse the repository at this point in the history
Release v0.1.0.211224-beta
  • Loading branch information
iyear authored Dec 24, 2021
2 parents eea8780 + 67e2b2d commit ade5683
Show file tree
Hide file tree
Showing 87 changed files with 1,935 additions and 642 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ dist
.idea
log
data
config.yaml
config/server.yaml
config/account.yaml
*.exe
bin
static
6 changes: 2 additions & 4 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ builds:
- env:
- CGO_ENABLED=0
ldflags: -s -w
hooks:
post:
- upx --best "{{ .Path }}"
goos:
- linux
- windows
Expand Down Expand Up @@ -46,7 +43,8 @@ archives:
format: zip
files:
- README.md
- config.yaml.example
- config/server.yaml.example
- config/account.yaml.example
- LICENSE
- static
snapshot:
Expand Down
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.PHONY:build
build:
goreleaser release --skip-publish --snapshot --rm-dist
151 changes: 122 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,69 +1,113 @@
![](https://socialify.git.ci/iyear/biligo/image?description=1&font=Raleway&forks=1&issues=1&logo=https://s4.ax1x.com/2021/12/06/orLSGF.png&owner=1&pattern=Circuit%20Board&stargazers=1&theme=Dark)
![](https://socialify.git.ci/iyear/pure-live-core/image?description=1&font=Raleway&forks=1&issues=1&logo=https://s4.ax1x.com/2021/12/06/orLSGF.png&owner=1&pattern=Circuit%20Board&stargazers=1&theme=Dark)

## 简介
## 🎉 简介

![](https://img.shields.io/github/go-mod/go-version/iyear/biligo?style=flat-square)
![](https://img.shields.io/github/go-mod/go-version/iyear/pure-live-core?style=flat-square)
![](https://img.shields.io/badge/license-GPL-lightgrey.svg?style=flat-square)
![](https://img.shields.io/github/v/release/iyear/biligo?color=red&style=flat-square)
![](https://img.shields.io/github/last-commit/iyear/biligo?style=flat-square)
![](https://img.shields.io/github/v/release/iyear/pure-live-core?color=red&style=flat-square)
![](https://img.shields.io/github/last-commit/iyear/pure-live-core?style=flat-square)

**该项目仅供学习,请勿用于商业用途。任何使用该项目造成的后果由使用者自行承担。**

> 一个想让直播回归纯粹的项目
没有礼物、粉丝团、弹窗,只有直播、弹幕

### 特性
## 特性

- 直播间信息获取、直播流获取、发送弹幕
- 平台 `Websocket` 协议封装,支持转发弹幕消息、直播间热度消息
- 解决跨域问题,支持直播流本地转发
- 简易的收藏夹功能支持
- 支持设置 `Socks5` 代理 (未测试)
- 良好的项目结构设计,解耦直播平台和核心功能
- 同时它也是一个简单的命令行工具。
- ......
🔎 直播间信息、直播流、弹幕流、发送弹幕

### 参考
⌛ 平台 `Websocket` 协议封装,支持转发弹幕消息、直播间热度消息

https://github.com/wbt5/real-url
🗝️ 解决跨域问题,支持直播流本地转发

https://github.com/flxxyz/douyudm
📂 简易的收藏夹功能支持

https://github.com/BacooTang/huya-danmu
🎯 资源占用低,5开百万热度直播间、蓝光直播流转发、弹幕全开占用 `40M` 内存

🧬 跨平台支持,甚至可以运行在路由器上

🔨 支持设置 `Socks5` 代理 (未测试)

## 使用
🧱 良好的项目结构设计,解耦直播平台和核心功能

### 快速开始
⚙️ 同时它也是一个简单的命令行工具。

下载 [Release](https://baidu.com) 的最新打包文件,解压后重命名 `config.yaml.example``config.yaml` ,填写相关信息。
......

```sh
## 🛠️ 部署

### 后端

下载 [Release](https://baidu.com) 的最新打包文件

解压后重命名 `config` 目录下的 `server.yaml.example``server.yaml` , `config/account.yaml.example``account.yaml` ,填写相关信息。

```shell
chmod +x ./pure-live
./pure-live run
```

打开对应的本地地址 `localhost:<port>` ,即可看到前端界面,开始使用 `pure-live` 吧!

`pure-live` 的初衷是本地或局域网的直播流推送,对于 `websocket` 推送没有做压缩或优化处理。

`pure-live` 运行在局域网内的 `NAS` 或其他小型服务器上,就可以使整个局域网内享受到 `pure-live` 的支持。
### 前端
`Release` 都已经内置了默认的前端页面

如果前端有小BUG修复,请前往前端仓库下载最新版本替换 `static` 目录下的所有文件

前端自己快速看了一下 `Vue` 一把梭写出来的,仅仅是能用的水平,代码结构也很庞杂凌乱,期待更好的第三方前端页面出现。

前端仓库: https://github.com/iyear/pure-live-frontend

**其他前端页面:**

- ......

### 命令行
## ⚙️ 命令行

查看帮助:
```shell
./pure-live -h
./pure-live run -h
./pure-live get -h
./pure-live export -h
```

### run
#### 启动本地服务器

`-s` : 服务器配置文件路径,默认为 `config/server.yaml`

`-a` : 账号配置文件路径,默认为 `config/account.yaml`

1. **获取直播流**
```shell
./pure-live run
./pure-live run -s myserver.yml
./pure-live run -s my/myserver.yml -a my/myaccount.yml
```

`pure-live` 也支持命令行获取直播信息和直播流
### get
#### 获取直播信息、直播流、弹幕流

`-p` :平台名。涉及的平台参数在 [API文档](./docs/API.md#直播平台) 中查询

`-r` : 房间号。长短号均可。
`-r` : 房间号。长短号均可

`--stream` : 下载对应的直播流(暂时只支持 `flv`),不传入则不下载,传入文件名。此方式下载的 `flv` 文件较大,如需要更精细的控制请使用 `ffmpeg`

```sh
`--danmaku` : 抓取对应的弹幕流,以 `xlsx` 格式保存,不传入则不抓取,传入文件名

`--roll` : 抓取弹幕是否显示弹幕滚动信息

```shell
./pure-live get -p bilibili -r 6
./pure-live get -p bilibili -r 6 --stream b.flv
./pure-live get -p bilibili -r 6 --stream b.flv --danmaku dm.xlsx
./pure-live get -p bilibili -r 6 --danmaku dm.xlsx --roll
./pure-live get -p bilibili -r 6 --stream b.flv --danmaku dm.xlsx --roll
```

成功获得相关信息
Expand All @@ -76,13 +120,45 @@ Link: https://live.bilibili.com/7734200
Stream: https://d1--cn-gotcha03.bilivideo.com/live-bvc/842331/live_50329118_9516950.flv?cdn=cn-gotch......
```

## 文档
### export
#### 导出收藏及收藏夹信息

`-d` : 数据库路径。默认 `data/data.db`

`-p` : 导出路径。默认 `export.xlsx`

```shell
./pure-live export
./pure-live export -d mydata/data.db
./pure-live export -d mydata/data.db -p mydata.xlsx
```

## 📝 文档

如何写一个自己的前端? [API文档](./docs/API.md)

如何添加新的平台支持? [Client文档](./docs/Client.md)

## TODO
移动平台 `gomobile` 支持? [TODO]()

## 📷 预览

[WEB前端预览](img/frontend)

## 🔩 贡献

### ISSUE
请使用 `issue` 发起任何问题,非重要事情请勿私聊。

- 提出新的特性帮助 `pure-live` 成长。特性的支持效率取决于其重要程度。
- 提出 `BUG` 解决使用中的问题。 `BUG` 的修复将优先考虑。
- ......

### PR

`dev` 分支签出一个自己的分支,请勿向 `master` 发起 `PR`

## 🔌 TODO

### 基本直播功能(直播流+弹幕接收)

Expand All @@ -98,3 +174,20 @@ Stream: https://d1--cn-gotcha03.bilivideo.com/live-bvc/842331/live_50329118_9516
- [x] 哔哩哔哩
- [ ] 虎牙
- [ ] 斗鱼

### get

- [ ] 弹幕JSON保存
- [ ] 弹幕ASS保存

## 🗒️ 参考

https://github.com/wbt5/real-url

https://github.com/flxxyz/douyudm

https://github.com/BacooTang/huya-danmu

## 🔖 LICENSE

GPL-3.0 License
41 changes: 0 additions & 41 deletions api/api.go

This file was deleted.

Loading

0 comments on commit ade5683

Please sign in to comment.