Skip to content

pure-java B站/Acfun/斗鱼/虎牙/快手/抖音/YY/战旗/花椒 直播视频录制。仅需Java环境即可运行

License

Notifications You must be signed in to change notification settings

374857922/BilibiliLiveRecorder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BilibiliLiveRecorder

语言java 支持系统 Win/Linux/Mac 测试版本64位Win10系统, jre 1.8.0_101 开源协议Apache2.0
当前版本 Release 下载总量

Bilibili/Douyu/Huya/Kuaishou 直播录制

😄使用方法

  • 程序调用时传入参数即可(顺序可变)
    java -Dfile.encoding=utf-8 -jar BiliLiveRecorder.jar "debug=false&check=false&delete=false&liver=douyu&id=233233&qn=0&retry=5"
  • 各参数意义
Key 必选 释义
debug debug模式,输出更多信息。默认false
check 下载完后是否校准时间戳,默认true
delete 校准后是否删除源文件,默认true
zip 是否压缩成zip文件,默认false
liver 将要录制的直播源。 详见下表
id 直播房间id,如未传入,后续将提示输入。
qn 直播视频清晰度,如未传入,后续将提示输入。不同网站数值意义不同
retry 异常导致录制停止后的重试次数。默认5次
fileSize 分段录制的参考文件大小,0为不按文件大小分段,单位MB。默认0
filePeriod 分段录制的参考时长,0为不按时长分段,单位min。默认0
proxy 按需配置。http(s)代理 e.g. 127.0.0.1:8888
socksProxy 按需配置。socks代理 e.g. 127.0.0.1:1080
trustAllCert 是否无条件信任所有SSL证书。默认false
splitScriptTags 校准文件时是否分割ScriptTag。默认false
fileName 文件命名规则,默认{name}-{shortId} 的{liver}直播{startTime}-{seq}
saveFolder 文件保存路径
  • 各直播源解析情况
liver 最后测试时间 备注
bili 2019/09/19 flv清晰度可多选,可不需要cookie
zhanqi 2019/06/30 flv清晰度可多选,可不需要cookie
douyu 2019/12/02 flv清晰度可多选,但部分高清需要cookie
kuaishou 2019/09/19 flv清晰度可多选,可能需要cookie(与登录无关,首次进入直播页面有反爬措施,会需要拖拽验证)
huya 2019/08/30 flv清晰度可多选,可不需要cookie
yy 2019/06/15 flv只支持默认清晰度
huajiao 2019/06/02 flv只支持默认清晰度(似乎只有一种清晰度)
  • 校正某FLV文件的时间戳

    • java -Dfile.encoding=utf-8 -cp BiliLiveRecorder.jar nicelee.bilibili.live.FlvChecker "文件路径"
    • java -Dfile.encoding=utf-8 -cp BiliLiveRecorder.jar nicelee.bilibili.live.FlvChecker "文件路径" true
      • 第二个布尔参数的意义是当遇到某种特定情况时,是否分割文件
      • 注意:这些操作没法还原,所以理论上原始文件最保真。 不校验时间戳校验文件不分割 > 校验文件分割scripts tag
      • 如果仍旧没办法满足需求的话,建议拿着各种版本都去ffmpeg处理一下
  • 加载cookies(适用于高清晰度录制) 将cookie保存到同级目录的{liver}-cookie.txt即可,e.g. douyu-cookie.txt

  • 关于文件命名规则

    • 请勿传入非法字符,如&
    • 建议保留{startTime}{seq},以确保文件名唯一,否则很可能出现未知错误
    • 校准时间戳这一动作将会产生若干个文件,这些文件将在原来的基础上增加-checked[0-9]+后缀
    • 举例:
     fileName={name}-{shortId} 的{liver}直播{startTime}-{seq}&filePeriod=20&check=false
     那么,一个可能的结果是:
     英雄联盟赛事-288016 的douyu直播 2019-09-19 17.40-0.flv
     英雄联盟赛事-288016 的douyu直播 2019-09-19 18.00-1.flv
    
     fileName={name}-{shortId} 的{liver}直播{startTime}-{seq}&filePeriod=20&check=true
     增加时间戳校准动作。那么,一个可能的结果是:
     英雄联盟赛事-288016 的douyu直播 2019-09-19 17.40-0-checked0.flv
     英雄联盟赛事-288016 的douyu直播 2019-09-19 18.00-1-checked0.flv
    
    Key 释义
    name 主播名称
    shortId 直播网址id
    roomId 实际房间id,可能与shortId不同
    liver 直播源,同传入参数
    startTime 录制开始时间,精确到分,例如2019-11-19 20.18
    seq 录制产生的文件序号。从0开始;分段录制或异常重试均会使序号增大
  • 获取 房间id

  • 运行截图

😄其它

😄第三方库使用声明

  • 使用JSON.org库做简单的Json解析
  • 使用Crypto-js仿浏览器生成斗鱼直播录制token

😄LICENSE

Copyright (C) 2019 NiceLee. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

About

pure-java B站/Acfun/斗鱼/虎牙/快手/抖音/YY/战旗/花椒 直播视频录制。仅需Java环境即可运行

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.5%
  • Batchfile 0.5%