一个直播录制工具

Bililive-go

Build Status Go Report Card Github release Docker Pulls Bilibili

Bililive-go是一个支持多种直播平台的直播录制工具

image

支持网站

站点 url 支持情况
Acfun直播 live.acfun.cn 滋瓷
哔哩哔哩直播 live.bilibili.com 滋瓷
战旗直播 www.zhanqi.tv 滋瓷
斗鱼直播 www.douyu.com 滋瓷
火猫直播 www.huomao.com 滋瓷
龙珠直播 longzhu.com 滋瓷
虎牙直播 www.huya.com 滋瓷
CC直播 cc.163.com 滋瓷
一直播 www.yizhibo.com 滋瓷
twitch www.twitch.tv 滋瓷
OPENREC www.openrec.tv 滋瓷
企鹅电竞 egame.qq.com 滋瓷
浪live play.lang.live & www.lang.live 滋瓷

依赖

使用例子

  • 本地
    ./bililive-go -i https://live.bilibili.com/1030 -i https://www.douyu.com/6655
    
  • docker
    docker run --restart=always -v ~/Videos:/srv/bililive -p 8080:8080 -d chigusa/bililive-go
    

获取&编译

$ go get github.com/hr3lxphr6j/bililive-go
$ cd $GOPATH/src/github.com/hr3lxphr6j/bililive-go
$ make

Wiki

Wiki

API

API doc

参考

给点给点

image

Comments
  • 修复虎牙直播纯数字房间录制失败的问题

    修复虎牙直播纯数字房间录制失败的问题

    前段时间虎牙直播页面更新,纯数字房间录制失败,提示failed to get stream url, will retry after 5s..." error="internal error",我更改了虎牙平台中解析直播信息的方式,现在同时支持字母混合房间和纯数字房间。

  • linux端录制无报错但是录制失败

    linux端录制无报错但是录制失败

    ffmpeg没有问题IP应该也没有被ban版本是最新版.050rc3。目录也能创建,但是就是录不到内容。系统是centos7,我另外一台debian的机子输出一样但是能录。会不会是系统问题?

    [root@host ~]# bililive-go -i https://live.bilibili.com/719085
    time="2020-04-26 22:18:50" level=info msg="BiliLive-go Version: 0.5.0-rc.3 Link Start"
    time="2020-04-26 22:18:51" level=info msg="Live Start" host="萌萌哒老陈" room="【陈8点】本日赛事回顾,明日赛事前瞻"
    time="2020-04-26 22:18:51" level=info msg="Record Start" host="萌萌哒老陈" room="【陈8点】本日赛事回顾,明日赛事前瞻"
    

    输出就这样

  • bilibili 录制没主播名称

    bilibili 录制没主播名称

    bilibili 录制没主播名称 最近两个版本 有时候录制 会出现没主播名称 也没存到主播的资料夹 本来 /哔哩哔哩/主播名称/[2020-07-11 21-15-51][极客湾Geekerwan][每周六晚9点,和你聊科技!].flv 现在有些会 /哔哩哔哩/[2020-07-14 19-40-42][][流行国语女唱见].flv

  • 设置use_native_flv_parser为true后,视频时长错误

    设置use_native_flv_parser为true后,视频时长错误

    https://github.com/hr3lxphr6j/bililive-go/blob/master/config.yml#L8 把这个打开,视频时长错误,原本是一个小时的,多款播放器(包括potplayer,VLC等)都是识别到只有27:54,只有用小丸工具箱检测有一个小时,播放器会在27:54后继续播放,直至结束。

  • Linux 下无法生成录像文件

    Linux 下无法生成录像文件

    系统:Linux version 3.10.35 (root@debian) (gcc version 4.7.3 20130102 (prerelease) (crosstool-NG 1.18.0) ) #1 SMP Sun Jul 17 16:02:22 CEST 2016 (家里的NAS,DSM 5.2-5967) 刚开始是使用的docker部署发现能正常显示标题,但是指定的目录下无任何文件生成。 以为是NAS的Docker功能可能不完整导致的,手动部署后依然还是无文件。

    NAS> ./bililive-go -o /volume2/Video/lubo -i https://www.douyu.com/6185851
    time="2019-05-27 17:46:58" level=info msg="BiliLive-go Version: 0.3.4 Link Start"
    time="2019-05-27 17:47:09" level=info msg="ListenerManager Start"
    time="2019-05-27 17:47:09" level=info msg="RecorderManager Start"
    time="2019-05-27 17:47:09" level=info msg="Listener Start" host_name="AAA零零" id=fcdca398742293d26bfb5bd5f1b1976f room_name="a零:欧皇一击 骑" status=true url="https://www.douyu.com/6185851"
    time="2019-05-27 17:47:09" level=info msg="Live Start" host_name="AAA零零" id=fcdca398742293d26bfb5bd5f1b1976f room_name="a零:欧皇一击 骑" status=true url="https://www.douyu.com/6185851"
    time="2019-05-27 17:47:09" level=info msg="Recorde Start" host_name="AAA零零" id=fcdca398742293d26bfb5bd5f1b1976f room_name="a零:欧皇一击 骑" status=true url="https://www.douyu.com/6185851"
    
    NAS> cd /volume2/Video/lubo
    NAS> ls
    NAS> ll
    d---------    2 qa       users         4096 May 28 00:52 .
    d---------    8 root     root          4096 May 28 01:25 ..
    

    磁盘的文件系统ext4

    /dev/vg1001/lv ext4 1917962728 895824712 1022019232 47% /volume2

    网络无问题,我在台式上测试了下能够抓取生成文件的。

    是文件系统导致的吗?

  • 斗鱼 都无法录制

    斗鱼 都无法录制

    斗鱼 都无法录制 用德国Debian独服 和家里window电脑测试都不能 使用最新版本(旧的没测试)

    有显示主播信息以及创建资料夹 但没视频

    bililive -i https://www.douyu.com/591967 --debug
    time="2020-12-14 03:14:51" level=info msg="BiliLive-go Version: v0.5.14 Link Start"
    time="2020-12-14 03:14:51" level=debug msg="{AppName:BiliLive-go AppVersion:v0.5.14 BuildTime:2020-11-19_10:30:04 GitHash:ef6168c80a5aa512431419882705460171e701ad Pid:4683 Platform:linux/amd64 GoVersion:go1.15.5}"
    time="2020-12-14 03:14:51" level=debug msg="&{RPC:{Enable:false Bind::8080} Debug:true Interval:20 OutPutPath:./ Feature:{UseNativeFlvParser:false} LiveRooms:[https://www.douyu.com/591967] OutputTmpl: file: VideoSplitStrategies:{OnRoomNameChanged:false MaxDuration:0s}}"
    time="2020-12-14 03:14:53" level=info msg="Live Start" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    time="2020-12-14 03:14:53" level=info msg="Record Start" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    time="2020-12-14 03:14:53" level=debug msg="exit status 1" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    time="2020-12-14 03:14:54" level=debug msg="exit status 1" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    time="2020-12-14 03:14:54" level=debug msg="exit status 1" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    time="2020-12-14 03:14:55" level=debug msg="exit status 1" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    time="2020-12-14 03:14:55" level=debug msg="exit status 1" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    time="2020-12-14 03:14:56" level=debug msg="exit status 1" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    time="2020-12-14 03:14:59" level=debug msg="exit status 1" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    ^Ctime="2020-12-14 03:14:59" level=info msg="Record End" host="美食老王" room="红烧鱼,红烧猪肉丸子,凉面走着"
    time="2020-12-14 03:14:59" level=info msg="Bye~"
    
  • 长时间录制任务消失问题

    长时间录制任务消失问题

    使用的版本: 0.22.12 平台:Ubuntu 18.04 + ffmpeg version 3.4.4-0ubuntu0.18.04.1

    问题描述

    使用rpc方法添加的任务长时间录制后可能会突然消失 config.yml

    rpc: 
      enable: true
      port: 127.0.0.1:6161
      token: "blablabla"
      tls:
        enable: false
        cert_file: ""
        key_file: ""
    debug: false
    interval: 5
    out_put_path: /Record
    

    使用自己写的简易客户端添加上一个虎牙的录制任务,然后使用crontab每小时运行一次客户端的暂停、开始功能,但是录制任务有时候会消失;后来我写了个check的脚本每天check两次有没有任务,在这个脚本运行的第4天和第22天出现了任务消失的情况……服务器和bililive-go都没有重启过…… check.log ↑我比较弱智,log忘记输出日期了

  • bilibili 直播录制问题

    bilibili 直播录制问题

  • 【功能请求】网页添加一键复制版本信息

    【功能请求】网页添加一键复制版本信息

    可以参考以下模板,取自 KiCad

    Application: KiCad (64-bit)
    
    Version: (6.99.0-4976-g75a4de4744), release build
    
    Libraries:
    	wxWidgets 3.2.1
    	FreeType 2.12.1
    	HarfBuzz 5.0.1
    	FontConfig 2.14.1
    	libcurl/7.86.0-DEV Schannel zlib/1.2.13
    
    Platform: Windows 11 (build 22621), 64-bit edition, 64 bit, Little endian, wxMSW
    
    Build Info:
    	Date: Dec 16 2022 06:27:17
    	wxWidgets: 3.2.1 (wchar_t,wx containers)
    	Boost: 1.80.0
    	OCC: 7.6.2
    	Curl: 7.86.0-DEV
    	ngspice: 38
    	Compiler: Visual C++ 1929 without C++ ABI
    
    Build settings:
    	KICAD_SPICE=ON
    
  • 网页端保存设置的返回值格式,服务器端和前端的预期不同,导致前端命令行报错

    网页端保存设置的返回值格式,服务器端和前端的预期不同,导致前端命令行报错

    目前服务器端返回的是 "OK" 之类的字符串,前端期待的是 json。 爬了一下历史,应该是前端提交代码的时候服务器端返回的还是 json,在前端提交之后服务器端修改了返回值的格式。

    原作者近期比较忙,所以这里想问一下 @BJ4501 大佬了解当时服务器端为什么要修改返回值格式吗? 从易用性角度来讲,我是想把返回值改回 json 的。

  • 【关于开源许可证】希望把协议改为 AGPL

    【关于开源许可证】希望把协议改为 AGPL

    这个项目基本上是奔着前后端分离去的,作为后端程序,使用 GPL 协议的情况下,下游使用自己的前端连接 bililive-go 为用户提供录制服务是不需要开源服务端的。

    使用 AGPL 协议的情况下,下游 fork 不论以何种方式即时调用 bililive-go,都需要将他使用的 bililive-go 版本以及调用了 bililive-go 的程序开源。