/olive

一个全自动直播录制直播上传工具,让你不占用硬盘的条件下不错过任何一场直播 Live Streaming Recorder

Primary LanguageGoMIT LicenseMIT

olive

GoDoc GitHub Workflow Status Sourcegraph

Intro

Lives are delicate and fleeting creatures, waiting to be captured by us. ❤

全自动录播、投稿工具

支持抖音直播、虎牙直播、B站直播、油管直播、twitch直播

支持B站投稿

Feature

  • 小巧
  • 易用
  • 高效
  • 定制化
  • go 原生
  • 跨平台

Usage

  1. 安装 streamlink(若不录制 YouTube、twitch 直播无需安装)
  2. 安装 biliup-rs(若不上传至哔哩哔哩无需安装)
  3. 安装 olive
    • 可直接在 releases 中下载相应平台的执行文件
    • 或者本地构建go install github.com/go-olive/olive/src/cmd/olive@latest
  4. 命令行中运行
    • 直接下载可执行文件/path/to/olive -c /path/to/config.toml
    • 本地构建olive -c /path/to/config.toml

Config.toml

template file to reference config.toml

[UploadConfig]
# 是否上传到 bilibili
Enable = false
# biliup-rs 可执行文件的路径
ExecPath = "biliup"
# biliup-rs 配置文件路径,为空的话走默认配置
Filepath = ""

[PlatformConfig]
# 若有录制抖音直播,可在无痕模式非登录状态下找下面的 cookie 填入即可
DouyinCookie = "__ac_nonce=06245c89100e7ab2dd536; __ac_signature=_02B4Z6wo00f01LjBMSAAAIDBwA.aJ.c4z1C44TWAAEx696;"

[[Shows]]
# 平台名,目前支持:
# "bilibili"
# "douyin"
# "huya"
# "youtube"
Platform = "bilibili"
# 房间号,支持字符串类型的房间号
RoomID = "21852"
# 主播名称
StreamerName = "老番茄"

Avanced

  • 自定义视频文件名称

    增加 OutTmpl 配置项

    {{ now | date \"2006-01-02 15-04-05\"}}代表日期

    {{ .StreamerName }}代表主播名称

    {{ .RoomName }}代表直播标题

    [[Shows]]
    Platform = "bilibili"
    RoomID = "21852"
    StreamerName = "老番茄"
    # 输出的效果是 [2022-04-24 02-02-32]老番茄][嗨嗨嗨!]
    OutTmpl = "[{{ now | date \"2006-01-02 15-04-05\"}}][{{ .StreamerName }}][{{ .RoomName }}]"
  • 自定义视频下载器

    下载器 类型 支持平台
    streamlink 第三方 油管
    twitch
    yt-dlp 第三方 油管
    flv go 原生 抖音
    虎牙
    B站
    ffmpeg 第三方 抖音
    虎牙
    B站

    油管、twitch 默认使用 streamlink

    其他平台默认使用 flv

    [[Shows]]
    Platform = "bilibili"
    RoomID = "21852"
    StreamerName = "老番茄"
    # 指定下载器为 ffmpeg
    Parser = "ffmpeg"

RoadMap

  • 支持 go 原生对 bilibili 的投稿
  • 支持上传至云盘
  • 支持更多的平台
  • 增加 docker image
  • 增加 mock test
  • 增加 YouTube 投稿
  • 增加对程序运行状况的监控
  • 增加网页端

Credits