# BiliBili Stream Recorder [![Build status](https://ci.appveyor.com/api/projects/status/1n4822yitgtu7ht7?svg=true)](https://ci.appveyor.com/project/Genteure/bililiverecorder) [![Version](https://img.shields.io/github/tag/Bililive/BililiveRecorder.svg?label=Version)](#) [![Issues are "help wanted"](https://img.shields.io/github/issues/Bililive/BililiveRecorder/help%20wanted.svg)](https://github.com/Bililive/BililiveRecorder/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) [![Pull Request Welcome](https://img.shields.io/badge/Pull%20request-welcome-brightgreen.svg)](#) [![license](https://img.shields.io/github/license/Bililive/BililiveRecorder.svg)](#) [简体中文 | Simplified Chinese](README_CN.md) ## Apology GitHub is a global platform, and theoretically, everyone should use English. But since this project is only meant for Chinese user and rely on a Chinese website [BiliBili](https://live.bilibili.com) (_[wikipedia](https://en.wikipedia.org/wiki/Bilibili)_), all code comments are in Chinese. This README file will always use English so people like _you_ can understand what is this, and perhaps make some use out of it. ## Install & Use See [rec.danmuji.org](https://rec.danmuji.org) (in Chinese) ## Feature - Easy to use - Fix timestamp automatically - Start recording when stream starts - Record multiple stream at same time - Have a "Clip" Feature (just like [Twitch's](https://help.twitch.tv/customer/portal/articles/2442508-how-to-use-clips)) - Pure C#, no native dependents - Open source! ## Develop & Getting Started You'll need: - Visual Studio 2017 with .NET Core - PowerShell Some file are generated by [PreComplie Script](./CI/patch_buildinfo.ps1). Build project to clear errors shown by Visual Studio. Project | Type | Note :---:|:---:|:--- BililiveRecorder.WPF | .NET Framework 4.6.2 BililiveRecorder.Core | .NET Standard 2.0 BililiveRecorder.FlvProcessor | .NET Standard 2.0 BililiveRecorder.Server | .NET Core 2.0 | TODO You can start poking around from... - `BililiveRecorder.WPF/MainWindow.xaml` about WPF gui - `BililiveRecorder.Core/Recorder.cs` about core record logic - `BililiveRecorder.FlvProcessor/FlvStreamProcessor.cs` about FLV data process ## Reference & Acknowledgements - [coreyauger/flv-streamer-2-file](https://github.com/coreyauger/flv-streamer-2-file): An awesome library. - [zyzsdy/biliroku](https://github.com/zyzsdy/biliroku): First BiliBili stream record tool. - [Video File Format Specification Version 10.pdf](https://wwwimages2.adobe.com/content/dam/acom/en/devnet/flv/video_file_format_spec_v10.pdf)