GithubHelp home page GithubHelp logo

bilibiliupload's Introduction

bilibiliupload

支持自动录制各大直播平台,上传直播录像到bilibili。
相关设置在config.yaml文件中,如直播间地址,b站账号密码

docker一键使用 🔨

cd bilibiliupload
sudo docker build . -t sc2
sudo docker -d run sc2

进入容器 📦

sudo docker ps (找到你的imageId)
sudo docker exec -it imageId /bin/bash     

其他使用

使用需要修改文件名config(demo).yamlconfig.yaml

Linux系统下使用方法:

   启动:    ./Bilibili.py start

   退出:    ./Bilibili.py stop

   重启:    ./Bilibili.py restart

ps -A | grep .py 查看进程是否启动成功


Windows系统下使用方法:

图形界面版
   在release中下载AutoTool.msi进行安装
命令行版
   启动:    python Bilibili.py

python3 FFmpeg QQ群:837362626

Linux下以daemon进程启动

结果写入日志文件

下载部分使用youtube-dl,不支持或者支持的不够好的网站,通过爬虫api解决。

上传的自动化需要解决视频分割和验证登陆的问题,有两种方案。

  • 二值化、灰度处理找缺口计算移动像素,直接拖动发现拖到位置不能通过验证,提示:“拼图被怪物吃了”。滑动验证码会上传分析你的拖动行为,不能直接拖动,需要模拟人操作轨迹,加速度、抖动等等,以保证通过验证的成功率。

  • 因为app是没有验证码的,所以还可以通过逆向app来分析验证过程。可参考comwrg/bilibiliupload的登陆部分

通过线程池限制并发数,减少磁盘占满的可能性。同时检测下载情况,如果卡死或者下载超时3次重新下载,保证可用性。

包含代码更新后在空闲时自动重启的功能,下载和上传是两个独立模块,都可以单独调用,下载模块是通过反射实现插件化的。

下载的基类都在engine/plugins/__init__.py中 拓展其他网站,需要继承下载模块的基类,仅需提供下载相关代码。

如需拓展上传的网站,或者修改上传的具体实现,修改upload.py文件

实现了一套基于装饰器的事件驱动框架,用装饰器保证可读性和易用性。在现有的功能上增加其他功能,需要注册发生对应事件时执行的函数,比如下载后转码

# e.p.给函数注册事件
# block=True 会使用子线程来执行
# block=False 使用主线程执行
@event_manager.register("transcoding", block=True)
def modify(self, live_m):
    pass

Credits

  • Thanks zhangn1985/ykdl provides Douyu-downloader.

bilibiliupload's People

Contributors

bulai0408 avatar forgqi avatar zhangmingzhao1 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.