Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

iyear/pure-live-core

Repository files navigation

🎉 简介

Go Report Card

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

一个想让直播回归纯粹的项目

没有礼物、粉丝团、弹窗,只有直播、弹幕

✨ 特性

  • 🔎 直播间信息、直播流、弹幕流、发送弹幕
  • ⌛ 平台 Websocket 协议封装,支持转发弹幕消息、直播间热度消息
  • 🗝️ 解决跨域问题,支持直播流本地转发
  • 📂 简易的收藏夹功能支持
  • 🎯 资源占用低,5开百万热度直播间、蓝光直播流转发、弹幕全开占用 40M 内存
  • 🧬 跨平台支持,甚至可以运行在路由器上
  • 🔨 支持设置 Socks5 代理 (未测试)
  • 🧱 良好的项目结构设计,解耦直播平台和核心功能
  • ⚙️ 同时它也是一个简单的命令行工具。

......

🛠️ 部署

Docker

支持 amd64 386 arm64 arm/v6 arm/v7 架构

#启动
docker run --name pure-live -p <HOST_PORT>:8800 -d --restart=always iyear/pure-live:latest
#或添加-v参数
docker run --name pure-live -p <HOST_PORT>:8800 -v /HOST/PATH/DATA:/data -v /HOST/PATH/LOG:/log -d --restart=always iyear/pure-live:latest
#查看log
docker logs -f pure-live
#设置账户配置文件
docker cp PATH/TO/account.yaml pure-live:/config/account.yaml
docker restart pure-live
#设置服务器配置文件
docker cp PATH/TO/server.yaml pure-live:/config/server.yaml
docker restart pure-live
#备份数据库
docker cp pure-live:/data/data.db .
#备份配置文件
docker cp pure-live:/config .
#复制log到宿主机
docker cp pure-live:/log .

二进制部署

下载 Release 的最新打包文件

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

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

其他前端页面:

  • ......

⚙️ 命令行(仅支持二进制文件)

查看版本:

./pure-live -v
v0.1.0.211224-beta
go1.17.3 windows/amd64

查看帮助:

./pure-live -h
./pure-live run -h
./pure-live get -h
./pure-live export -h

run

启动本地服务器

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

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

./pure-live run
./pure-live run -s myserver.yml
./pure-live run -s my/myserver.yml -a my/myaccount.yml

get

获取直播信息、直播流、弹幕流

-p :平台名。涉及的平台参数在 API文档 中查询

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

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

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

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

./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

成功获得相关信息

Room: 7734200
Upper: 哔哩哔哩英雄联盟赛事
Title: 直播:全明星周末选人仪式
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

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

🌲 生态

目前 pure-live 的生态并不完善,最终的目标是做到开源社区驱动的维护模式。

在发展到一定规模后, pure-live 将会以 organization 的形式维护 core 与不同平台的客户端。

📝 文档

如何写一个自己的前端? API文档

如何添加新的平台支持? Client文档

移动平台 gomobile 支持? TODO

📷 预览

WEB前端预览

🔩 贡献

ISSUE

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

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

PR

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

🔌 TODO

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

  • 哔哩哔哩
  • 虎牙
  • 斗鱼
  • 企鹅电竞
  • 映客
  • 网易CC
  • Twitch (等待第三方库支持 m3u8 拉流)
  • 咪咕体育

发送弹幕

  • 哔哩哔哩
  • 虎牙
  • 斗鱼

get

  • 弹幕JSON保存
  • 弹幕ASS保存

📈 趋势

stars

🧑 贡献者

contrib

🗒️ 参考

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

https://github.com/flxxyz/douyudm

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

🔖 LICENSE

AGPL-3.0 License

AltStyle によって変換されたページ (->オリジナル) /