MCPcopy Index your code
hub / github.com/baconator696/cbstream

github.com/baconator696/cbstream @v1.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.2.0 ↗ · + Follow
87 symbols 196 edges 14 files 16 documented · 18%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

cbstream

This is a tool for recording live streams from adult entertainment platforms. It monitors streamers you add and automatically downloads their broadcasts when they go live. It currently supports CB (Chaturbate), SC (StripChat), SCVR (StripChat VR), BONGA (BongaCams), and MFC (MyFreeCams).


Installation

Install ffmpeg if you plan to output in MKV format. No other dependencies are required for basic functionality.


Usage

This is a command line program, to run the program using terminal in Windows:

.\cbstream.exe

You can optionally pass the path to the configuration file as the first argument. If omitted, the program uses cb-config.json in the working directory.

After execution, a JSON configuration file will be saved where set. Add model names to this file to start downloading their streams. The program actively monitors the JSON file, so no restart is needed when adding or removing models.


JSON Configuration

The configuration file follows this structure:

{
  "platform": {
      "CB": ["model1", "model2"],
      "SC": ["model4"],
      "SCVR": [],
      "BONGA": [],
      "MFC": ["model3"]
  },
  "config": {
      "user-agent": ""
  }
}
  • CB (Chaturbate), SC (StripChat), SCVR (StripChat VR), BONGA (BongaCams), MFC (MyFreeCams): Supported platforms. Add model names to the respective lists.

Downloaded streams are saved in the working directory inside folders named after each model.


Environment Variables

An optional environment variable TEMP can be set to specify where temporary streams are saved (Linux default: /var/tmp).

An optional environment variable CONFIG can be set to specify a custom path for the configuration file (overrided by the CLI argument).


Docker Usage

To run the program using Docker, use the following command:

docker run --name cbstream -v <save location>:/cbstream --stop-timeout 300 -itd ghcr.io/baconator696/cbstream:latest && \
    docker logs -f cbstream
  • Replace <save location> with the directory on your host machine where you want to store downloaded files and the config file.
  • FFmpeg is bundled into the Docker image.
  • The --stop-timeout 300 flag ensures the container has 300 seconds to shut down gracefully.

To do

  • Select maximum resolution
  • Add support for more streaming platforms
  • Implement the ability to download private shows

This project is actively being developed. Contributions and feedback are welcome!

Core symbols most depended-on inside this repo

clone
called by 57
src/platforms/mod.rs
read
called by 13
src/config.rs
get_retry
called by 13
src/util.rs
create_headers
called by 11
src/util.rs
write
called by 9
src/config.rs
get_retry_vec
called by 5
src/util.rs
get
called by 3
src/abort.rs
remove_non_num
called by 3
src/util.rs

Shape

Function 42
Method 37
Class 7
Enum 1

Languages

Rust100%

Modules by API surface

src/platforms/mod.rs20 symbols
src/util.rs17 symbols
src/config.rs12 symbols
src/stream.rs11 symbols
src/platforms/sc.rs6 symbols
src/platforms/cb.rs5 symbols
src/muxer.rs4 symbols
src/platforms/soda.rs2 symbols
src/platforms/scvr.rs2 symbols
src/platforms/mfc.rs2 symbols
src/platforms/bonga.rs2 symbols
src/abort.rs2 symbols

For agents

$ claude mcp add cbstream \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact